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
+8 -6
View File
@@ -143,12 +143,13 @@ private:
public:
NodeViewAttachNodesToCursor(NodeView* view, const QVector<Node*>& nodes);
virtual Project * GetRelevantProject() const override;
protected:
virtual void redo() override;
virtual void undo() override;
virtual Project * GetRelevantProject() const override;
private:
NodeView* view_;
@@ -174,15 +175,16 @@ private:
new_prevent_removing_(prevent_removing)
{}
virtual void redo() override;
virtual void undo() override;
virtual Project * GetRelevantProject() const override
{
return node_->project();
}
protected:
virtual void redo() override;
virtual void undo() override;
private:
NodeView *view_;
Node *node_;
+2 -2
View File
@@ -43,7 +43,7 @@ void NodeEdgeAddCommand::redo()
remove_command_ = new NodeEdgeRemoveCommand(input_.GetConnectedOutput(), input_);
}
remove_command_->redo();
remove_command_->redo_now();
}
Node::ConnectEdge(output_, input_);
@@ -54,7 +54,7 @@ void NodeEdgeAddCommand::undo()
Node::DisconnectEdge(output_, input_);
if (remove_command_) {
remove_command_->undo();
remove_command_->undo_now();
}
}
+13 -4
View File
@@ -39,6 +39,7 @@ public:
virtual Project* GetRelevantProject() const override;
protected:
virtual void redo() override;
virtual void undo() override;
@@ -61,6 +62,7 @@ public:
virtual Project* GetRelevantProject() const override;
protected:
virtual void redo() override;
virtual void undo() override;
@@ -80,6 +82,7 @@ public:
virtual Project* GetRelevantProject() const override;
protected:
virtual void redo() override;
virtual void undo() override;
@@ -109,6 +112,7 @@ public:
return dynamic_cast<Project*>(graph_);
}
protected:
virtual void prepare() override;
virtual void redo() override
@@ -159,6 +163,7 @@ public:
}
}
protected:
virtual void prepare() override
{
command_ = new MultiUndoCommand();
@@ -194,12 +199,13 @@ public:
Node* dest,
bool include_connections);
virtual Project* GetRelevantProject() const override {return nullptr;}
protected:
virtual void redo() override;
virtual void undo() override {}
virtual Project* GetRelevantProject() const override {return nullptr;}
private:
const Node* src_;
@@ -223,6 +229,7 @@ public:
return a_->project();
}
protected:
virtual void redo() override
{
if (link_) {
@@ -263,6 +270,7 @@ public:
return node_->project();
}
protected:
virtual void redo() override
{
unlinked_ = node_->links();
@@ -319,12 +327,13 @@ public:
void AddNode(Node* node, const QString& new_name);
virtual Project * GetRelevantProject() const override;
protected:
virtual void redo() override;
virtual void undo() override;
virtual Project * GetRelevantProject() const override;
private:
QVector<Node*> nodes_;