diff --git a/include/QtNodes/internal/BasicGraphicsScene.hpp b/include/QtNodes/internal/BasicGraphicsScene.hpp index 83424c5d..568835ff 100644 --- a/include/QtNodes/internal/BasicGraphicsScene.hpp +++ b/include/QtNodes/internal/BasicGraphicsScene.hpp @@ -59,6 +59,8 @@ class NODE_EDITOR_PUBLIC BasicGraphicsScene : public QGraphicsScene void setConnectionPainter(std::unique_ptr newPainter); + void setNodeGeometry(std::unique_ptr newGeom); + QUndoStack &undoStack(); public: @@ -139,17 +141,17 @@ class NODE_EDITOR_PUBLIC BasicGraphicsScene : public QGraphicsScene public Q_SLOTS: /// Slot called when the `connectionId` is erased form the AbstractGraphModel. - void onConnectionDeleted(ConnectionId const connectionId); + virtual void onConnectionDeleted(ConnectionId const connectionId); /// Slot called when the `connectionId` is created in the AbstractGraphModel. - void onConnectionCreated(ConnectionId const connectionId); - - void onNodeDeleted(NodeId const nodeId); - void onNodeCreated(NodeId const nodeId); - void onNodePositionUpdated(NodeId const nodeId); - void onNodeUpdated(NodeId const nodeId); - void onNodeClicked(NodeId const nodeId); - void onModelReset(); + virtual void onConnectionCreated(ConnectionId const connectionId); + + virtual void onNodeDeleted(NodeId const nodeId); + virtual void onNodeCreated(NodeId const nodeId); + virtual void onNodePositionUpdated(NodeId const nodeId); + virtual void onNodeUpdated(NodeId const nodeId); + virtual void onNodeClicked(NodeId const nodeId); + virtual void onModelReset(); private: AbstractGraphModel &_graphModel; diff --git a/include/QtNodes/internal/GraphicsView.hpp b/include/QtNodes/internal/GraphicsView.hpp index 52068129..f21c5879 100644 --- a/include/QtNodes/internal/GraphicsView.hpp +++ b/include/QtNodes/internal/GraphicsView.hpp @@ -50,13 +50,13 @@ public Q_SLOTS: void setupScale(double scale); - void onDeleteSelectedObjects(); + virtual void onDeleteSelectedObjects(); - void onDuplicateSelectedObjects(); + virtual void onDuplicateSelectedObjects(); - void onCopySelectedObjects(); + virtual void onCopySelectedObjects(); - void onPasteObjects(); + virtual void onPasteObjects(); Q_SIGNALS: void scaleChanged(double scale); diff --git a/src/BasicGraphicsScene.cpp b/src/BasicGraphicsScene.cpp index 7cec5ec4..84bf9a31 100644 --- a/src/BasicGraphicsScene.cpp +++ b/src/BasicGraphicsScene.cpp @@ -122,6 +122,11 @@ void BasicGraphicsScene::setConnectionPainter(std::unique_ptr newGeom) +{ + _nodeGeometry = std::move(newGeom); +} + QUndoStack &BasicGraphicsScene::undoStack() { return *_undoStack;