From 6372c0d0cd11a6295515a9f88f3993441a732c9c Mon Sep 17 00:00:00 2001 From: Paul Giblock Date: Sun, 4 May 2008 17:13:09 +0000 Subject: [PATCH] Fix instrument view size, add new kicker artwork git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@951 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 13 ++++++ include/knob.h | 1 + plugins/kicker/artwork.png | Bin 10148 -> 46311 bytes plugins/kicker/kicker.cpp | 68 ++++++++++++++++++++++---------- src/gui/widgets/knob.cpp | 44 ++++++++++----------- src/tracks/instrument_track.cpp | 4 +- 6 files changed, 85 insertions(+), 45 deletions(-) diff --git a/ChangeLog b/ChangeLog index 53b5846ac..abb906dc1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2008-05-04 Paul Giblock + + * plugins/kicker/kicker.cpp: + * plugins/kicker/artwork.png: + Add new artwork + + * include/knob.h: + * src/gui/widgets/knob.cpp: + Seperate some drawing functionality to simplify subclasses + + * src/tracks/instrument_track.cpp: + Change plugin size from 246px back to 250px + 2008-05-03 Tobias Dorffel * src/core/track.cpp: diff --git a/include/knob.h b/include/knob.h index 0b279f449..f1553355a 100644 --- a/include/knob.h +++ b/include/knob.h @@ -106,6 +106,7 @@ protected: float getValue( const QPoint & _p ); + QLineF calculateLine( const QPointF & _mid, float _radius, float _innerRadius = 1) const; private: inline float pageSize( void ) const diff --git a/plugins/kicker/artwork.png b/plugins/kicker/artwork.png index 17087a79e635f1d9eb21373672fac874f8380314..d7947e2abc74f2b4c67d7812da658d73911dd147 100644 GIT binary patch literal 46311 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 D`7(l{T*IW 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 #include +#include #include "kicker.h" #include "engine.h" @@ -190,41 +190,67 @@ pluginView * kickerInstrument::instantiateView( QWidget * _parent ) +class kickerKnob : public knob +{ +public: + kickerKnob( QWidget * _parent, const QString & _name ) : + knob( 0, _parent, _name ) + { + setFixedSize( 37, 47 ); + } + + static const QPointF m_midPoint; + +protected: + virtual void paintEvent( QPaintEvent * _me ) + { + QPainter p( this ); + p.setRenderHint( QPainter::Antialiasing ); + + QLineF ln = calculateLine( m_midPoint, 11.2, 4 ); + + QRadialGradient gradient(m_midPoint, 11); + gradient.setColorAt(0.33, QColor( 240, 147, 14 ) ); + gradient.setColorAt(1, QColor( 30, 35, 37 ) ); + //gradient.setColorAt(1, QColor( 68, 77, 82 ) ); + //p.setPen( QPen( QColor( 0, 91, 120 ), 2 ) ); + //p.drawRect( QRect(QPoint(0,0), size()) ); + + //p.setPen( QPen( QColor( 146, 91, 12 ), 3 ) ); + //p.drawLine( ln ); + + p.setPen( QPen( gradient, 3 ) ); + p.drawLine( ln ); + } +}; + +const QPointF kickerKnob::m_midPoint = QPointF( 18.5, 13.5 ); + kickerInstrumentView::kickerInstrumentView( instrument * _instrument, QWidget * _parent ) : instrumentView( _instrument, _parent ) { - QVBoxLayout * vl = new QVBoxLayout( this ); - QHBoxLayout * hl = new QHBoxLayout; - m_startFreqKnob = new knob( knobDark_28, this, tr( "Start frequency" ) ); - m_startFreqKnob->setLabel( tr( "START" ) ); + m_startFreqKnob = new kickerKnob( this, tr( "Start frequency" ) ); m_startFreqKnob->setHintText( tr( "Start frequency:" ) + " ", "Hz" ); + m_startFreqKnob->move( 12, 124 ); - m_endFreqKnob = new knob( knobDark_28, this, tr( "End frequency" ) ); - m_endFreqKnob->setLabel( tr( "END" ) ); + m_endFreqKnob = new kickerKnob( this, tr( "End frequency" ) ); m_endFreqKnob->setHintText( tr( "End frequency:" ) + " ", "Hz" ); + m_endFreqKnob->move( 59, 124 ); - m_decayKnob = new knob( knobDark_28, this, tr( "Decay" ) ); - m_decayKnob->setLabel( tr( "DECAY" ) ); + m_decayKnob = new kickerKnob( this, tr( "Decay" ) ); m_decayKnob->setHintText( tr( "Decay:" ) + " ", "ms" ); + m_decayKnob->move( 107, 124 ); - m_distKnob = new knob( knobDark_28, this, tr( "Distortion" ) ); - m_distKnob->setLabel( tr( "DIST" ) ); + m_distKnob = new kickerKnob( this, tr( "Distortion" ) ); m_distKnob->setHintText( tr( "Distortion:" ) + " ", "" ); + m_distKnob->move( 155, 124 ); - m_gainKnob = new knob( knobDark_28, this, tr( "Gain" ) ); - m_gainKnob->setLabel( tr( "GAIN" ) ); + m_gainKnob = new kickerKnob( this, tr( "Gain" ) ); m_gainKnob->setHintText( tr( "Gain:" ) + " ", "" ); - - hl->addWidget( m_startFreqKnob ); - hl->addWidget( m_endFreqKnob ); - hl->addWidget( m_decayKnob ); - hl->addWidget( m_distKnob ); - hl->addWidget( m_gainKnob ); - - vl->addLayout( hl ); + m_gainKnob->move( 203, 124 ); setAutoFillBackground( TRUE ); QPalette pal; diff --git a/src/gui/widgets/knob.cpp b/src/gui/widgets/knob.cpp index 4163d980a..d98a87aab 100644 --- a/src/gui/widgets/knob.cpp +++ b/src/gui/widgets/knob.cpp @@ -138,9 +138,7 @@ void knob::setTotalAngle( float _angle ) } - - -void knob::drawKnob( QPainter * _p ) +QLineF knob::calculateLine( const QPointF & _mid, float _radius, float _innerRadius ) const { float angle = 0.0f; if( model()->maxValue() != model()->minValue() ) @@ -152,16 +150,25 @@ void knob::drawKnob( QPainter * _p ) angle = static_cast( angle ) % 360; } - const float radius = m_knobPixmap->width() / 2.0f - 1; - const float xm = m_knobPixmap->width() / 2.0f;//radius + 1; - const float ym = m_knobPixmap->height() / 2.0f;//radius+1; - const float rarc = angle * M_PI / 180.0; const float ca = cos( rarc ); const float sa = -sin( rarc ); - _p->drawPixmap( static_cast( xm - m_knobPixmap->width() / 2 ), 0, - *m_knobPixmap ); + return QLineF( _mid.x() - sa*_innerRadius, _mid.y() - ca*_innerRadius, + _mid.x() - sa*_radius, _mid.y() - ca*_radius ); +} + + + +void knob::drawKnob( QPainter * _p ) +{ + const float radius = m_knobPixmap->width() / 2.0f - 1; + QPoint mid = QPoint( width() / 2.0, + m_knobPixmap->height() / 2.0f ); + + _p->drawPixmap( static_cast( + width() / 2 - m_knobPixmap->width() / 2 ), 0, + *m_knobPixmap ); _p->setPen( QPen( QColor( 200, 0, 0 ), 2 ) ); _p->setRenderHint( QPainter::Antialiasing ); @@ -170,16 +177,12 @@ void knob::drawKnob( QPainter * _p ) { case knobSmall_17: { - _p->drawLine( QLineF( xm-sa, ym-ca, - xm - sa*radius, - ym - ca*radius ) ); + _p->drawLine( calculateLine( mid, radius ) ); break; } case knobBright_26: { - _p->drawLine( QLineF( xm-sa, ym-ca, - xm - sa*( radius-5 ), - ym - ca*( radius-5 ) ) ); + _p->drawLine( calculateLine( mid, radius-5 ) ); break; } case knobDark_28: @@ -187,18 +190,15 @@ void knob::drawKnob( QPainter * _p ) const float rb = tMax( ( radius - 10 ) / 3.0, 0.0 ); const float re = tMax( ( radius - 4 ), 0.0 ); - _p->drawLine( QLineF( xm-sa*rb + 1, - ym - ca*rb + 1, - xm - sa*re + 1, - ym - ca*re + 1 ) ); + QLineF ln = calculateLine( mid, re, rb ); + ln.translate( 1, 1 ); + _p->drawLine( ln ); break; } case knobGreen_17: { _p->setPen( QPen( QColor( 0, 200, 0 ), 2 ) ); - _p->drawLine( QLineF( xm-sa, ym-ca, - xm - sa*radius, - ym - ca*radius ) ); + _p->drawLine( calculateLine( mid, radius ) ); break; } } diff --git a/src/tracks/instrument_track.cpp b/src/tracks/instrument_track.cpp index c65b094e5..cb0f21de4 100644 --- a/src/tracks/instrument_track.cpp +++ b/src/tracks/instrument_track.cpp @@ -94,7 +94,7 @@ const char * surroundarea_help = QT_TRANSLATE_NOOP( "instrumentTrack", "feature." ); -const int INSTRUMENT_WIDTH = 250; +const int INSTRUMENT_WIDTH = 254; const int INSTRUMENT_HEIGHT = INSTRUMENT_WIDTH; const int PIANO_HEIGHT = 84; const int INSTRUMENT_WINDOW_CACHE_SIZE = 8; @@ -1106,7 +1106,7 @@ instrumentTrackWindow::instrumentTrackWindow( instrumentTrackView * _itv ) : m_tabWidget = new tabWidget( "", this ); - m_tabWidget->setFixedHeight( INSTRUMENT_HEIGHT + 12 ); + m_tabWidget->setFixedHeight( INSTRUMENT_HEIGHT + 10 ); // create tab-widgets