improved autocut silence dialog

This commit is contained in:
itsmattkc
2019-03-26 12:13:32 +11:00
parent 5d5cd2d595
commit 3083e3920b
3 changed files with 13 additions and 20 deletions
+10 -17
View File
@@ -31,7 +31,7 @@
#include "panels/panels.h"
#include "panels/timeline.h"
AutoCutSilenceDialog::AutoCutSilenceDialog(QWidget *parent, QVector<Clip*> clips) :
AutoCutSilenceDialog::AutoCutSilenceDialog(QWidget *parent, QVector<int> 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;j<clips_.size();j++) {
Clip* clip = clips_.at(j);
Clip* clip = olive::ActiveSequence->clips.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;i<olive::ActiveSequence->clips.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;
}
}
+2 -2
View File
@@ -31,7 +31,7 @@ class AutoCutSilenceDialog : public QDialog
{
Q_OBJECT
public:
AutoCutSilenceDialog(QWidget* parent, QVector<Clip*> clips);
AutoCutSilenceDialog(QWidget* parent, QVector<int> clips);
public slots:
virtual int exec() override;
private slots:
@@ -39,7 +39,7 @@ private slots:
private:
void cut_silence();
QVector<Clip*> clips_;
QVector<int> clips_;
LabelSlider* attack_threshold;
LabelSlider* release_threshold;
+1 -1
View File
@@ -441,7 +441,7 @@ void OliveGlobal::open_speed_dialog() {
void OliveGlobal::open_autocut_silence_dialog() {
if (CheckForActiveSequence()) {
QVector<Clip*> selected_clips = olive::ActiveSequence->SelectedClips();
QVector<int> selected_clips = olive::ActiveSequence->SelectedClipIndexes();
if (selected_clips.isEmpty()) {
QMessageBox::critical(olive::MainWindow,