8#include <QGraphicsView>
19class QGraphicsProxyWidget;
43 [[nodiscard]]
bool connectMode()
const {
return connectMode_; }
45 void select(
const QString& cluster,
const QString& node);
58 void keyPressEvent(QKeyEvent* event)
override;
59 void resizeEvent(QResizeEvent* event)
override;
64 void positionAddClusterButton();
65 void promptAddCluster();
66 void promptAddNode(
const QString& clusterName);
67 [[nodiscard]] QString uniqueClusterName()
const;
68 [[nodiscard]] QString uniqueNodeName()
const;
69 void startInlineRenameCluster(
const QString& cluster);
70 void startInlineRenameNode(
const QString& node);
71 void beginInlineRename(QGraphicsItem* parentItem,
72 const QRectF& localRect,
73 const QString& oldName,
74 std::function<
void()> onShow,
75 std::function<
void()> onHide,
76 std::function<
void(
const QString&)> onCommit);
77 void cancelInlineRename();
78 NodeItem* nodeItemAt(
const QPoint& viewPos)
const;
81 QGraphicsScene* scene_ =
nullptr;
82 QToolButton* addClusterBtn_ =
nullptr;
83 QHash<QString, ClusterItem*> clusters_;
84 QHash<QString, NodeItem*> nodes_;
85 QList<LinkItem*> links_;
86 bool connectMode_ =
false;
88 QGraphicsProxyWidget* renameProxy_ =
nullptr;
89 std::function<void()> renameHideCb_;
90 bool renameClosing_ =
false;
Owns the root anpcpp::AnpNetwork, undo stack, file path, and dirty flag.
Definition document.hpp:23
Visual editor for clusters, nodes, and connections.
Definition network_canvas.hpp:29
void nodeActivated(const QString &name)
Emitted to open a node's subnetwork (e.g.
void rebuild()
Rebuilds scene items from the current network.
void setConnectMode(bool on)
Enables or disables click-to-connect link mode.
void contextMenuEvent(QContextMenuEvent *event) override
Shows context menu for add/connect operations.
NetworkCanvas(Document *doc, QWidget *parent=nullptr)
void select(const QString &cluster, const QString &node)
Highlights a cluster/node from Document selection.
bool connectMode() const
Definition network_canvas.hpp:43
void selectionChanged(const QString &cluster, const QString &node)
Emitted when the user selects a cluster or node on the canvas.
void mousePressEvent(QMouseEvent *event) override
Handles node selection and connect-mode clicks.