Maki
Formally verfied low-code orchestration
Toggle main menu visibility
Loading...
Searching...
No Matches
system_menu.h
1
#pragma once
2
3
#include <QList>
4
#include <QTreeWidget>
5
6
#include "result.h"
7
#include "test_and_set.h"
8
#include "types.h"
9
10
class
NodeItem
;
11
class
Flow
;
12
class
QTreeWidgetItem;
13
class
FlowSaveInfo
;
14
23
class
SystemMenu
:
public
QTreeWidget
24
{
25
Q_OBJECT
26
public
:
31
SystemMenu
(QWidget* parent);
32
39
VoidResult
onNodeAdded
(
const
QString& flowId,
NodeItem
* node,
const
Types::LibraryTypes canvasType);
40
48
VoidResult
onNodeRemoved
(
const
QString& flowId,
const
QString& nodeId,
const
QString& parentId);
49
56
VoidResult
onNodeModified
(
const
QString& flowId,
NodeItem
* node);
57
65
VoidResult
onNodeSelected
(
const
QString& flowId,
NodeItem
* node,
bool
selected);
66
73
VoidResult
onFlowAdded
(
Flow
* flow,
NodeItem
* node);
74
81
VoidResult
onFlowRemoved
(
const
QString& flowId,
const
QString& nodeId);
82
83
VoidResult onPipelineAdded(std::shared_ptr<const FlowSaveInfo> info);
84
VoidResult onPipelineRemoved(
const
QString&
id
);
85
86
signals:
92
void
nodeFocused
(
const
QString& flowId,
const
QString& nodeId);
93
99
void
nodeRemoved
(
const
QString& flowId,
const
QString& nodeId);
100
106
void
flowSelected
(
const
QString& flowId,
const
QString& nodeId);
107
113
void
flowRemoved
(
const
QString& flowId,
const
QString& nodeId);
114
120
void
flowRenamed
(
const
QString& flowId,
const
QString& nodeId);
121
122
void
editPipeline(
const
QString& pipelineId);
123
void
removePipeline(
const
QString& pipelineId);
124
125
private
slots:
130
void
showContextMenu
(
const
QPoint& pos);
131
137
void
onItemClicked
(QTreeWidgetItem* item,
int
/* column */
);
138
139
protected
:
140
void
resizeEvent(QResizeEvent* event)
override
;
141
142
private
:
147
enum
Roles
148
{
149
ToplevelRole
= 0,
150
Capabilities,
151
SubTasks,
152
Flows,
153
PipelineRoot,
154
Pipeline,
155
ComponentRole
,
156
FlowRole
,
157
NodeRole
,
158
PipelineRole
159
};
160
161
qreal mNameColumnRatio = 0.7;
162
TestAndSet<bool> mAdjustingColumns =
false
;
163
164
void
resizeColumns(
int
changedColumn = -1,
int
requestedWidth = -1);
165
171
VoidResult
addRootNode
(
NodeItem
* node);
172
178
VoidResult
addLeafNode
(
NodeItem
* node);
179
185
void
populateItem
(QTreeWidgetItem* item,
const
QIcon& icon,
const
QString& name,
const
QString& type,
const
QString& data,
const
Roles
role,
186
const
QString& canvas =
""
);
187
188
void
populateTaskItem(QTreeWidgetItem* item,
NodeItem
* node);
189
195
QTreeWidgetItem*
getItemById
(
const
QString&
id
)
const
;
196
197
QTreeWidgetItem* findParentItemByRole(
const
QString&
id
,
Roles
role)
const
;
198
QTreeWidgetItem* getOrCreateChildGroup(
const
QString& parentId,
Roles
role);
199
QTreeWidgetItem* getOrCreateGroup(
const
QString&
id
,
Roles
role, QTreeWidgetItem* parent);
200
201
void
removeGroupIfEmpty(QTreeWidgetItem* group);
202
207
QTreeWidgetItem*
systemFlows
();
208
213
QTreeWidgetItem*
componentFlows
();
214
219
void
editFlow
(QTreeWidgetItem* item);
220
225
void
removeFlow
(QTreeWidgetItem* item);
226
};
FlowSaveInfo
Represents the save information for a flow.
Definition
flow_info.h:15
Flow
Represents a flow in the system.
Definition
flow.h:17
NodeItem
Represents a graphical node item in a flowchart.
Definition
node.h:26
SystemMenu::editFlow
void editFlow(QTreeWidgetItem *item)
Starts editing the given flow item.
Definition
system_menu.cpp:504
SystemMenu::onFlowRemoved
VoidResult onFlowRemoved(const QString &flowId, const QString &nodeId)
Handles the removal of a flow from the menu.
Definition
system_menu.cpp:206
SystemMenu::onFlowAdded
VoidResult onFlowAdded(Flow *flow, NodeItem *node)
Handles the addition of a flow to the menu.
Definition
system_menu.cpp:164
SystemMenu::addRootNode
VoidResult addRootNode(NodeItem *node)
Adds a root node to the menu.
Definition
system_menu.cpp:293
SystemMenu::onItemClicked
void onItemClicked(QTreeWidgetItem *item, int)
Handles clicks on tree items.
Definition
system_menu.cpp:491
SystemMenu::systemFlows
QTreeWidgetItem * systemFlows()
Returns the root item containing system flows.
SystemMenu::onNodeModified
VoidResult onNodeModified(const QString &flowId, NodeItem *node)
Handles modifications to an existing node.
Definition
system_menu.cpp:148
SystemMenu::nodeFocused
void nodeFocused(const QString &flowId, const QString &nodeId)
Emitted when a node should be focused in the editor.
SystemMenu::removeFlow
void removeFlow(QTreeWidgetItem *item)
Removes the given flow item.
Definition
system_menu.cpp:525
SystemMenu::flowSelected
void flowSelected(const QString &flowId, const QString &nodeId)
Emitted when a flow is selected.
SystemMenu::componentFlows
QTreeWidgetItem * componentFlows()
Returns the root item containing component flows.
SystemMenu::populateItem
void populateItem(QTreeWidgetItem *item, const QIcon &icon, const QString &name, const QString &type, const QString &data, const Roles role, const QString &canvas="")
Populates a tree widget item using data from a node.
Definition
system_menu.cpp:269
SystemMenu::nodeRemoved
void nodeRemoved(const QString &flowId, const QString &nodeId)
Emitted when a node should be removed.
SystemMenu::onNodeAdded
VoidResult onNodeAdded(const QString &flowId, NodeItem *node, const Types::LibraryTypes canvasType)
Handles the addition of a node to a flow.
Definition
system_menu.cpp:58
SystemMenu::addLeafNode
VoidResult addLeafNode(NodeItem *node)
Adds a leaf node to the menu.
Definition
system_menu.cpp:305
SystemMenu::getItemById
QTreeWidgetItem * getItemById(const QString &id) const
Finds a tree item by its identifier.
Definition
system_menu.cpp:391
SystemMenu::onNodeSelected
VoidResult onNodeSelected(const QString &flowId, NodeItem *node, bool selected)
Handles selection state changes for a node.
Definition
system_menu.cpp:159
SystemMenu::SystemMenu
SystemMenu(QWidget *parent)
Constructs the system menu widget.
Definition
system_menu.cpp:24
SystemMenu::flowRenamed
void flowRenamed(const QString &flowId, const QString &nodeId)
Emitted when a flow should be renamed.
SystemMenu::Roles
Roles
Identifies the semantic role of a tree item.
Definition
system_menu.h:148
SystemMenu::NodeRole
@ NodeRole
Item represents a node within a flow.
Definition
system_menu.h:157
SystemMenu::FlowRole
@ FlowRole
Item represents a flow.
Definition
system_menu.h:156
SystemMenu::ToplevelRole
@ ToplevelRole
Item represents a top-level category node.
Definition
system_menu.h:149
SystemMenu::ComponentRole
@ ComponentRole
Item represents a component category or container.
Definition
system_menu.h:155
SystemMenu::PipelineRole
@ PipelineRole
Item represents a pipeline.
Definition
system_menu.h:158
SystemMenu::showContextMenu
void showContextMenu(const QPoint &pos)
Shows the context menu at the given position.
Definition
system_menu.cpp:453
SystemMenu::onNodeRemoved
VoidResult onNodeRemoved(const QString &flowId, const QString &nodeId, const QString &parentId)
Handles the removal of a node from a flow.
Definition
system_menu.cpp:102
SystemMenu::flowRemoved
void flowRemoved(const QString &flowId, const QString &nodeId)
Emitted when a flow should be removed.
Generated for
MAKI
· © 2026 with
Doxygen
1.9.8
GitHub
Research