From 3739ef82c618808623b367b5dbe89c4a175c5245 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Tue, 27 Nov 2012 23:56:37 +0100 Subject: [PATCH] Widgets/Fader: generic knob drawing code Instead of hard-coding pixmap sizes, calculate everything dynamically. --- include/fader.h | 6 +++--- src/gui/widgets/fader.cpp | 15 ++------------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/include/fader.h b/include/fader.h index 61b3fd407..db5fbd878 100644 --- a/include/fader.h +++ b/include/fader.h @@ -79,12 +79,12 @@ private: virtual void wheelEvent( QWheelEvent *ev ); virtual void paintEvent( QPaintEvent *ev ); - inline uint knob_y() const + int knobPosY() const { float fRange = m_model->maxValue() - m_model->minValue(); float realVal = m_model->value() - m_model->minValue(); -// uint knob_y = (uint)( 116.0 - ( 86.0 * ( m_model->value() / fRange ) ) ); - return (uint)( 116.0 - ( 86.0 * ( realVal / fRange ) ) ); + + return height() - ( ( height() - m_knob.height() ) * ( realVal / fRange ) ); } FloatModel * m_model; diff --git a/src/gui/widgets/fader.cpp b/src/gui/widgets/fader.cpp index ae088dd38..b101c2340 100644 --- a/src/gui/widgets/fader.cpp +++ b/src/gui/widgets/fader.cpp @@ -225,7 +225,7 @@ void fader::updateTextFloat() { s_textFloat->setText( QString("Volume: %1 %").arg( m_model->value() * 100 ) ); } - s_textFloat->moveGlobal( this, QPoint( width() - m_knob.width() - 5, knob_y() - 46 ) ); + s_textFloat->moveGlobal( this, QPoint( width() - m_knob.width() - 5, knobPosY() - 46 ) ); } @@ -268,18 +268,7 @@ void fader::paintEvent( QPaintEvent * ev) } // knob - static const uint knob_height = 29; - static const uint knob_width = 15; - - float fRange = m_model->maxValue() - m_model->minValue(); - - float realVal = m_model->value() - m_model->minValue(); - -// uint knob_y = (uint)( 116.0 - ( 86.0 * ( m_model->value() / fRange ) ) ); - uint knob_y = (uint)( 116.0 - ( 86.0 * ( realVal / fRange ) ) ); - - - painter.drawPixmap( QRect( 4, knob_y - knob_height, knob_width, knob_height), m_knob, QRect( 0, 0, knob_width, knob_height ) ); + painter.drawPixmap( 4, knobPosY() - m_knob.height(), m_knob ); }