undo: wrapped redo/undo functions to ensure prepare is called

This commit is contained in:
itsmattkc
2021-07-17 00:14:24 -07:00
parent 84e639606f
commit 52c5617159
29 changed files with 174 additions and 103 deletions
+3 -3
View File
@@ -927,7 +927,7 @@ void Node::InputArrayResize(const QString &id, int size, bool undoable)
if (undoable) {
Core::instance()->undo_stack()->push(c);
} else {
c->redo();
c->redo_now();
delete c;
}
}
@@ -2277,7 +2277,7 @@ void NodeSetPositionAndShiftSurroundingsCommand::redo()
if (commands_.isEmpty()) {
// Move first node
NodeSetPositionCommand* set_pos_command = new NodeSetPositionCommand(node_, relative_, position_, move_dependencies_);
set_pos_command->redo();
set_pos_command->redo_now();
commands_.append(set_pos_command);
// Get bounding rect
@@ -2308,7 +2308,7 @@ void NodeSetPositionAndShiftSurroundingsCommand::redo()
}
} else {
for (int i=0; i<commands_.size(); i++) {
commands_.at(i)->redo();
commands_.at(i)->redo_now();
}
}
}
+12 -3
View File
@@ -1009,6 +1009,7 @@ private:
virtual Project* GetRelevantProject() const override;
protected:
virtual void redo() override
{
node_->InputArrayInsert(input_, index_, false);
@@ -1035,6 +1036,9 @@ private:
size_(size)
{}
virtual Project* GetRelevantProject() const override;
protected:
virtual void redo() override
{
old_size_ = node_->InputArraySize(input_);
@@ -1067,8 +1071,6 @@ private:
node_->ArrayResizeInternal(input_, old_size_);
}
virtual Project* GetRelevantProject() const override;
private:
Node* node_;
QString input_;
@@ -1311,6 +1313,7 @@ public:
return node_->project();
}
protected:
virtual void redo() override;
virtual void undo() override;
@@ -1346,12 +1349,13 @@ public:
return node_->project();
}
protected:
virtual void redo() override;
virtual void undo() override
{
for (int i=commands_.size()-1; i>=0; i--) {
commands_.at(i)->undo();
commands_.at(i)->undo_now();
}
}
@@ -1392,6 +1396,7 @@ public:
return node_->project();
}
protected:
virtual void redo() override;
virtual void undo() override
@@ -1423,6 +1428,7 @@ public:
return parent_->project();
}
protected:
virtual void redo() override;
virtual void undo() override;
@@ -1447,6 +1453,7 @@ public:
return node_->project();
}
protected:
virtual void redo() override;
virtual void undo() override;
@@ -1474,6 +1481,7 @@ public:
return node_->project();
}
protected:
virtual void redo() override;
virtual void undo() override;
@@ -1502,6 +1510,7 @@ public:
return node_->project();
}
protected:
virtual void redo() override;
virtual void undo() override;
+2 -2
View File
@@ -141,14 +141,14 @@ void FolderAddChild::redo()
if (!position_command_) {
position_command_ = new NodeSetPositionAsChildCommand(child_, folder_, folder_->project()->root(), array_index, array_index+1, true);
}
position_command_->redo();
position_command_->redo_now();
}
}
void FolderAddChild::undo()
{
if (position_command_) {
position_command_->undo();
position_command_->undo_now();
}
Node::DisconnectEdge(child_, NodeInput(folder_, Folder::kChildInput, folder_->InputArraySize(Folder::kChildInput)-1));
+2
View File
@@ -135,6 +135,7 @@ public:
return folder_->project();
}
protected:
virtual void redo() override;
virtual void undo() override
@@ -209,6 +210,7 @@ public:
virtual Project * GetRelevantProject() const override;
protected:
virtual void redo() override;
virtual void undo() override;
+2 -2
View File
@@ -64,8 +64,8 @@ void Sequence::add_default_nodes(MultiUndoCommand* command)
command->add_child(video_track_command);
command->add_child(audio_track_command);
} else {
video_track_command->redo();
audio_track_command->redo();
video_track_command->redo_now();
audio_track_command->redo_now();
delete video_track_command;
delete audio_track_command;
}