]> git.sesse.net Git - vlc/commitdiff
Qt4 - MouseWheel support - patch by Sergey Volk.
authorJean-Baptiste Kempf <jb@videolan.org>
Thu, 12 Apr 2007 16:24:49 +0000 (16:24 +0000)
committerJean-Baptiste Kempf <jb@videolan.org>
Thu, 12 Apr 2007 16:24:49 +0000 (16:24 +0000)
modules/gui/qt4/main_interface.cpp
modules/gui/qt4/main_interface.hpp
modules/gui/qt4/util/customwidgets.cpp
modules/gui/qt4/util/customwidgets.hpp

index 143d221ca8bf92e82947dde487278ccf989dd7cf..0d944690faed7fda44f0624c0ff77b5f117a7379 100644 (file)
@@ -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 );
index c7da3cb48c9570efb6dadd414c944125099a7304..81e2e5bf5fbd2ea4ed9817932d8276e3846bf127 100644 (file)
@@ -76,6 +76,7 @@ private:
     /* Video */
     VideoWidget         *videoWidget;
     virtual void keyPressEvent( QKeyEvent *);
+    virtual void wheelEvent( QWheelEvent * );
 
     bool embeddedPlaylistWasActive;
     bool videoIsActive;
index 10c37c617a54e18147fb29e60395dfd4ededd174..cd30fb547406d8ab5b61aa8c49aaa120e17133f2 100644 (file)
@@ -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 */
index 9a4d94b0182fa07d1eecb35972ced4538b58aaa7..7c137edc969828e60c89912396832ef84c6753ef 100644 (file)
@@ -88,5 +88,6 @@ signals:
 class QKeyEvent;
 int qtEventToVLCKey( QKeyEvent *e );
 QString VLCKeyToString( int val );
+int qtKeyModifiersToVLC( QInputEvent* e );
 
 #endif