rudimentary linking/unlinking added

This commit is contained in:
itsmattkc
2018-07-17 22:28:56 +01:00
parent 8b09ddb183
commit de46eb861b
9 changed files with 77 additions and 1 deletions
+30
View File
@@ -310,3 +310,33 @@ void TimelineAction::redo() {
done = true;
}
LinkCommand::LinkCommand() : link(true) {}
void LinkCommand::undo() {
for (int i=0;i<clips.size();i++) {
Clip* c = clips.at(i);
if (link) {
c->linked.clear();
} else {
c->linked = old_links.at(i);
}
}
}
void LinkCommand::redo() {
old_links.clear();
for (int i=0;i<clips.size();i++) {
Clip* c = clips.at(i);
if (link) {
for (int j=0;j<clips.size();j++) {
if (i != j) {
c->linked.append(j);
}
}
} else {
old_links.append(c->linked);
c->linked.clear();
}
}
}
+11
View File
@@ -59,4 +59,15 @@ private:
void offset_links(QVector<Clip*>& clips, int offset);
};
class LinkCommand : public QUndoCommand {
public:
LinkCommand();
void undo();
void redo();
QVector<Clip*> clips;
bool link;
private:
QVector< QVector<int> > old_links;
};
#endif // UNDO_H