Skip to content

Commit 8acc4ed

Browse files
authored
Fix Position Line gradient appearing in all editors no matter which one is playing (#7882)
1 parent 2c1d402 commit 8acc4ed

File tree

4 files changed

+10
-8
lines changed

4 files changed

+10
-8
lines changed

include/PositionLine.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828

2929
#include <QWidget>
3030

31+
#include "Song.h"
32+
3133
namespace lmms::gui
3234
{
3335

@@ -37,14 +39,16 @@ class PositionLine : public QWidget
3739
Q_PROPERTY(bool tailGradient MEMBER m_hasTailGradient)
3840
Q_PROPERTY(QColor lineColor MEMBER m_lineColor)
3941
public:
40-
PositionLine(QWidget* parent);
42+
PositionLine(QWidget* parent, Song::PlayMode playMode);
4143

4244
public slots:
4345
void zoomChange(float zoom);
4446

4547
private:
4648
void paintEvent(QPaintEvent* pe) override;
4749

50+
Song::PlayMode m_playMode;
51+
4852
bool m_hasTailGradient;
4953
QColor m_lineColor;
5054
};

src/gui/editors/PianoRoll.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ PianoRoll::PianoRoll() :
283283
this, SLOT( updatePosition( const lmms::TimePos& ) ) );
284284

285285
// white position line follows timeline marker
286-
m_positionLine = new PositionLine(this);
286+
m_positionLine = new PositionLine(this, Song::PlayMode::MidiClip);
287287

288288
//update timeline when in step-recording mode
289289
connect( &m_stepRecorderWidget, SIGNAL( positionChanged( const lmms::TimePos& ) ),

src/gui/editors/PositionLine.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,13 @@
2626

2727
#include <QPainter>
2828

29-
#include "Song.h"
30-
3129

3230
namespace lmms::gui
3331
{
3432

35-
PositionLine::PositionLine(QWidget* parent) :
33+
PositionLine::PositionLine(QWidget* parent, Song::PlayMode playMode) :
3634
QWidget(parent),
35+
m_playMode(playMode),
3736
m_hasTailGradient(false),
3837
m_lineColor(0, 0, 0, 0)
3938
{
@@ -64,8 +63,7 @@ void PositionLine::paintEvent(QPaintEvent* pe)
6463
// If gradient is enabled, we're in focus and we're playing, enable gradient
6564
if (m_hasTailGradient &&
6665
Engine::getSong()->isPlaying() &&
67-
(Engine::getSong()->playMode() == Song::PlayMode::Song ||
68-
Engine::getSong()->playMode() == Song::PlayMode::MidiClip))
66+
(Engine::getSong()->playMode() == m_playMode))
6967
{
7068
c.setAlpha(60);
7169
gradient.setColorAt(w, c);

src/gui/editors/SongEditor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ SongEditor::SongEditor( Song * song ) :
113113
// when tracks realign, adjust height of position line
114114
connect(this, &TrackContainerView::tracksRealigned, this, &SongEditor::updatePositionLine);
115115

116-
m_positionLine = new PositionLine(this);
116+
m_positionLine = new PositionLine(this, Song::PlayMode::Song);
117117
static_cast<QVBoxLayout *>( layout() )->insertWidget( 1, m_timeLine );
118118

119119
connect( m_song, SIGNAL(playbackStateChanged()),

0 commit comments

Comments
 (0)