diff --git a/data/themes/default/add.png b/data/themes/default/add.png index f79fdfdba2..3e8ae42fbd 100644 Binary files a/data/themes/default/add.png and b/data/themes/default/add.png differ diff --git a/data/themes/default/cancel.png b/data/themes/default/cancel.png index b0de61d22a..f4b6e78f60 100644 Binary files a/data/themes/default/cancel.png and b/data/themes/default/cancel.png differ diff --git a/data/themes/default/chord.png b/data/themes/default/chord.png index 720673b766..6dec8a971b 100644 Binary files a/data/themes/default/chord.png and b/data/themes/default/chord.png differ diff --git a/data/themes/default/dont_know.png b/data/themes/default/dont_know.png index 3924a91734..db2126d93a 100644 Binary files a/data/themes/default/dont_know.png and b/data/themes/default/dont_know.png differ diff --git a/data/themes/default/envelope_graph.png b/data/themes/default/envelope_graph.png index 343c1f7240..100eeac23d 100644 Binary files a/data/themes/default/envelope_graph.png and b/data/themes/default/envelope_graph.png differ diff --git a/include/knob.h b/include/knob.h index 9c84adbf90..2c6d8de077 100644 --- a/include/knob.h +++ b/include/knob.h @@ -36,8 +36,6 @@ class QPixmap; class textFloat; -#define KNOB_SMOOTH_FACTOR 0.125f - enum knobTypes { knobDark_28, knobBright_26, knobSmall_17, knobGreen_17, knobVintage_32, knobStyled @@ -55,7 +53,7 @@ class EXPORT knob : public QWidget, public FloatModelView Q_PROPERTY(float centerPointY READ centerPointY WRITE setCenterPointY) Q_PROPERTY(float lineWidth READ lineWidth WRITE setLineWidth) - + // Unfortunately, the gradient syntax doesn't create our gradient // correctly so we need to do this: Q_PROPERTY(QColor outerColor READ outerColor WRITE setOuterColor) @@ -90,8 +88,8 @@ public: float lineWidth() const; void setLineWidth( float _w ); - - QColor outerColor() const; + + QColor outerColor() const; void setOuterColor( const QColor & _c ); @@ -140,9 +138,7 @@ private: inline float pageSize() const { - return( qMax( ( model()->maxValue() - - model()->minValue() ) / 100.0f, - modelUntyped()->step() ) ); + return ( model()->maxValue() - model()->minValue() ) / 100.0f; } @@ -156,6 +152,7 @@ private: QPoint m_mouseOffset; QPoint m_origMousePos; + float m_leftOver; bool m_buttonPressed; float m_totalAngle; diff --git a/plugins/sfxr/blip_active.png b/plugins/sfxr/blip_active.png index 3dfec2ad46..bb41ae74a7 100644 Binary files a/plugins/sfxr/blip_active.png and b/plugins/sfxr/blip_active.png differ diff --git a/plugins/sfxr/blip_inactive.png b/plugins/sfxr/blip_inactive.png index 618d47f4dc..0a216e1014 100644 Binary files a/plugins/sfxr/blip_inactive.png and b/plugins/sfxr/blip_inactive.png differ diff --git a/plugins/sfxr/explosion_active.png b/plugins/sfxr/explosion_active.png index 29895040a0..6f5fa890b0 100644 Binary files a/plugins/sfxr/explosion_active.png and b/plugins/sfxr/explosion_active.png differ diff --git a/plugins/sfxr/explosion_inactive.png b/plugins/sfxr/explosion_inactive.png index c9c5b562d1..d3b54e602b 100644 Binary files a/plugins/sfxr/explosion_inactive.png and b/plugins/sfxr/explosion_inactive.png differ diff --git a/plugins/sfxr/hit_active.png b/plugins/sfxr/hit_active.png index c9ba58e13f..1d3e4b9de3 100644 Binary files a/plugins/sfxr/hit_active.png and b/plugins/sfxr/hit_active.png differ diff --git a/plugins/sfxr/hit_inactive.png b/plugins/sfxr/hit_inactive.png index 3b3e34b47b..25311d353c 100644 Binary files a/plugins/sfxr/hit_inactive.png and b/plugins/sfxr/hit_inactive.png differ diff --git a/plugins/sfxr/jump_active.png b/plugins/sfxr/jump_active.png index 53eb0b19d8..350c62895e 100644 Binary files a/plugins/sfxr/jump_active.png and b/plugins/sfxr/jump_active.png differ diff --git a/plugins/sfxr/jump_inactive.png b/plugins/sfxr/jump_inactive.png index 965db40df9..8621eee127 100644 Binary files a/plugins/sfxr/jump_inactive.png and b/plugins/sfxr/jump_inactive.png differ diff --git a/plugins/sfxr/laser_active.png b/plugins/sfxr/laser_active.png index 128dbf0fbf..ac69e96027 100644 Binary files a/plugins/sfxr/laser_active.png and b/plugins/sfxr/laser_active.png differ diff --git a/plugins/sfxr/laser_inactive.png b/plugins/sfxr/laser_inactive.png index 6f170fb9cf..ecc2d2fbfb 100644 Binary files a/plugins/sfxr/laser_inactive.png and b/plugins/sfxr/laser_inactive.png differ diff --git a/plugins/sfxr/mutate_active.png b/plugins/sfxr/mutate_active.png index b8130a8d11..fc124050f0 100644 Binary files a/plugins/sfxr/mutate_active.png and b/plugins/sfxr/mutate_active.png differ diff --git a/plugins/sfxr/mutate_inactive.png b/plugins/sfxr/mutate_inactive.png index 1125fde0cb..78b5c6e388 100644 Binary files a/plugins/sfxr/mutate_inactive.png and b/plugins/sfxr/mutate_inactive.png differ diff --git a/plugins/sfxr/pickup_active.png b/plugins/sfxr/pickup_active.png index 1b24e3b3ce..01e0c91843 100644 Binary files a/plugins/sfxr/pickup_active.png and b/plugins/sfxr/pickup_active.png differ diff --git a/plugins/sfxr/pickup_inactive.png b/plugins/sfxr/pickup_inactive.png index c1380cec32..3c3900a8e2 100644 Binary files a/plugins/sfxr/pickup_inactive.png and b/plugins/sfxr/pickup_inactive.png differ diff --git a/plugins/sfxr/powerup_active.png b/plugins/sfxr/powerup_active.png index 8eb5f03e45..3a73cac9fd 100644 Binary files a/plugins/sfxr/powerup_active.png and b/plugins/sfxr/powerup_active.png differ diff --git a/plugins/sfxr/powerup_inactive.png b/plugins/sfxr/powerup_inactive.png index 5bb1daa284..c6190cb1c6 100644 Binary files a/plugins/sfxr/powerup_inactive.png and b/plugins/sfxr/powerup_inactive.png differ diff --git a/plugins/sfxr/randomize_active.png b/plugins/sfxr/randomize_active.png index 4a71bc7dd7..52db364c16 100644 Binary files a/plugins/sfxr/randomize_active.png and b/plugins/sfxr/randomize_active.png differ diff --git a/plugins/sfxr/randomize_inactive.png b/plugins/sfxr/randomize_inactive.png index 60564201cb..dda61f83c5 100644 Binary files a/plugins/sfxr/randomize_inactive.png and b/plugins/sfxr/randomize_inactive.png differ diff --git a/plugins/sfxr/sfxr_saw_wave_active.png b/plugins/sfxr/sfxr_saw_wave_active.png index b13cbe5009..bf8aef948e 100644 Binary files a/plugins/sfxr/sfxr_saw_wave_active.png and b/plugins/sfxr/sfxr_saw_wave_active.png differ diff --git a/plugins/sfxr/sfxr_saw_wave_inactive.png b/plugins/sfxr/sfxr_saw_wave_inactive.png index de1f21cce4..6a41b7f144 100644 Binary files a/plugins/sfxr/sfxr_saw_wave_inactive.png and b/plugins/sfxr/sfxr_saw_wave_inactive.png differ diff --git a/plugins/sfxr/sfxr_sin_wave_active.png b/plugins/sfxr/sfxr_sin_wave_active.png index e6411e34f2..71d339ebae 100644 Binary files a/plugins/sfxr/sfxr_sin_wave_active.png and b/plugins/sfxr/sfxr_sin_wave_active.png differ diff --git a/plugins/sfxr/sfxr_sin_wave_inactive.png b/plugins/sfxr/sfxr_sin_wave_inactive.png index b69c59382b..7268ee57d7 100644 Binary files a/plugins/sfxr/sfxr_sin_wave_inactive.png and b/plugins/sfxr/sfxr_sin_wave_inactive.png differ diff --git a/plugins/sfxr/sfxr_square_wave_active.png b/plugins/sfxr/sfxr_square_wave_active.png index 2f38e0b834..5c6c7f51fd 100644 Binary files a/plugins/sfxr/sfxr_square_wave_active.png and b/plugins/sfxr/sfxr_square_wave_active.png differ diff --git a/plugins/sfxr/sfxr_square_wave_inactive.png b/plugins/sfxr/sfxr_square_wave_inactive.png index 9f9708666d..73e3710cca 100644 Binary files a/plugins/sfxr/sfxr_square_wave_inactive.png and b/plugins/sfxr/sfxr_square_wave_inactive.png differ diff --git a/plugins/sfxr/sfxr_white_noise_wave_active.png b/plugins/sfxr/sfxr_white_noise_wave_active.png index b6a58e8b0b..0c307c20d9 100644 Binary files a/plugins/sfxr/sfxr_white_noise_wave_active.png and b/plugins/sfxr/sfxr_white_noise_wave_active.png differ diff --git a/plugins/sfxr/sfxr_white_noise_wave_inactive.png b/plugins/sfxr/sfxr_white_noise_wave_inactive.png index b5a0d52307..efd8201ede 100644 Binary files a/plugins/sfxr/sfxr_white_noise_wave_inactive.png and b/plugins/sfxr/sfxr_white_noise_wave_inactive.png differ diff --git a/src/gui/widgets/knob.cpp b/src/gui/widgets/knob.cpp index b73de4933a..ec83a21ba3 100644 --- a/src/gui/widgets/knob.cpp +++ b/src/gui/widgets/knob.cpp @@ -388,12 +388,19 @@ void knob::drawKnob( QPainter * _p ) } float knob::getValue( const QPoint & _p ) -{ - if( engine::mainWindow()->isShiftPressed() ) +{ + float value; + + // arcane mathemagicks for calculating knob movement + value = ( ( _p.y() + _p.y() * qMin( qAbs( _p.y() / 2 ), 6 ) ) ) / 10.0f; + + // if shift pressed we want slower movement + if( engine::mainWindow()->isShiftPressed() ) { - return ( _p.y() * model()->step()); - } - return ( _p.y() * KNOB_SMOOTH_FACTOR * pageSize() ); + value /= 4.0f; + value = qBound( -4.0f, value, 4.0f ); + } + return value * pageSize(); } @@ -463,6 +470,7 @@ void knob::mousePressEvent( QMouseEvent * _me ) const QPoint & p = _me->pos(); m_origMousePos = p; m_mouseOffset = QPoint(0, 0); + m_leftOver = 0.0f; emit sliderPressed(); @@ -580,7 +588,18 @@ void knob::wheelEvent( QWheelEvent * _we ) void knob::setPosition( const QPoint & _p ) { - model()->setValue( model()->value() - getValue(_p) ); + const float value = getValue( _p ) + m_leftOver; + const float step = model()->step(); + + if( qAbs( value ) >= step ) + { + model()->setValue( model()->value() - value ); + m_leftOver = 0.0f; + } + else + { + m_leftOver = value; + } }