Skip to content

Commit

Permalink
Merge pull request LMMS#2680 from michaelgregorius/knob-line-stylesheets
Browse files Browse the repository at this point in the history
Enables style sheets for knob line colors for all knob types
  • Loading branch information
michaelgregorius committed Mar 24, 2016
2 parents 97c7208 + c686306 commit 4e9de49
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 9 deletions.
5 changes: 2 additions & 3 deletions include/Track.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -640,7 +639,7 @@ class TrackView : public QWidget, public ModelView, public JournallingObject
return &m_trackOperationsWidget;
}

inline trackSettingsWidget * getTrackSettingsWidget()
inline QWidget * getTrackSettingsWidget()
{
return &m_trackSettingsWidget;
}
Expand Down Expand Up @@ -703,7 +702,7 @@ public slots:
TrackContainerView * m_trackContainerView;

TrackOperationsWidget m_trackOperationsWidget;
trackSettingsWidget m_trackSettingsWidget;
QWidget m_trackSettingsWidget;
TrackContentWidget m_trackContentWidget;

Actions m_action;
Expand Down
32 changes: 26 additions & 6 deletions src/gui/widgets/Knob.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand Down Expand Up @@ -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 );
Expand All @@ -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;
}
Expand Down

0 comments on commit 4e9de49

Please sign in to comment.