From 0e6ebee82765b41a05a239cbdb8af5b92c53abf5 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sat, 23 Jul 2022 09:59:18 -0700 Subject: [PATCH] exportdialog/timeruler: disable marker and workarea editing Fixes #1979 --- app/dialog/export/export.cpp | 1 + app/widget/timeruler/seekablewidget.cpp | 13 ++++++++++--- app/widget/timeruler/seekablewidget.h | 5 +++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/dialog/export/export.cpp b/app/dialog/export/export.cpp index d47ff3eab..b512c3910 100644 --- a/app/dialog/export/export.cpp +++ b/app/dialog/export/export.cpp @@ -182,6 +182,7 @@ ExportDialog::ExportDialog(ViewerOutput *viewer_node, QWidget *parent) : QVBoxLayout* preview_layout = new QVBoxLayout(preview_area); preview_layout->addWidget(new QLabel(tr("Preview"))); preview_viewer_ = new ViewerWidget(); + preview_viewer_->ruler()->SetMarkerEditingEnabled(false); preview_viewer_->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); connect(preview_viewer_, &ViewerWidget::TimeChanged, video_tab_, &ExportVideoTab::SetTime); preview_layout->addWidget(preview_viewer_); diff --git a/app/widget/timeruler/seekablewidget.cpp b/app/widget/timeruler/seekablewidget.cpp index 27d9f4ddc..ebea9a18e 100644 --- a/app/widget/timeruler/seekablewidget.cpp +++ b/app/widget/timeruler/seekablewidget.cpp @@ -48,7 +48,8 @@ SeekableWidget::SeekableWidget(QWidget* parent) : selection_manager_(this), resize_item_(nullptr), marker_top_(0), - marker_bottom_(0) + marker_bottom_(0), + marker_editing_enabled_(true) { QFontMetrics fm = fontMetrics(); @@ -172,6 +173,8 @@ bool SeekableWidget::PasteMarkers() void SeekableWidget::mousePressEvent(QMouseEvent *event) { + TimelineMarker *initial; + if (resize_item_) { // Handle selection, even though we won't be using it for dragging if (!(event->modifiers() & Qt::ShiftModifier)) { @@ -182,7 +185,7 @@ void SeekableWidget::mousePressEvent(QMouseEvent *event) } dragging_ = true; resize_start_ = mapToScene(event->pos()); - } else if (TimelineMarker *initial = selection_manager_.MousePress(event)) { + } else if (marker_editing_enabled_ && (initial = selection_manager_.MousePress(event))) { selection_manager_.DragStart(initial, event); } else if (!selection_manager_.GetObjectAtPoint(event->pos()) && event->button() == Qt::LeftButton) { SeekToScenePoint(mapToScene(event->pos()).x()); @@ -430,7 +433,7 @@ int SeekableWidget::GetRightLimit() const bool SeekableWidget::ShowContextMenu(const QPoint &p) { - if (selection_manager_.GetObjectAtPoint(p) && !selection_manager_.GetSelectedObjects().empty()) { + if (marker_editing_enabled_ && selection_manager_.GetObjectAtPoint(p) && !selection_manager_.GetSelectedObjects().empty()) { // Show marker-specific menu Menu m; @@ -457,6 +460,10 @@ bool SeekableWidget::ShowContextMenu(const QPoint &p) bool SeekableWidget::FindResizeHandle(QMouseEvent *event) { + if (!marker_editing_enabled_) { + return false; + } + resize_item_ = nullptr; resize_mode_ = kResizeNone; diff --git a/app/widget/timeruler/seekablewidget.h b/app/widget/timeruler/seekablewidget.h index 6e16592f5..fadf13492 100644 --- a/app/widget/timeruler/seekablewidget.h +++ b/app/widget/timeruler/seekablewidget.h @@ -52,6 +52,9 @@ public: return dragging_; } + bool IsMarkerEditingEnabled() const { return marker_editing_enabled_; } + void SetMarkerEditingEnabled(bool e) { marker_editing_enabled_ = e; } + void DeleteSelected(); bool CopySelected(bool cut); @@ -143,6 +146,8 @@ private: int marker_top_; int marker_bottom_; + bool marker_editing_enabled_; + private slots: void SetMarkerColor(int c);