diff --git a/data/themes/default/add.png b/data/themes/default/add.png index f79fdfdba..3e8ae42fb 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 b0de61d22..f4b6e78f6 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 720673b76..6dec8a971 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 3924a9173..db2126d93 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 343c1f724..100eeac23 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 9c84adbf9..2c6d8de07 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 3dfec2ad4..bb41ae74a 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 618d47f4d..0a216e101 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 29895040a..6f5fa890b 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 c9c5b562d..d3b54e602 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 c9ba58e13..1d3e4b9de 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 3b3e34b47..25311d353 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 53eb0b19d..350c62895 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 965db40df..8621eee12 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 128dbf0fb..ac69e9602 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 6f170fb9c..ecc2d2fbf 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 b8130a8d1..fc124050f 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 1125fde0c..78b5c6e38 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 1b24e3b3c..01e0c9184 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 c1380cec3..3c3900a8e 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 8eb5f03e4..3a73cac9f 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 5bb1daa28..c6190cb1c 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 4a71bc7dd..52db364c1 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 60564201c..dda61f83c 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 b13cbe500..bf8aef948 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 de1f21cce..6a41b7f14 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 e6411e34f..71d339eba 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 b69c59382..7268ee57d 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 2f38e0b83..5c6c7f51f 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 9f9708666..73e3710cc 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 b6a58e8b0..0c307c20d 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 b5a0d5230..efd8201ed 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 b73de4933..ec83a21ba 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; + } }