From f6857c6a31f40a49859972e483bfdec57cb8861b Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf Date: Thu, 12 Apr 2007 16:24:49 +0000 Subject: [PATCH] Qt4 - MouseWheel support - patch by Sergey Volk. --- modules/gui/qt4/main_interface.cpp | 15 +++++++++++++++ modules/gui/qt4/main_interface.hpp | 1 + modules/gui/qt4/util/customwidgets.cpp | 14 ++++++++++---- modules/gui/qt4/util/customwidgets.hpp | 1 + 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp index 143d221ca8..0d944690fa 100644 --- a/modules/gui/qt4/main_interface.cpp +++ b/modules/gui/qt4/main_interface.cpp @@ -551,6 +551,21 @@ void MainInterface::keyPressEvent( QKeyEvent *e ) e->ignore(); } +void MainInterface::wheelEvent( QWheelEvent *e ) +{ + int i_vlckey = 0; + + if ( e->delta() > 0 ) + i_vlckey = KEY_MOUSEWHEELUP; + else + i_vlckey = KEY_MOUSEWHEELDOWN; + + /* Handle modifiers */ + i_vlckey |= qtKeyModifiersToVLC( e ); + var_SetInteger( p_intf->p_libvlc, "key-pressed", i_vlckey ); + e->accept(); +} + void MainInterface::stop() { playlist_Stop( THEPL ); diff --git a/modules/gui/qt4/main_interface.hpp b/modules/gui/qt4/main_interface.hpp index c7da3cb48c..81e2e5bf5f 100644 --- a/modules/gui/qt4/main_interface.hpp +++ b/modules/gui/qt4/main_interface.hpp @@ -76,6 +76,7 @@ private: /* Video */ VideoWidget *videoWidget; virtual void keyPressEvent( QKeyEvent *); + virtual void wheelEvent( QWheelEvent * ); bool embeddedPlaylistWasActive; bool videoIsActive; diff --git a/modules/gui/qt4/util/customwidgets.cpp b/modules/gui/qt4/util/customwidgets.cpp index 10c37c617a..cd30fb5474 100644 --- a/modules/gui/qt4/util/customwidgets.cpp +++ b/modules/gui/qt4/util/customwidgets.cpp @@ -97,15 +97,21 @@ void ClickLineEdit::focusOutEvent( QFocusEvent *ev ) /*************************************************************************** * Hotkeys converters ***************************************************************************/ +int qtKeyModifiersToVLC( QInputEvent* e ) +{ + int i_keyModifiers = 0; + if( e->modifiers() & Qt::ShiftModifier ) i_keyModifiers |= KEY_MODIFIER_SHIFT; + if( e->modifiers() & Qt::AltModifier ) i_keyModifiers |= KEY_MODIFIER_ALT; + if( e->modifiers() & Qt::ControlModifier ) i_keyModifiers |= KEY_MODIFIER_CTRL; + if( e->modifiers() & Qt::MetaModifier ) i_keyModifiers |= KEY_MODIFIER_META; + return i_keyModifiers; +} int qtEventToVLCKey( QKeyEvent *e ) { int i_vlck = 0; /* Handle modifiers */ - if( e->modifiers()& Qt::ShiftModifier ) i_vlck |= KEY_MODIFIER_SHIFT; - if( e->modifiers()& Qt::AltModifier ) i_vlck |= KEY_MODIFIER_ALT; - if( e->modifiers()& Qt::ControlModifier ) i_vlck |= KEY_MODIFIER_CTRL; - if( e->modifiers()& Qt::MetaModifier ) i_vlck |= KEY_MODIFIER_META; + i_vlck |= qtKeyModifiersToVLC( e ); bool found = false; /* Look for some special keys */ diff --git a/modules/gui/qt4/util/customwidgets.hpp b/modules/gui/qt4/util/customwidgets.hpp index 9a4d94b018..7c137edc96 100644 --- a/modules/gui/qt4/util/customwidgets.hpp +++ b/modules/gui/qt4/util/customwidgets.hpp @@ -88,5 +88,6 @@ signals: class QKeyEvent; int qtEventToVLCKey( QKeyEvent *e ); QString VLCKeyToString( int val ); +int qtKeyModifiersToVLC( QInputEvent* e ); #endif -- 2.39.2