yet another ripple reworking

This commit is contained in:
itsmattkc
2018-12-31 00:49:01 +11:00
parent 8d8e00c629
commit 48ba5a9c95
4 changed files with 43 additions and 12 deletions
+1 -10
View File
@@ -145,16 +145,7 @@ void Timeline::next_cut() {
}
void ripple_clips(ComboAction* ca, Sequence *s, long point, long length, const QVector<int>& ignore) {
for (int i=0;i<s->clips.size();i++) {
if (!ignore.contains(i)) {
Clip* c = s->clips.at(i);
if (c != NULL) {
if (c->timeline_in >= point) {
move_clip(ca, c, length, length, 0, 0, true, true);
}
}
}
}
ca->append(new RippleAction(s, point, length, ignore));
}
void Timeline::toggle_show_all() {
+27
View File
@@ -1268,3 +1268,30 @@ void ReloadEffectsCommand::undo() {
void ReloadEffectsCommand::redo() {
panel_effect_controls->reload_clips();
}
RippleAction::RippleAction(Sequence *is, long ipoint, long ilength, const QVector<int> &iignore) :
s(is),
point(ipoint),
length(ilength),
ignore(iignore)
{}
void RippleAction::undo() {
ca->undo();
delete ca;
}
void RippleAction::redo() {
ca = new ComboAction();
for (int i=0;i<s->clips.size();i++) {
if (!ignore.contains(i)) {
Clip* c = s->clips.at(i);
if (c != NULL) {
if (c->timeline_in >= point) {
move_clip(ca, c, length, length, 0, 0, true, true);
}
}
}
}
ca->redo();
}
+13
View File
@@ -62,6 +62,19 @@ private:
bool old_project_changed;
};
class RippleAction : public QUndoCommand {
public:
RippleAction(Sequence *is, long ipoint, long ilength, const QVector<int>& iignore);
void undo();
void redo();
private:
Sequence *s;
long point;
long length;
QVector<int> ignore;
ComboAction* ca;
};
class DeleteClipAction : public QUndoCommand {
public:
DeleteClipAction(Sequence* s, int clip);
+2 -2
View File
@@ -146,13 +146,13 @@ void TimelineWidget::show_context_menu(const QPoint& pos) {
connect(pasteAction, SIGNAL(triggered(bool)), mainWindow, SLOT(paste()));
menu.addSeparator();
QAction* speedAction = menu.addAction("&Speed/Duration");
connect(speedAction, SIGNAL(triggered(bool)), mainWindow, SLOT(openSpeedDialog()));
connect(speedAction, SIGNAL(triggered(bool)), mainWindow, SLOT(open_speed_dialog()));
QAction* autoscaleAction = menu.addAction("Auto-s&cale");
autoscaleAction->setCheckable(true);
connect(autoscaleAction, SIGNAL(triggered(bool)), this, SLOT(toggle_autoscale()));
QAction* nestAction = menu.addAction("&Nest");
connect(nestAction, SIGNAL(triggered(bool)), mainWindow, SLOT(on_actionNest_triggered()));
connect(nestAction, SIGNAL(triggered(bool)), mainWindow, SLOT(nest()));
// stabilizer option
int video_clip_count = 0;