YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
builderitem.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 BUILDERITEM_H
7#define BUILDERITEM_H
8
9#include <QObject>
10#include <QAction>
11#include <QPainter>
12#include <QGraphicsPolygonItem>
13#include <QGraphicsScene>
14#include <QGraphicsItem>
15#include <QGraphicsSceneMouseEvent>
17
18#include "commons.h"
19
20using namespace yarp::manager;
21
22class PortItem;
24class Arrow;
25
26
27
28class BuilderItem : public QGraphicsObject
29{
30 friend class PortItem;
31 friend class Arrow;
32 friend class Label;
33
34public:
35
36 BuilderItem(QGraphicsObject * parent = 0) : QGraphicsObject(parent),
38 offset(QPointF(0,0)),
39 pressed(false),
40 moved(false),
42 allowInputs(false),
43 allowOutputs(false),
44 snap(false),
45 nestedInApp(false),
46 sigHandler(nullptr)
47 {}
48
49 QRectF boundingRect() const override = 0;
50 virtual QPointF connectionPoint() = 0;
51 int type() const override = 0;
52
53 QString getItemName();
54 QPointF getStartingPoint();
56 void removeArrow(Arrow *arrow);
57 void removeArrows();
58 void addArrow(Arrow *arrow);
59 QList<Arrow *>* getArrows();
60
61 bool arrowAlreadyPresent(BuilderItem *endItem);
62 void updateConnections();
65 void snapToGrid(bool snap);
66 QPointF computeTopLeftGridPoint(const QPointF &pointP);
67 QList<QAction*> getActions();
68 void setActions(QList<QAction*>);
69 bool isNestedInApp();
70
71
72protected:
73 QFont font;
75 QString itemName;
76
77 QRectF mainRect;
78 QRectF boundingR;
79
80 QPointF offset;
81
82 bool pressed;
83 bool moved;
87 bool snap;
89
91 QList<Arrow *> arrows;
92 QList<QAction*> actions;
93
95
96};
97
98#endif // BUILDERITEM_H
Definition arrow.h:106
ItemSignalHandler * sigHandler
Definition builderitem.h:90
void removeArrow(Arrow *arrow)
QPointF computeTopLeftGridPoint(const QPointF &pointP)
BuilderItem(QGraphicsObject *parent=0)
Definition builderitem.h:36
QRectF boundingRect() const override=0
bool arrowAlreadyPresent(BuilderItem *endItem)
QString itemName
Definition builderitem.h:75
QPointF offset
Definition builderitem.h:80
bool allowInputs
Definition builderitem.h:85
bool allowOutputs
Definition builderitem.h:86
QString getItemName()
void removeArrows()
QPointF getStartingPoint()
bool allowInputConnections()
void snapToGrid(bool snap)
QList< QAction * > getActions()
void addArrow(Arrow *arrow)
QList< Arrow * > * getArrows()
bool allowOutputConnections()
bool nestedInApp
Definition builderitem.h:88
ItemSignalHandler * signalHandler()
QRectF mainRect
Definition builderitem.h:77
QRectF boundingR
Definition builderitem.h:78
QList< Arrow * > arrows
Definition builderitem.h:91
bool creatingNewConnection
Definition builderitem.h:84
void updateConnections()
QPointF startingPoint
Definition builderitem.h:94
void setActions(QList< QAction * >)
virtual QPointF connectionPoint()=0
bool isNestedInApp()
ItemType itemType
Definition builderitem.h:74
QList< QAction * > actions
Definition builderitem.h:92
int type() const override=0
Definition arrow.h:74
ItemType
Definition commons.h:17
@ ModuleItemType
Definition commons.h:17