From 5d59ecb69909415b1b45344c6260ebfcddeb18ea Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 10 Mar 2021 14:23:59 +1100 Subject: [PATCH] timeline: allow disabling waveforms --- app/widget/timelinewidget/timelinewidget.cpp | 12 ++++++++++++ app/widget/timelinewidget/timelinewidget.h | 2 ++ app/widget/timelinewidget/view/timelineview.cpp | 11 +++++++---- app/widget/timelinewidget/view/timelineview.h | 13 +++++++++++++ 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index df65828d5..25d01c502 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -952,6 +952,11 @@ void TimelineWidget::ShowContextMenu() toggle_audio_units->setChecked(use_audio_time_units_); connect(toggle_audio_units, &QAction::triggered, this, &TimelineWidget::SetUseAudioTimeUnits); + QAction* show_waveforms = menu.addAction(tr("Show Waveforms")); + show_waveforms->setCheckable(true); + show_waveforms->setChecked(views_.first()->view()->GetShowWaveforms()); + connect(show_waveforms, &QAction::triggered, this, &TimelineWidget::SetViewWaveformsEnabled); + menu.addSeparator(); QAction* properties_action = menu.addAction(tr("Properties")); @@ -1020,6 +1025,13 @@ void TimelineWidget::ToolChanged() HideSnaps(); } +void TimelineWidget::SetViewWaveformsEnabled(bool e) +{ + foreach (TimelineAndTrackView* tview, views_) { + tview->view()->SetShowWaveforms(e); + } +} + void TimelineWidget::AddGhost(TimelineViewGhostItem *ghost) { ghost_items_.append(ghost); diff --git a/app/widget/timelinewidget/timelinewidget.h b/app/widget/timelinewidget/timelinewidget.h index bc4990923..c43c3d438 100644 --- a/app/widget/timelinewidget/timelinewidget.h +++ b/app/widget/timelinewidget/timelinewidget.h @@ -345,6 +345,8 @@ private slots: void ToolChanged(); + void SetViewWaveformsEnabled(bool e); + }; } diff --git a/app/widget/timelinewidget/view/timelineview.cpp b/app/widget/timelinewidget/view/timelineview.cpp index f701ca7ee..04ef5006b 100644 --- a/app/widget/timelinewidget/view/timelineview.cpp +++ b/app/widget/timelinewidget/view/timelineview.cpp @@ -41,7 +41,8 @@ TimelineView::TimelineView(Qt::Alignment vertical_alignment, QWidget *parent) : selections_(nullptr), ghosts_(nullptr), show_beam_cursor_(false), - connected_track_list_(nullptr) + connected_track_list_(nullptr), + show_waveforms_(true) { Q_ASSERT(vertical_alignment == Qt::AlignTop || vertical_alignment == Qt::AlignBottom); setAlignment(Qt::AlignLeft | vertical_alignment); @@ -450,9 +451,11 @@ void TimelineView::DrawBlocks(QPainter *painter, bool foreground) painter->drawRect(r); // Draw waveform - QRect waveform_rect = r.adjusted(0, text_total_height, 0, 0).toRect(); - painter->setPen(shadow_color); - AudioVisualWaveform::DrawWaveform(painter, waveform_rect, this->GetScale(), track->waveform(), SceneToTime(block_left)); + if (show_waveforms_) { + QRect waveform_rect = r.adjusted(0, text_total_height, 0, 0).toRect(); + painter->setPen(shadow_color); + AudioVisualWaveform::DrawWaveform(painter, waveform_rect, this->GetScale(), track->waveform(), SceneToTime(block_left)); + } } } diff --git a/app/widget/timelinewidget/view/timelineview.h b/app/widget/timelinewidget/view/timelineview.h index ed554a364..9133a35a4 100644 --- a/app/widget/timelinewidget/view/timelineview.h +++ b/app/widget/timelinewidget/view/timelineview.h @@ -70,6 +70,17 @@ public: Block* GetItemAtScenePos(const rational& time, int track_index) const; + bool GetShowWaveforms() const + { + return show_waveforms_; + } + + void SetShowWaveforms(bool e) + { + show_waveforms_ = e; + viewport()->update(); + } + signals: void MousePressed(TimelineViewMouseEvent* event); void MouseMoved(TimelineViewMouseEvent* event); @@ -129,6 +140,8 @@ private: TrackList* connected_track_list_; + bool show_waveforms_; + }; }