Make playhead red when recording (#7847)

Co-authored-by: Dalton Messmer <messmer.dalton@gmail.com>
Co-authored-by: Fawn <rubiefawn@gmail.com>
Co-authored-by: Andrew Wiltshire <AW1534@users.noreply.github.com>
This commit is contained in:
Andrew Wiltshire
2025-12-12 15:02:25 +00:00
committed by GitHub
parent f0cb32ff08
commit 8627616175
11 changed files with 64 additions and 11 deletions

View File

@@ -38,9 +38,14 @@ class PositionLine : public QWidget
Q_OBJECT
Q_PROPERTY(bool tailGradient MEMBER m_hasTailGradient)
Q_PROPERTY(QColor lineColor MEMBER m_lineColor)
Q_PROPERTY(QColor recordingColor MEMBER m_recordingColor)
public:
PositionLine(QWidget* parent, Song::PlayMode playMode);
bool isRecording() const { return m_isRecording; }
void setRecording(bool recording);
public slots:
void zoomChange(float zoom);
@@ -48,9 +53,11 @@ private:
void paintEvent(QPaintEvent* pe) override;
Song::PlayMode m_playMode;
bool m_isRecording = false;
bool m_hasTailGradient;
QColor m_lineColor;
QColor m_recordingColor;
};
} // namespace lmms::gui

View File

@@ -70,10 +70,13 @@ public:
void saveSettings( QDomDocument& doc, QDomElement& element ) override;
void loadSettings( const QDomElement& element ) override;
ComboBoxModel *snappingModel() const;
ComboBoxModel* snappingModel() const;
float getSnapSize() const;
QString getSnapSizeString() const;
TimeLineWidget* timeLine() const { return m_timeLine; }
PositionLine* positionLine() const { return m_positionLine; }
public slots:
void scrolled( int new_pos );
void selectRegionFromPixels(int xStart, int xEnd);
@@ -132,7 +135,8 @@ private:
LcdSpinBox * m_tempoSpinBox;
TimeLineWidget * m_timeLine;
TimeLineWidget* m_timeLine;
PositionLine* m_positionLine;
MeterDialog * m_timeSigDisplay;
AutomatableSlider * m_masterVolumeSlider;
@@ -141,7 +145,6 @@ private:
TextFloat * m_mvsStatus;
TextFloat * m_mpsStatus;
PositionLine * m_positionLine;
IntModel* m_zoomingModel;
ComboBoxModel* m_snappingModel;

View File

@@ -138,6 +138,7 @@ public:
return( m_pos );
}
static AutoScrollState defaultAutoScrollState();
AutoScrollState autoScroll() const { return m_autoScroll; }
void setAutoScroll(AutoScrollState state) { m_autoScroll = state; }
@@ -157,7 +158,11 @@ public:
m_ppb / TimePos::ticksPerBar() );
}
static AutoScrollState defaultAutoScrollState();
bool isRecording() const { return m_isRecording; }
void setRecording(bool recording) { m_isRecording = recording; }
bool isPlayheadVisible() const { return m_isPlayheadVisible; }
void setPlayheadVisible(bool visible) { m_isPlayheadVisible = visible; }
signals:
void positionChanged(const lmms::TimePos& postion);
@@ -195,6 +200,7 @@ private:
auto actionCursor(Action action) const -> QCursor;
QPixmap m_posMarkerPixmap = embed::getIconPixmap("playpos_marker");
QPixmap m_recordingPosMarkerPixmap = embed::getIconPixmap("recording_playpos_marker");
QColor m_inactiveLoopColor = QColor{52, 63, 53, 64};
QBrush m_inactiveLoopBrush = QColor{255, 255, 255, 32};
@@ -232,6 +238,9 @@ private:
std::array<TimePos, 2> m_oldLoopPos;
TimePos m_dragStartPos;
bool m_isRecording = false;
bool m_isPlayheadVisible = true;
TextFloat* m_hint = nullptr;
int m_initalXSelect;