[vlc-devel] commit: Qt: InputSlider: wheeling on it will seek of 1% in position. ( Jean-Baptiste Kempf )

git version control git at videolan.org
Fri Sep 12 22:23:50 CEST 2008


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Fri Sep 12 13:25:29 2008 -0700| [af7cf494ef8b4b50bd98260675936ad4bc08e7fc] | committer: Jean-Baptiste Kempf 

Qt: InputSlider: wheeling on it will seek of 1% in position.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=af7cf494ef8b4b50bd98260675936ad4bc08e7fc
---

 modules/gui/qt4/util/input_slider.cpp |   16 ++++++++++++++++
 modules/gui/qt4/util/input_slider.hpp |    8 +++++++-
 2 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/modules/gui/qt4/util/input_slider.cpp b/modules/gui/qt4/util/input_slider.cpp
index c94c632..053d9a2 100644
--- a/modules/gui/qt4/util/input_slider.cpp
+++ b/modules/gui/qt4/util/input_slider.cpp
@@ -107,6 +107,22 @@ void InputSlider::mouseMoveEvent(QMouseEvent *event)
     setToolTip( psz_length );
 }
 
+void InputSlider::wheelEvent( QWheelEvent *event)
+{
+    /* Don't do anything if we are for somehow reason sliding */
+    if( !b_sliding )
+    {
+        setValue( value() + event->delta()/12 ); /* 12 = 8 * 15 / 10
+         Since delta is in 1/8 of ° and mouse have steps of 15 °
+         and that our slider is in 0.1% and we want one step to be a 1%
+         increment of position */
+        emit sliderDragged( value()/1000.0 );
+    }
+    /* We do accept because for we don't want the parent to change the sound
+       vol */
+    event->accept();
+}
+
 /* This work is derived from Amarok's work under GPLv2+
     - Mark Kretschmann
     - Gábor Lehel
diff --git a/modules/gui/qt4/util/input_slider.hpp b/modules/gui/qt4/util/input_slider.hpp
index 39b5066..fa6214d 100644
--- a/modules/gui/qt4/util/input_slider.hpp
+++ b/modules/gui/qt4/util/input_slider.hpp
@@ -27,9 +27,13 @@
 
 #include "qt4.hpp"
 
+#include <QAbstractSlider>
 #include <QSlider>
+
 #include <QMouseEvent>
+#include <QWheelEvent>
 
+/* Input Slider derived from QSlider */
 class InputSlider : public QSlider
 {
     Q_OBJECT
@@ -41,6 +45,7 @@ protected:
     virtual void mouseMoveEvent(QMouseEvent *event);
     virtual void mousePressEvent(QMouseEvent* event);
     virtual void mouseReleaseEvent(QMouseEvent* event);
+    virtual void wheelEvent(QWheelEvent *event);
 private:
     bool b_sliding;
     int inputLength;
@@ -54,8 +59,9 @@ signals:
 };
 
 
+/* Sound Slider inherited directly from QAbstractSlider */
+
 class QPaintEvent;
-#include <QAbstractSlider>
 
 class SoundSlider : public QAbstractSlider
 {




More information about the vlc-devel mailing list