diff --git a/dialogs/autocutsilencedialog.cpp b/dialogs/autocutsilencedialog.cpp index 4a877965f..66f6110ab 100644 --- a/dialogs/autocutsilencedialog.cpp +++ b/dialogs/autocutsilencedialog.cpp @@ -31,7 +31,7 @@ #include "panels/panels.h" #include "panels/timeline.h" -AutoCutSilenceDialog::AutoCutSilenceDialog(QWidget *parent, QVector clips) : +AutoCutSilenceDialog::AutoCutSilenceDialog(QWidget *parent, QVector clips) : QDialog(parent), clips_(clips) { @@ -119,10 +119,12 @@ void AutoCutSilenceDialog::accept() { } void AutoCutSilenceDialog::cut_silence() { + ComboAction* ca = new ComboAction(); + // Loop over clips provided to this dialog for (int j=0;jclips.at(clips_.at(j)).get(); // Check if this clip is an audio footage clip if (clip->track() >= 0 @@ -200,23 +202,14 @@ void AutoCutSilenceDialog::cut_silence() { } } - ComboAction* ca = new ComboAction(); - - // NO GOOD VERY BAD TEST CODE - int clip_index = -1; - for (int i=0;iclips.size();i++) { - if (olive::ActiveSequence->clips.at(i).get() == clip) { - clip_index = i; - break; - } - } - - Q_ASSERT(clip_index > -1); - - panel_timeline->split_clip_at_positions(ca, clip_index, split_positions); - olive::UndoStack.push(ca); + panel_timeline->split_clip_at_positions(ca, clips_.at(j), split_positions); } + } + if (ca->hasActions()) { + olive::UndoStack.push(ca); + } else { + delete ca; } } diff --git a/dialogs/autocutsilencedialog.h b/dialogs/autocutsilencedialog.h index 37fe57a61..3b379f5ae 100644 --- a/dialogs/autocutsilencedialog.h +++ b/dialogs/autocutsilencedialog.h @@ -31,7 +31,7 @@ class AutoCutSilenceDialog : public QDialog { Q_OBJECT public: - AutoCutSilenceDialog(QWidget* parent, QVector clips); + AutoCutSilenceDialog(QWidget* parent, QVector clips); public slots: virtual int exec() override; private slots: @@ -39,7 +39,7 @@ private slots: private: void cut_silence(); - QVector clips_; + QVector clips_; LabelSlider* attack_threshold; LabelSlider* release_threshold; diff --git a/global/global.cpp b/global/global.cpp index 4c1913df8..f91c6b91b 100644 --- a/global/global.cpp +++ b/global/global.cpp @@ -441,7 +441,7 @@ void OliveGlobal::open_speed_dialog() { void OliveGlobal::open_autocut_silence_dialog() { if (CheckForActiveSequence()) { - QVector selected_clips = olive::ActiveSequence->SelectedClips(); + QVector selected_clips = olive::ActiveSequence->SelectedClipIndexes(); if (selected_clips.isEmpty()) { QMessageBox::critical(olive::MainWindow,