yet another ripple reworking
This commit is contained in:
+1
-10
@@ -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() {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user