SDRAngel  4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
crightclickenabler.h
Go to the documentation of this file.
1 // Copyright (C) 2018 F4EXB //
3 // written by Edouard Griffiths //
4 // //
5 // This program is free software; you can redistribute it and/or modify //
6 // it under the terms of the GNU General Public License as published by //
7 // the Free Software Foundation as version 3 of the License, or //
8 // (at your option) any later version. //
9 // //
10 // This program is distributed in the hope that it will be useful, //
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
13 // GNU General Public License V3 for more details. //
14 // //
15 // You should have received a copy of the GNU General Public License //
16 // along with this program. If not, see <http://www.gnu.org/licenses/>. //
18 
19 #ifndef SDRGUI_GUI_CRIGHTCLICKENABLER_H_
20 #define SDRGUI_GUI_CRIGHTCLICKENABLER_H_
21 
22 #include <QAbstractButton>
23 #include <QMouseEvent>
24 
25 #include "export.h"
26 
27 class SDRGUI_API CRightClickEnabler : public QObject {
28  Q_OBJECT
29 public:
30  CRightClickEnabler(QAbstractButton *button);
31 
32 signals:
33  void rightClick(const QPoint&);
34 
35 protected:
36  inline bool eventFilter(QObject *watched, QEvent *event) override
37  {
38  (void) watched;
39 
40  if (event->type() == QEvent::MouseButtonPress)
41  {
42  auto mouseEvent = (QMouseEvent*) event;
43 
44  if (mouseEvent->button() == Qt::RightButton) {
45  emit rightClick(mouseEvent->globalPos());
46  }
47  }
48 
49  return false;
50  }
51 
52 private:
53  QAbstractButton* _button;
54 };
55 
56 #endif /* SDRGUI_GUI_CRIGHTCLICKENABLER_H_ */
bool eventFilter(QObject *watched, QEvent *event) override
#define SDRGUI_API
Definition: export.h:52
QAbstractButton * _button