Commit 038ee68f authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Qt: InputSlider modification to close #2033.

Qt: InputSlider: wheeling on it will seek of 1% in position.
(cherry picked from commit af7cf494)
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>

Qt: Don't accept focus on the input slider. Never. Just process mouseEvents...
(cherry picked from commit 47591074)
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 54a22246
...@@ -50,6 +50,7 @@ InputSlider::InputSlider( Qt::Orientation q,QWidget *_parent ) : ...@@ -50,6 +50,7 @@ InputSlider::InputSlider( Qt::Orientation q,QWidget *_parent ) :
setTracking( true ); setTracking( true );
setPosition( -1.0, 0, 0 ); setPosition( -1.0, 0, 0 );
secstotimestr( psz_length, 0 ); secstotimestr( psz_length, 0 );
setFocusPolicy( Qt::NoFocus );
CONNECT( this, valueChanged(int), this, userDrag( int ) ); CONNECT( this, valueChanged(int), this, userDrag( int ) );
} }
...@@ -110,6 +111,22 @@ void InputSlider::mouseMoveEvent(QMouseEvent *event) ...@@ -110,6 +111,22 @@ void InputSlider::mouseMoveEvent(QMouseEvent *event)
setToolTip( psz_length ); 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+ /* This work is derived from Amarok's work under GPLv2+
- Mark Kretschmann - Mark Kretschmann
- Gábor Lehel - Gábor Lehel
......
...@@ -27,9 +27,13 @@ ...@@ -27,9 +27,13 @@
#include "qt4.hpp" #include "qt4.hpp"
#include <QAbstractSlider>
#include <QSlider> #include <QSlider>
#include <QMouseEvent> #include <QMouseEvent>
#include <QWheelEvent>
/* Input Slider derived from QSlider */
class InputSlider : public QSlider class InputSlider : public QSlider
{ {
Q_OBJECT Q_OBJECT
...@@ -41,6 +45,7 @@ protected: ...@@ -41,6 +45,7 @@ protected:
virtual void mouseMoveEvent(QMouseEvent *event); virtual void mouseMoveEvent(QMouseEvent *event);
virtual void mousePressEvent(QMouseEvent* event); virtual void mousePressEvent(QMouseEvent* event);
virtual void mouseReleaseEvent(QMouseEvent* event); virtual void mouseReleaseEvent(QMouseEvent* event);
virtual void wheelEvent(QWheelEvent *event);
private: private:
bool b_sliding; bool b_sliding;
int inputLength; int inputLength;
...@@ -54,8 +59,9 @@ signals: ...@@ -54,8 +59,9 @@ signals:
}; };
/* Sound Slider inherited directly from QAbstractSlider */
class QPaintEvent; class QPaintEvent;
#include <QAbstractSlider>
class SoundSlider : public QAbstractSlider class SoundSlider : public QAbstractSlider
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment