From e5f581405e69607a42aec834ad6e51f8d831063a Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Fri, 17 Mar 2017 13:55:31 +1000 Subject: [PATCH] Allow clicking mouse back button on stacked panel widgets Only works if click occurs outside of widgets - we probably should start ignoring clicks which aren't left/middle/right in any mouse event handlers --- python/gui/qgspanelwidgetstack.sip | 5 +++++ src/gui/qgspanelwidgetstack.cpp | 8 ++++++++ src/gui/qgspanelwidgetstack.h | 5 +++++ 3 files changed, 18 insertions(+) diff --git a/python/gui/qgspanelwidgetstack.sip b/python/gui/qgspanelwidgetstack.sip index 17566eb0410..c115c6b6bf0 100644 --- a/python/gui/qgspanelwidgetstack.sip +++ b/python/gui/qgspanelwidgetstack.sip @@ -89,4 +89,9 @@ class QgsPanelWidgetStack: public QWidget * @param panel The panel to close. */ void closePanel( QgsPanelWidget* panel ); + + protected: + + void mouseReleaseEvent( QMouseEvent *e ); + }; diff --git a/src/gui/qgspanelwidgetstack.cpp b/src/gui/qgspanelwidgetstack.cpp index a1c0efa8fdb..0d44bd83763 100644 --- a/src/gui/qgspanelwidgetstack.cpp +++ b/src/gui/qgspanelwidgetstack.cpp @@ -147,6 +147,14 @@ void QgsPanelWidgetStack::closePanel( QgsPanelWidget *panel ) this->updateBreadcrumb(); } +void QgsPanelWidgetStack::mouseReleaseEvent( QMouseEvent *e ) +{ + if ( e->button() == Qt::BackButton ) + { + acceptCurrentPanel(); + } +} + void QgsPanelWidgetStack::updateBreadcrumb() { QString breadcrumb; diff --git a/src/gui/qgspanelwidgetstack.h b/src/gui/qgspanelwidgetstack.h index 079ed098116..bf92d6b340e 100644 --- a/src/gui/qgspanelwidgetstack.h +++ b/src/gui/qgspanelwidgetstack.h @@ -117,6 +117,11 @@ class GUI_EXPORT QgsPanelWidgetStack : public QWidget, private Ui::QgsRendererWi * @param panel The panel to close. */ void closePanel( QgsPanelWidget *panel ); + + protected: + + void mouseReleaseEvent( QMouseEvent *e ) override; + private: void updateBreadcrumb(); QStack mTitles;