54 [[nodiscard]]
bool connectMode()
const {
return connectMode_; }
56 void select(
const QString& cluster,
const QString& node);
71 void keyPressEvent(QKeyEvent* event)
override;
72 void resizeEvent(QResizeEvent* event)
override;
76 void applyLinkVisibility();
77 void positionAddClusterButton();
78 void fitClustersInView();
79 void promptAddCluster();
80 void promptAddNode(
const QString& clusterName);
81 [[nodiscard]] QString uniqueClusterName()
const;
82 [[nodiscard]] QString uniqueNodeName()
const;
83 [[nodiscard]]
bool isNodeNameAvailable(
const QString& name,
84 const QString& exceptName = {})
const;
85 [[nodiscard]]
bool isClusterNameAvailable(
const QString& name,
86 const QString& exceptName = {})
const;
87 void startInlineRenameCluster(
const QString& cluster,
88 const QString& editText = {});
89 void startInlineRenameNode(
const QString& node,
const QString& editText = {});
90 void beginInlineRename(QGraphicsItem* parentItem,
91 const QRectF& localRect,
92 const QString& oldName,
93 std::function<
void()> onShow,
94 std::function<
void()> onHide,
95 std::function<
void(
const QString&)> onCommit,
96 const QString& editText = {});
98 void finishInlineRename(
bool accept,
bool viaEnter);
99 void cancelInlineRename();
101 [[nodiscard]] NodeItem* nodeItemAt(
const QPoint& viewPos)
const;
102 [[nodiscard]] ClusterItem* clusterItemAt(
const QPoint& viewPos)
const;
104 void clearConnectionSources();
105 void setSoleConnectionSource(
const QString& node);
106 void toggleConnectionSource(
const QString& node);
107 void setConnectionSourcesFromCluster(ClusterItem* cluster,
bool unionWith);
108 void refreshConnectionVisuals();
109 void syncDocumentSelectionFromSources();
110 void batchToggleToDestinations(
const QList<QString>& dests);
111 void handleConnectionLeftClick(QMouseEvent* event);
112 void handleConnectionRightClick(QMouseEvent* event);
115 QGraphicsScene* scene_ =
nullptr;
116 QToolButton* addClusterBtn_ =
nullptr;
117 QHash<QString, ClusterItem*> clusters_;
118 QHash<QString, NodeItem*> nodes_;
119 QList<LinkItem*> links_;
120 QList<ClusterLinkItem*> clusterLinks_;
121 bool connectMode_ =
false;
122 bool rebuilding_ =
false;
123 QSet<QString> connectionSources_;
124 QString connectionPrimary_;
125 QGraphicsProxyWidget* renameProxy_ =
nullptr;
126 std::function<void()> renameHideCb_;
127 std::function<void(
const QString&)> renameOnCommit_;
128 QString renameOldName_;
130 QString nodeCreateChainCluster_;
131 bool renameClosing_ =
false;
133 bool renameDeferReturnPressed_ =
false;
135 bool renameReturnWired_ =
false;
137 bool renameAbortRemovesNode_ =
false;
139 bool renameIsNode_ =
true;
Owns the root anpcpp::AnpNetwork, undo stack, file path, and dirty flag.
Definition document.hpp:71
Visual editor for clusters, nodes, and connections.
Definition network_canvas.hpp:31