From 57a2c9c9adde1d8692bfb7abc095e2513488fa3c Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Sun, 5 Oct 2014 06:59:47 +0200 Subject: [PATCH] * Catch back / forward mouse buttons to traverse through pages. --- src/tomahawk/TomahawkApp.cpp | 1 + src/tomahawk/TomahawkWindow.cpp | 25 +++++++++++++++++++++++++ src/tomahawk/TomahawkWindow.h | 2 ++ 3 files changed, 28 insertions(+) diff --git a/src/tomahawk/TomahawkApp.cpp b/src/tomahawk/TomahawkApp.cpp index 589b4b985..7d051a47e 100644 --- a/src/tomahawk/TomahawkApp.cpp +++ b/src/tomahawk/TomahawkApp.cpp @@ -611,6 +611,7 @@ TomahawkApp::onInfoSystemReady() { m_mainwindow->show(); } + qApp->installEventFilter( m_mainwindow ); } tDebug() << "Init Local Collection."; diff --git a/src/tomahawk/TomahawkWindow.cpp b/src/tomahawk/TomahawkWindow.cpp index 13bfd547b..97e886be8 100644 --- a/src/tomahawk/TomahawkWindow.cpp +++ b/src/tomahawk/TomahawkWindow.cpp @@ -693,6 +693,31 @@ TomahawkWindow::setupMenuBar() } +bool +TomahawkWindow::eventFilter( QObject* obj, QEvent* event ) +{ + if ( event->type() == QEvent::MouseButtonPress ) + { + QMouseEvent* me = static_cast(event); + switch ( me->button() ) + { + case Qt::XButton1: + m_backAction->trigger(); + break; + + case Qt::XButton2: + m_forwardAction->trigger(); + break; + + default: + break; + } + } + + return QObject::eventFilter( obj, event ); +} + + void TomahawkWindow::changeEvent( QEvent* e ) { diff --git a/src/tomahawk/TomahawkWindow.h b/src/tomahawk/TomahawkWindow.h index bea75b942..e421b9ce8 100644 --- a/src/tomahawk/TomahawkWindow.h +++ b/src/tomahawk/TomahawkWindow.h @@ -90,6 +90,8 @@ protected: void hideEvent( QHideEvent* e ); void keyPressEvent( QKeyEvent* e ); + bool eventFilter( QObject* obj, QEvent* event ); + #if defined(Q_OS_WIN) && QT_VERSION < QT_VERSION_CHECK( 5, 2, 0 ) bool winEvent( MSG* message, long* result ); #endif