Maki
Formally verfied low-code orchestration
Loading...
Searching...
No Matches
library_scene.h
1#pragma once
2
3#include <QApplication>
4#include <QGraphicsItem>
5#include <QGraphicsScene>
6#include <QMouseEvent>
7
8#include "elements/draggable.h"
9
13class LibraryScene : public QGraphicsScene
14{
15 Q_OBJECT
16public:
22 LibraryScene(QObject* parent = nullptr);
23
29 QRectF visibleItemsBounds() const;
30
37 bool filterNodes(const QString& query);
38
43
47 void themeChanged();
48
49signals:
55 void libraryNodeSelected(const QString& nodeType);
56
57protected:
63 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
64
70 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
71
77 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
78
84 void contextMenuEvent(QGraphicsSceneContextMenuEvent* event) override;
85
86private:
87 QPointF mPressScenePos;
88 bool mPressed = false;
89 bool mDragging = false;
91
95 void clearSelectedNodes();
96};
A draggable item in a graphical scene.
Definition draggable.h:21
void themeChanged()
Handles theme change events.
Definition library_scene.cpp:168
bool mDragging
Flag indicating if mouse is currently pressed.
Definition library_scene.h:89
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Handles mouse press events in the scene.
Definition library_scene.cpp:18
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Handles mouse release events in the scene.
Definition library_scene.cpp:70
bool mPressed
Scene position where mouse was pressed.
Definition library_scene.h:88
bool filterNodes(const QString &query)
Filters nodes based on a query string.
Definition library_scene.cpp:110
LibraryScene(QObject *parent=nullptr)
Constructs a new LibraryScene object.
Definition library_scene.cpp:11
QRectF visibleItemsBounds() const
Returns the bounding rectangle of all visible items in the scene.
Definition library_scene.cpp:151
DraggableItem * mClickedItem
Flag indicating if dragging is in progress.
Definition library_scene.h:90
void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override
Handles context menu events in the scene.
Definition library_scene.cpp:93
void relayoutVisibleItems()
Relayouts the visible items in the scene.
Definition library_scene.cpp:134
void clearSelectedNodes()
Pointer to the item that was clicked.
Definition library_scene.cpp:98
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Handles mouse move events in the scene.
Definition library_scene.cpp:49
void libraryNodeSelected(const QString &nodeType)
Emitted when a library node is selected.