knob without def ctors.
This commit is contained in:
@@ -38,7 +38,7 @@ class EXPORT TempoSyncKnob : public knob
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TempoSyncKnob( int knobNum, QWidget* parent = NULL, const QString& name = QString() );
|
||||
TempoSyncKnob( knobTypes knobNum, QWidget* parent = NULL, const QString& name = QString() );
|
||||
virtual ~TempoSyncKnob();
|
||||
|
||||
const QString & syncDescription();
|
||||
|
||||
@@ -46,6 +46,8 @@ enum knobTypes
|
||||
class EXPORT knob : public QWidget, public FloatModelView
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_ENUMS( knobTypes )
|
||||
|
||||
Q_PROPERTY(float innerRadius READ innerRadius WRITE setInnerRadius)
|
||||
Q_PROPERTY(float outerRadius READ outerRadius WRITE setOuterRadius)
|
||||
|
||||
@@ -57,11 +59,18 @@ class EXPORT knob : public QWidget, public FloatModelView
|
||||
// Unfortunately, the gradient syntax doesn't create our gradient
|
||||
// correctly so we need to do this:
|
||||
Q_PROPERTY(QColor outerColor READ outerColor WRITE setOuterColor)
|
||||
Q_PROPERTY(QColor lineColor READ lineColor WRITE setlineColor)
|
||||
Q_PROPERTY(QColor arcColor READ arcColor WRITE setarcColor)
|
||||
mapPropertyFromModel(bool,isVolumeKnob,setVolumeKnob,m_volumeKnob);
|
||||
mapPropertyFromModel(float,volumeRatio,setVolumeRatio,m_volumeRatio);
|
||||
|
||||
Q_PROPERTY(knobTypes knobNum READ knobNum WRITE setknobNum)
|
||||
|
||||
void init( const QString & _name ); //!< to be called by ctors
|
||||
|
||||
public:
|
||||
knob( int _knob_num, QWidget * _parent = NULL, const QString & _name = QString() );
|
||||
knob( knobTypes _knob_num, QWidget * _parent = NULL, const QString & _name = QString() );
|
||||
knob( QWidget * _parent = NULL, const QString & _name = QString() ); //!< default ctor
|
||||
virtual ~knob();
|
||||
|
||||
// TODO: remove
|
||||
@@ -82,6 +91,9 @@ public:
|
||||
float outerRadius() const;
|
||||
void setOuterRadius( float _r );
|
||||
|
||||
knobTypes knobNum() const;
|
||||
void setknobNum( knobTypes _k );
|
||||
|
||||
QPointF centerPoint() const;
|
||||
float centerPointX() const;
|
||||
void setCenterPointX( float _c );
|
||||
@@ -93,6 +105,10 @@ public:
|
||||
|
||||
QColor outerColor() const;
|
||||
void setOuterColor( const QColor & _c );
|
||||
QColor lineColor() const;
|
||||
void setlineColor( const QColor & _c );
|
||||
QColor arcColor() const;
|
||||
void setarcColor( const QColor & _c );
|
||||
|
||||
|
||||
signals:
|
||||
@@ -146,7 +162,6 @@ private:
|
||||
|
||||
static textFloat * s_textFloat;
|
||||
|
||||
int m_knobNum;
|
||||
QString m_label;
|
||||
|
||||
QPixmap * m_knobPixmap;
|
||||
@@ -167,7 +182,11 @@ private:
|
||||
float m_innerRadius;
|
||||
float m_outerRadius;
|
||||
float m_lineWidth;
|
||||
QColor * m_outerColor;
|
||||
QColor m_outerColor;
|
||||
QColor m_lineColor; //!< unused yet
|
||||
QColor m_arcColor; //!< unused yet
|
||||
|
||||
knobTypes m_knobNum;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -55,17 +55,37 @@ textFloat * knob::s_textFloat = NULL;
|
||||
|
||||
|
||||
|
||||
knob::knob( int _knob_num, QWidget * _parent, const QString & _name ) :
|
||||
QWidget( _parent ),
|
||||
FloatModelView( new FloatModel( 0, 0, 0, 1, NULL, _name, true ), this ),
|
||||
m_knobNum( _knob_num ),
|
||||
m_label( "" ),
|
||||
m_knobPixmap( NULL ),
|
||||
m_volumeKnob( false ),
|
||||
m_volumeRatio( 100.0, 0.0, 1000000.0 ),
|
||||
m_buttonPressed( false ),
|
||||
m_angle( -10 ),
|
||||
m_outerColor( NULL )
|
||||
//! @todo: in C++11, we can use delegating ctors
|
||||
#define DEFAULT_KNOB_INITIALIZER_LIST \
|
||||
QWidget( _parent ), \
|
||||
FloatModelView( new FloatModel( 0, 0, 0, 1, NULL, _name, true ), this ), \
|
||||
m_label( "" ), \
|
||||
m_knobPixmap( NULL ), \
|
||||
m_volumeKnob( false ), \
|
||||
m_volumeRatio( 100.0, 0.0, 1000000.0 ), \
|
||||
m_buttonPressed( false ), \
|
||||
m_angle( -10 )
|
||||
|
||||
knob::knob( knobTypes _knob_num, QWidget * _parent, const QString & _name ) :
|
||||
DEFAULT_KNOB_INITIALIZER_LIST,
|
||||
m_knobNum( _knob_num )
|
||||
{
|
||||
init( _name );
|
||||
}
|
||||
|
||||
knob::knob( QWidget * _parent, const QString & _name ) :
|
||||
DEFAULT_KNOB_INITIALIZER_LIST,
|
||||
m_knobNum( knobBright_26 )
|
||||
{
|
||||
init( _name );
|
||||
}
|
||||
|
||||
#undef DEFAULT_KNOB_INITIALIZER_LIST
|
||||
|
||||
|
||||
|
||||
|
||||
void knob::init( const QString & _name )
|
||||
{
|
||||
if( s_textFloat == NULL )
|
||||
{
|
||||
@@ -162,6 +182,23 @@ void knob::setOuterRadius( float _r )
|
||||
|
||||
|
||||
|
||||
|
||||
knobTypes knob::knobNum() const
|
||||
{
|
||||
return m_knobNum;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void knob::setknobNum( knobTypes _k )
|
||||
{
|
||||
m_knobNum = _k;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
QPointF knob::centerPoint() const
|
||||
{
|
||||
return m_centerPoint;
|
||||
@@ -213,28 +250,42 @@ void knob::setLineWidth( float _w )
|
||||
|
||||
QColor knob::outerColor() const
|
||||
{
|
||||
if( m_outerColor )
|
||||
{
|
||||
return *m_outerColor;
|
||||
}
|
||||
else
|
||||
{
|
||||
return QColor();
|
||||
}
|
||||
return m_outerColor;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void knob::setOuterColor( const QColor & _c )
|
||||
{
|
||||
if( m_outerColor )
|
||||
{
|
||||
*m_outerColor = _c;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_outerColor = new QColor( _c );
|
||||
}
|
||||
m_outerColor = _c;
|
||||
}
|
||||
|
||||
|
||||
|
||||
QColor knob::lineColor() const
|
||||
{
|
||||
return m_lineColor;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void knob::setlineColor( const QColor & _c )
|
||||
{
|
||||
m_lineColor = _c;
|
||||
}
|
||||
|
||||
|
||||
|
||||
QColor knob::arcColor() const
|
||||
{
|
||||
return m_arcColor;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void knob::setarcColor( const QColor & _c )
|
||||
{
|
||||
m_arcColor = _c;
|
||||
}
|
||||
|
||||
|
||||
@@ -290,11 +341,11 @@ void knob::drawKnob( QPainter * _p )
|
||||
p.setRenderHint( QPainter::Antialiasing );
|
||||
|
||||
// Perhaps this can move to setOuterRadius()
|
||||
if( m_outerColor )
|
||||
if( m_outerColor.isValid() )
|
||||
{
|
||||
QRadialGradient gradient( centerPoint(), outerRadius() );
|
||||
gradient.setColorAt(0.4, _p->pen().brush().color() );
|
||||
gradient.setColorAt(1, *m_outerColor );
|
||||
gradient.setColorAt( 0.4, _p->pen().brush().color() );
|
||||
gradient.setColorAt( 1, m_outerColor );
|
||||
|
||||
p.setPen( QPen( gradient, lineWidth(),
|
||||
Qt::SolidLine, Qt::RoundCap ) );
|
||||
@@ -380,6 +431,8 @@ void knob::drawKnob( QPainter * _p )
|
||||
p.drawLine( calculateLine( mid, radius-2, 2 ) );
|
||||
break;
|
||||
}
|
||||
case knobStyled:
|
||||
break;
|
||||
}
|
||||
|
||||
p.drawArc( mid.x() - arcRectSize/2, 1, arcRectSize, arcRectSize, (90-centerAngle)*16, -16*(m_angle-centerAngle) );
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
|
||||
|
||||
TempoSyncKnob::TempoSyncKnob( int _knob_num, QWidget * _parent,
|
||||
TempoSyncKnob::TempoSyncKnob( knobTypes _knob_num, QWidget * _parent,
|
||||
const QString & _name ) :
|
||||
knob( _knob_num, _parent, _name ),
|
||||
m_tempoSyncIcon( embed::getIconPixmap( "tempo_sync" ) ),
|
||||
|
||||
Reference in New Issue
Block a user