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
This commit is contained in:
Paul Giblock
2008-05-04 17:13:09 +00:00
parent 1f6b784c0a
commit 6372c0d0cd
6 changed files with 85 additions and 45 deletions

View File

@@ -1,3 +1,16 @@
2008-05-04 Paul Giblock <drfaygo/at/gmail/dot/com>
* 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 <tobydox/at/users/dot/sourceforge/dot/net>
* src/core/track.cpp:

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -23,8 +23,8 @@
*/
#include <QtGui/QLayout>
#include <Qt/QtXml>
#include <QtGui/QPainter>
#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;

View File

@@ -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<int>( 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<int>( 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<int>(
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<float>( ( radius - 10 ) / 3.0,
0.0 );
const float re = tMax<float>( ( 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;
}
}

View File

@@ -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