Skui 0.0.1
Build fast and easy to use control software with Skui.
 
Loading...
Searching...
No Matches
node_graphicsitem.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <QFontMetrics>
4#include <QGraphicsItem>
5#include <QGraphicsObject>
6#include <QGraphicsSceneHoverEvent>
7#include <QGraphicsSceneMouseEvent>
8#include <QMargins>
9#include <QPainter>
10#include <QPen>
11#include <QPointF>
12
13#include "../../node/node.hpp"
14#include "pad.hpp"
15
16static const QMargins BOX_MARGIN(7, 7, 7, 7);
17static const QColor BOX_COLOR = QColorConstants::Svg::midnightblue;
18static const QColor BOX_COLOR_AT_SELECTION = Qt::red;
19static const QColor INNER_COLOR = QColorConstants::Svg::mistyrose;
20static const int BOX_WIDTH = 2;
21static const int FONT_SIZE = 15; // points
22//static const int PAD_SIZE = 5;
23static const int PAD_SPACING = 20;
24
25class NodeGraphicsItem : public QGraphicsObject
26{
27 Q_OBJECT
28
29public:
30 static const int Type = QGraphicsItem::UserType + 2;
31
32 explicit NodeGraphicsItem(QGraphicsItem *parent = nullptr, Node *node = nullptr);
33
34 void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) override;
35 QRectF boundingRect() const override;
36 int type() const override { return Type; }
37
45 inline Node *getNode() { return m_node; }
46
47private:
48 void onNodeObjectNameChanged(const QString &object_name);
49 void drawOuterFrame(QPainter *painter);
50 void createPads(QRect frame_geometry);
51
52 Node *m_node;
53 QRect m_frame_geometry;
54 QRect m_node_name_geometry;
55 QFont m_font;
56 QString m_object_name;
57 QList<QMetaObject::Connection> m_node_connections;
58};
int type() const override
Definition node_graphicsitem.hpp:36
NodeGraphicsItem(QGraphicsItem *parent=nullptr, Node *node=nullptr)
Definition node_graphicsitem.cpp:4
QRectF boundingRect() const override
Definition node_graphicsitem.cpp:117
Node * getNode()
Gets the node represented by the graphicsitem.
Definition node_graphicsitem.hpp:45
void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) override
Definition node_graphicsitem.cpp:82
static const int Type
Definition node_graphicsitem.hpp:30
Definition node.hpp:11