From ce17d94b122711f04f64357466b35ddd7208727a Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 26 Jan 2020 13:37:47 +1100 Subject: [PATCH] timeline: don't show speed dialog if no blocks are selected Prevents segfault opening SpeedDurationDialog with an empty clip list. --- app/widget/timelinewidget/timelinewidget.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 4dc0062d7..528f9feeb 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -850,9 +850,12 @@ void TimelineWidget::ShowContextMenu() { Menu menu(this); - //QList selected = GetSelectedBlocks(); - QAction* speed_duration_action = menu.addAction(tr("Speed/Duration")); - connect(speed_duration_action, SIGNAL(triggered(bool)), this, SLOT(ShowSpeedDurationDialog())); + QList selected = GetSelectedBlocks(); + + if (!selected.isEmpty()) { + QAction* speed_duration_action = menu.addAction(tr("Speed/Duration")); + connect(speed_duration_action, SIGNAL(triggered(bool)), this, SLOT(ShowSpeedDurationDialog())); + } menu.exec(QCursor::pos()); } @@ -868,6 +871,11 @@ void TimelineWidget::ShowSpeedDurationDialog() } } + if (selected_clips.isEmpty()) { + // SpeedDurationDialog expects at least one clip + return; + } + SpeedDurationDialog speed_diag(timebase(), selected_clips, this); speed_diag.exec(); }