From 9d9825d8e1b0e37f3b4995b992c998da89c16c73 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 19 Apr 2020 16:26:48 +1000 Subject: [PATCH] trackviewitem: receive signal when mute is changed from another source --- app/node/output/track/track.cpp | 6 ++++++ app/node/output/track/track.h | 7 +++++++ app/widget/timelinewidget/trackview/trackviewitem.cpp | 2 ++ 3 files changed, 15 insertions(+) diff --git a/app/node/output/track/track.cpp b/app/node/output/track/track.cpp index f838d9b12..3e8df213d 100644 --- a/app/node/output/track/track.cpp +++ b/app/node/output/track/track.cpp @@ -44,6 +44,7 @@ TrackOutput::TrackOutput() : muted_input_ = new NodeInput("muted_in", NodeParam::kBoolean); muted_input_->set_is_keyframable(false); + connect(muted_input_, &NodeInput::ValueChanged, this, &TrackOutput::MutedInputValueChanged); AddInput(muted_input_); // Set default height @@ -574,4 +575,9 @@ void TrackOutput::BlockLengthChanged() UpdateInOutFrom(index); } +void TrackOutput::MutedInputValueChanged() +{ + emit MutedChanged(IsMuted()); +} + OLIVE_NAMESPACE_EXIT diff --git a/app/node/output/track/track.h b/app/node/output/track/track.h index ffbf07c0f..9ff9df009 100644 --- a/app/node/output/track/track.h +++ b/app/node/output/track/track.h @@ -178,6 +178,11 @@ signals: */ void TrackHeightChanged(int height); + /** + * @brief Signal emitted when the muted setting changes + */ + void MutedChanged(bool e); + protected: private: @@ -214,6 +219,8 @@ private slots: void BlockLengthChanged(); + void MutedInputValueChanged(); + }; OLIVE_NAMESPACE_EXIT diff --git a/app/widget/timelinewidget/trackview/trackviewitem.cpp b/app/widget/timelinewidget/trackview/trackviewitem.cpp index b9e5da7d2..d841cbd86 100644 --- a/app/widget/timelinewidget/trackview/trackviewitem.cpp +++ b/app/widget/timelinewidget/trackview/trackviewitem.cpp @@ -60,6 +60,8 @@ TrackViewItem::TrackViewItem(TrackOutput* track, QWidget *parent) : layout->addWidget(lock_button_); setMinimumHeight(mute_button_->height()); + + connect(track, &TrackOutput::MutedChanged, mute_button_, &QPushButton::setChecked); } QPushButton *TrackViewItem::CreateMSLButton(const QString& text, const QColor& checked_color) const