diff --git a/CMakeLists.txt b/CMakeLists.txt index 700340ada..e5bf289e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -260,6 +260,8 @@ set (wsjt_qt_CXXSRCS CallsignValidator.cpp SplashScreen.cpp EqualizationToolsDialog.cpp + DoubleClickablePushButton.cpp + DoubleClickableRadioButton.cpp ) set (wsjt_qtmm_CXXSRCS diff --git a/DoubleClickablePushButton.cpp b/DoubleClickablePushButton.cpp new file mode 100644 index 000000000..2c37a55e6 --- /dev/null +++ b/DoubleClickablePushButton.cpp @@ -0,0 +1,14 @@ +#include "DoubleClickablePushButton.hpp" + +#include "moc_DoubleClickablePushButton.cpp" + +DoubleClickablePushButton::DoubleClickablePushButton (QWidget * parent) + : QPushButton {parent} +{ +} + +void DoubleClickablePushButton::mouseDoubleClickEvent (QMouseEvent * event) +{ + Q_EMIT doubleClicked (); + QPushButton::mouseDoubleClickEvent (event); +} diff --git a/DoubleClickablePushButton.hpp b/DoubleClickablePushButton.hpp new file mode 100644 index 000000000..ebc1ab84f --- /dev/null +++ b/DoubleClickablePushButton.hpp @@ -0,0 +1,27 @@ +#ifndef DOUBLE_CLICKABLE_PUSH_BUTTON_HPP_ +#define DOUBLE_CLICKABLE_PUSH_BUTTON_HPP_ + +#include + +// +// DoubleClickablePushButton - QPushButton that emits a mouse double +// click signal +// +// Clients should be aware of the QWidget::mouseDoubleClickEvent() +// notes about receipt of mouse press and mouse release events. +// +class DoubleClickablePushButton + : public QPushButton +{ + Q_OBJECT + +public: + DoubleClickablePushButton (QWidget * = nullptr); + + Q_SIGNAL void doubleClicked (); + +protected: + void mouseDoubleClickEvent (QMouseEvent *) override; +}; + +#endif diff --git a/DoubleClickableRadioButton.cpp b/DoubleClickableRadioButton.cpp new file mode 100644 index 000000000..892b3c295 --- /dev/null +++ b/DoubleClickableRadioButton.cpp @@ -0,0 +1,14 @@ +#include "DoubleClickableRadioButton.hpp" + +#include "moc_DoubleClickableRadioButton.cpp" + +DoubleClickableRadioButton::DoubleClickableRadioButton (QWidget * parent) + : QRadioButton {parent} +{ +} + +void DoubleClickableRadioButton::mouseDoubleClickEvent (QMouseEvent * event) +{ + Q_EMIT doubleClicked (); + QRadioButton::mouseDoubleClickEvent (event); +} diff --git a/DoubleClickableRadioButton.hpp b/DoubleClickableRadioButton.hpp new file mode 100644 index 000000000..dec715ab7 --- /dev/null +++ b/DoubleClickableRadioButton.hpp @@ -0,0 +1,27 @@ +#ifndef DOUBLE_CLICKABLE_RADIO_BUTTON_HPP_ +#define DOUBLE_CLICKABLE_RADIO_BUTTON_HPP_ + +#include + +// +// DoubleClickableRadioButton - QRadioButton that emits a mouse double +// click signal +// +// Clients should be aware of the QWidget::mouseDoubleClickEvent() +// notes about receipt of mouse press and mouse release events. +// +class DoubleClickableRadioButton + : public QRadioButton +{ + Q_OBJECT + +public: + DoubleClickableRadioButton (QWidget * = nullptr); + + Q_SIGNAL void doubleClicked (); + +protected: + void mouseDoubleClickEvent (QMouseEvent *) override; +}; + +#endif