From 3cea1514203a451c0a8806d276807863b463a78f Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sat, 17 Mar 2018 19:01:02 -0400 Subject: added saving, style application, and copy and paste --- src/gui/undocommands.h | 63 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 46 insertions(+), 17 deletions(-) (limited to 'src/gui/undocommands.h') diff --git a/src/gui/undocommands.h b/src/gui/undocommands.h index eea39ae..354e455 100644 --- a/src/gui/undocommands.h +++ b/src/gui/undocommands.h @@ -14,7 +14,17 @@ #include -class MoveCommand : public QUndoCommand +class GraphUpdateCommand : public QUndoCommand { +public: + explicit GraphUpdateCommand(TikzScene *scene, + QUndoCommand *parent = 0); + void undo() override; + void redo() override; +protected: + TikzScene *_scene; +}; + +class MoveCommand : public GraphUpdateCommand { public: explicit MoveCommand(TikzScene *scene, @@ -24,21 +34,20 @@ public: void undo() override; void redo() override; private: - TikzScene *_scene; QMap _oldNodePositions; QMap _newNodePositions; }; -class EdgeBendCommand : public QUndoCommand +class EdgeBendCommand : public GraphUpdateCommand { public: explicit EdgeBendCommand(TikzScene *scene, Edge *edge, float oldWeight, int oldBend, - int oldInAngle, int oldOutAngle); + int oldInAngle, int oldOutAngle, + QUndoCommand *parent = 0); void undo() override; void redo() override; private: - TikzScene *_scene; Edge *_edge; float _oldWeight; int _oldBend; @@ -50,55 +59,75 @@ private: int _newOutAngle; }; -class DeleteCommand : public QUndoCommand +class DeleteCommand : public GraphUpdateCommand { public: explicit DeleteCommand(TikzScene *scene, QMap deleteNodes, QMap deleteEdges, - QSet selEdges); + QSet selEdges, + QUndoCommand *parent = 0); void undo() override; void redo() override; private: - TikzScene *_scene; QMap _deleteNodes; QMap _deleteEdges; QSet _selEdges; }; -class AddNodeCommand : public QUndoCommand +class AddNodeCommand : public GraphUpdateCommand { public: - explicit AddNodeCommand(TikzScene *scene, Node *node, QRectF newBounds); + explicit AddNodeCommand(TikzScene *scene, Node *node, QRectF newBounds, + QUndoCommand *parent = 0); void undo() override; void redo() override; private: - TikzScene *_scene; Node *_node; QRectF _oldBounds; QRectF _newBounds; }; -class AddEdgeCommand : public QUndoCommand +class AddEdgeCommand : public GraphUpdateCommand { public: - explicit AddEdgeCommand(TikzScene *scene, Edge *edge); + explicit AddEdgeCommand(TikzScene *scene, Edge *edge, QUndoCommand *parent = 0); void undo() override; void redo() override; private: - TikzScene *_scene; Edge *_edge; }; -class ChangeEdgeModeCommand : public QUndoCommand +class ChangeEdgeModeCommand : public GraphUpdateCommand { public: - explicit ChangeEdgeModeCommand(TikzScene *scene, Edge *edge); + explicit ChangeEdgeModeCommand(TikzScene *scene, Edge *edge, QUndoCommand *parent = 0); void undo() override; void redo() override; private: - TikzScene *_scene; Edge *_edge; }; +class ApplyStyleToNodesCommand : public GraphUpdateCommand +{ +public: + explicit ApplyStyleToNodesCommand(TikzScene *scene, QString style, QUndoCommand *parent = 0); + void undo() override; + void redo() override; +private: + QString _style; + QMap _oldStyles; +}; + +class PasteCommand : public GraphUpdateCommand +{ +public: + explicit PasteCommand(TikzScene *scene, Graph *graph, QUndoCommand *parent = 0); + void undo() override; + void redo() override; +private: + Graph *_graph; + QList _oldSelection; +}; + #endif // UNDOCOMMANDS_H -- cgit v1.2.3