global: made every user action set a project "modified" state that will prevent

the main window from closing instantly
This commit is contained in:
itsmattkc
2020-03-03 14:33:45 +11:00
parent 0f5cd40c45
commit baf3fbde05
25 changed files with 377 additions and 238 deletions
+21 -15
View File
@@ -6,18 +6,20 @@
#include "node/graph.h"
#include "node/node.h"
#include "nodeviewitem.h"
#include "undo/undocommand.h"
/**
* @brief An undoable commnd for connecting two NodeParams together
*
* Can be considered a QUndoCommand wrapper for NodeParam::ConnectEdge()/
*/
class NodeEdgeAddCommand : public QUndoCommand {
class NodeEdgeAddCommand : public UndoCommand {
public:
NodeEdgeAddCommand(NodeOutput* output, NodeInput* input, QUndoCommand* parent = nullptr);
virtual void redo() override;
virtual void undo() override;
protected:
virtual void redo_internal() override;
virtual void undo_internal() override;
private:
NodeOutput* output_;
@@ -33,13 +35,14 @@ private:
*
* Can be considered a QUndoCommand wrapper for NodeParam::DisonnectEdge()/
*/
class NodeEdgeRemoveCommand : public QUndoCommand {
class NodeEdgeRemoveCommand : public UndoCommand {
public:
NodeEdgeRemoveCommand(NodeOutput* output, NodeInput* input, QUndoCommand* parent = nullptr);
NodeEdgeRemoveCommand(NodeEdgePtr edge, QUndoCommand* parent = nullptr);
virtual void redo() override;
virtual void undo() override;
protected:
virtual void redo_internal() override;
virtual void undo_internal() override;
private:
NodeOutput* output_;
@@ -48,12 +51,13 @@ private:
bool done_;
};
class NodeAddCommand : public QUndoCommand {
class NodeAddCommand : public UndoCommand {
public:
NodeAddCommand(NodeGraph* graph, Node* node, QUndoCommand* parent = nullptr);
virtual void redo() override;
virtual void undo() override;
protected:
virtual void redo_internal() override;
virtual void undo_internal() override;
private:
QObject memory_manager_;
@@ -62,14 +66,15 @@ private:
Node* node_;
};
class NodeRemoveCommand : public QUndoCommand {
class NodeRemoveCommand : public UndoCommand {
public:
NodeRemoveCommand(NodeGraph* graph,
const QList<Node*>& nodes,
QUndoCommand* parent = nullptr);
virtual void redo() override;
virtual void undo() override;
protected:
virtual void redo_internal() override;
virtual void undo_internal() override;
private:
QObject memory_manager_;
@@ -79,7 +84,7 @@ private:
QList<NodeEdgePtr> edges_;
};
class NodeRemoveWithExclusiveDeps : public QUndoCommand {
class NodeRemoveWithExclusiveDeps : public UndoCommand {
public:
NodeRemoveWithExclusiveDeps(NodeGraph* graph,
Node* node,
@@ -89,7 +94,7 @@ private:
NodeRemoveCommand* remove_command_;
};
class NodeCopyInputsCommand : public QUndoCommand {
class NodeCopyInputsCommand : public UndoCommand {
public:
NodeCopyInputsCommand(Node* src,
Node* dest,
@@ -100,7 +105,8 @@ public:
Node* dest,
QUndoCommand* parent = nullptr);
virtual void redo() override;
protected:
virtual void redo_internal() override;
private:
Node* src_;