From ba0228b1733024b568bda3f37ca8c32157dd1377 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 24 Jul 2017 19:27:14 +0000 Subject: [PATCH] Add double clickable push button and radio button widgets These emit doubleClicked signal when double-clicked, otherwise they are identical to their super-classes. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7938 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- CMakeLists.txt | 2 ++ DoubleClickablePushButton.cpp | 14 ++++++++++++++ DoubleClickablePushButton.hpp | 27 +++++++++++++++++++++++++++ DoubleClickableRadioButton.cpp | 14 ++++++++++++++ DoubleClickableRadioButton.hpp | 27 +++++++++++++++++++++++++++ 5 files changed, 84 insertions(+) create mode 100644 DoubleClickablePushButton.cpp create mode 100644 DoubleClickablePushButton.hpp create mode 100644 DoubleClickableRadioButton.cpp create mode 100644 DoubleClickableRadioButton.hpp 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