Merge pull request #2680 from michaelgregorius/knob-line-stylesheets

Enables style sheets for knob line colors for all knob types
This commit is contained in:
Michael Gregorius
2016-03-24 12:00:36 +01:00
2 changed files with 28 additions and 9 deletions

View File

@@ -54,7 +54,6 @@ class TrackContainerView;
class TrackContentWidget;
class TrackView;
typedef QWidget trackSettingsWidget;
const int DEFAULT_SETTINGS_WIDGET_WIDTH = 224;
const int TRACK_OP_WIDTH = 78;
@@ -640,7 +639,7 @@ public:
return &m_trackOperationsWidget;
}
inline trackSettingsWidget * getTrackSettingsWidget()
inline QWidget * getTrackSettingsWidget()
{
return &m_trackSettingsWidget;
}
@@ -703,7 +702,7 @@ private:
TrackContainerView * m_trackContainerView;
TrackOperationsWidget m_trackOperationsWidget;
trackSettingsWidget m_trackSettingsWidget;
QWidget m_trackSettingsWidget;
TrackContentWidget m_trackContentWidget;
Actions m_action;

View File

@@ -101,6 +101,28 @@ void Knob::initUi( const QString & _name )
setInnerRadius( 1.0f );
setOuterRadius( 10.0f );
setFocusPolicy( Qt::ClickFocus );
// This is a workaround to enable style sheets for knobs which are not styled knobs.
//
// It works as follows: the palette colors that are assigned as the line color previously
// had been hard coded in the drawKnob method for the different knob types. Now the
// drawKnob method uses the line color to draw the lines. By assigning the palette colors
// as the line colors here the knob lines will be drawn in this color unless the stylesheet
// overrides that color.
switch (knobNum())
{
case knobSmall_17:
case knobBright_26:
case knobDark_28:
setlineColor(QApplication::palette().color( QPalette::Active, QPalette::WindowText ));
break;
case knobVintage_32:
setlineColor(QApplication::palette().color( QPalette::Active, QPalette::Shadow ));
break;
default:
break;
}
doConnections();
}
@@ -428,20 +450,19 @@ void Knob::drawKnob( QPainter * _p )
{
case knobSmall_17:
{
p.setPen( QPen( QApplication::palette().color( QPalette::Active,
QPalette::WindowText ), 2 ) );
p.setPen( QPen( lineColor(), 2 ) );
p.drawLine( calculateLine( mid, radius-2 ) );
break;
}
case knobBright_26:
{
p.setPen( QPen( QApplication::palette().color( QPalette::Active, QPalette::WindowText ), 2 ) );
p.setPen( QPen( lineColor(), 2 ) );
p.drawLine( calculateLine( mid, radius-5 ) );
break;
}
case knobDark_28:
{
p.setPen( QPen( QApplication::palette().color( QPalette::Active, QPalette::WindowText ), 2 ) );
p.setPen( QPen( lineColor(), 2 ) );
const float rb = qMax<float>( ( radius - 10 ) / 3.0,
0.0 );
const float re = qMax<float>( ( radius - 4 ), 0.0 );
@@ -452,8 +473,7 @@ void Knob::drawKnob( QPainter * _p )
}
case knobVintage_32:
{
p.setPen( QPen( QApplication::palette().color( QPalette::Active,
QPalette::Shadow), 2 ) );
p.setPen( QPen( lineColor(), 2 ) );
p.drawLine( calculateLine( mid, radius-2, 2 ) );
break;
}