YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
moduleitem.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: LGPL-2.1-or-later
4 */
5
6#ifndef MODULEITEM_H
7#define MODULEITEM_H
8
9
10#include <QObject>
11#include <QPainter>
12#include <QGraphicsPolygonItem>
13
14#include <QGraphicsItem>
15#include <QGraphicsSceneMouseEvent>
16
17#include "commons.h"
18#include "itemsignalhandler.h"
19#include "arrow.h"
20#include "builderitem.h"
22
23class PortItem;
25class Arrow;
26
27
28
29class ModuleItem : public BuilderItem
30{
31
32 friend class Arrow;
33 friend class PortItem;
34
35public:
36 // ModuleItem(QString itemName, QStringList inputPorts, QStringList outputPorts , BuilderItem * parent = 0);
37 ModuleItem(Module *module, int moduleId, bool nestedInApp = false, bool editingMode = false,
38 Manager *manager = NULL, BuilderItem * parent = 0);
40 QRectF boundingRect() const override;
41 QPointF connectionPoint() override;
42 int getId();
43 void setRunning(bool);
44 void setModuleSelected(bool selected);
45 int type() const override;
46 void updateGraphicModel();
47
48
50
51 QList <PortItem*> iPorts;
52 QList <PortItem*> oPorts;
53
54private:
55 void init();
56
57
58private:
59 Manager *manager;
60 bool externalSelection;
61 bool editingMode;
62 int moduleId;
63 Module *module;
64 QStringList inputPorts;
65 QStringList outputPorts;
66 bool running;
67
68
69
70
71protected:
72 void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0) override;
73 void mouseMoveEvent(QGraphicsSceneMouseEvent *e) override;
74 void mousePressEvent(QGraphicsSceneMouseEvent *e) override;
75 void mouseReleaseEvent(QGraphicsSceneMouseEvent *e) override;
76 QVariant itemChange(GraphicsItemChange change, const QVariant &value) override;
77
78 void portPressed(PortItem *port, QGraphicsSceneMouseEvent *e);
79 void portReleased(PortItem *port, QGraphicsSceneMouseEvent *e);
80 void portMoved(PortItem *port, QGraphicsSceneMouseEvent *e);
81
82signals:
83 //void moduleSelected(int);
84
85};
86
87class PortItem : public BuilderItem
88{
89 friend class Arrow;
90
91public:
93 //PortItem(QString portName, int type, BuilderItem *parent = 0);
94 PortItem(InputData*, BuilderItem *parent = 0);
95 PortItem(OutputData*, BuilderItem *parent = 0);
96 QRectF boundingRect() const override;
97 QPointF connectionPoint() override;
98 int type() const override;
99 int getPortType();
103
106protected:
107 void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0) override;
108 void hoverEnterEvent(QGraphicsSceneHoverEvent * event) override;
109 void hoverLeaveEvent(QGraphicsSceneHoverEvent * event) override;
110 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
111 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
112 void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
113 QVariant itemChange(GraphicsItemChange change, const QVariant &value) override;
114
115private:
116 PortStatus portAvailable;
117 BuilderItem *parent;
118 QPolygonF polygon;
119 int portType;
120 qreal triangleH;
121 bool hovered;
122};
123
124#endif // MODULEITEM_H
Definition arrow.h:106
friend class PortItem
Definition builderitem.h:30
bool nestedInApp
Definition builderitem.h:88
void portReleased(PortItem *port, QGraphicsSceneMouseEvent *e)
void setRunning(bool)
void portMoved(PortItem *port, QGraphicsSceneMouseEvent *e)
int type() const override
void setModuleSelected(bool selected)
void updateGraphicModel()
QList< PortItem * > oPorts
Definition moduleitem.h:52
QRectF boundingRect() const override
QVariant itemChange(GraphicsItemChange change, const QVariant &value) override
void mousePressEvent(QGraphicsSceneMouseEvent *e) override
void portPressed(PortItem *port, QGraphicsSceneMouseEvent *e)
void mouseMoveEvent(QGraphicsSceneMouseEvent *e) override
void mouseReleaseEvent(QGraphicsSceneMouseEvent *e) override
QPointF connectionPoint() override
QList< PortItem * > iPorts
Definition moduleitem.h:51
Module * getInnerModule()
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0) override
QPointF connectionPoint() override
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0) override
OutputData * outData
Definition moduleitem.h:104
InputData * getInputData()
QRectF boundingRect() const override
int getPortType()
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
InputData * inData
Definition moduleitem.h:105
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override
void setAvailable(PortStatus)
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
int type() const override
QVariant itemChange(GraphicsItemChange change, const QVariant &value) override
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
@ unavailable
Definition moduleitem.h:92
void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override
OutputData * getOutputData()
Class InputData.
Definition data.h:21
Class Manager.
Definition manager.h:20
Class Module.
Definition module.h:99