Code Documentation 3.6
Social Network Visualizer
Loading...
Searching...
No Matches
graphicsnode.h
Go to the documentation of this file.
1
15
16
17#ifndef GRAPHICSNODE_H
18#define GRAPHICSNODE_H
19
20
21#include <QGraphicsItem>
22#include <QObject>
23#include <QPen>
24#include <QPixmap>
25#include <QPolygon>
26
27class GraphicsWidget;
28class QGraphicsSceneMouseEvent;
29class GraphicsEdge;
32
33using namespace std;
34
35static const int TypeNode = QGraphicsItem::UserType+1;
36static const int ZValueNode = 100;
37static const int ZValueNodeHighlighted = 110;
38
39
40
47//
48
49class GraphicsNode : public QObject, public QGraphicsItem {
50 Q_OBJECT
51 Q_INTERFACES (QGraphicsItem)
52
53public:
54
56 const int &num,
57 const int &size,
58 const QString &color,
59 const QString &shape,
60 const QString &iconPath,
61 const bool &showNumbers,
62 const bool &numbersInside,
63 const QString &numberColor,
64 const int &numberSize,
65 const int &numDistance,
66 const bool &showLabels,
67 const QString &label,
68 const QString &labelColor,
69 const int &labelSize,
70 const int &labelDistance,
71 const bool &edgeHighlighting,
72 QPointF p
73 );
74
76
77 enum { Type = UserType + 1 };
78 int type() const { return Type; }
79
80 QRectF boundingRect() const;
81 QPainterPath shape() const;
82 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
83
84 int nodeNumber() {return m_num;}
85
86 void addInEdge( GraphicsEdge *edge ) ;
88 void addOutEdge( GraphicsEdge *edge ) ;
90
91 void setSize(const int &);
92 int size() const;
93
94 void setShape (const QString, const QString &iconPath=QString());
95 QString nodeShape() {return m_shape;}
96
97 void setColor(const QString &colorName);
98 void setColor(QColor color);
99 QString color ();
100
101 void addLabel();
103 void deleteLabel();
104 void setLabelVisibility(const bool &toggle);
105 void setLabelSize(const int &size);
106 void setLabelText ( const QString &label) ;
107 void setLabelColor (const QString &color) ;
108 QString labelText();
109 void setLabelDistance(const int &distance);
110
111 void addNumber () ;
113 void deleteNumber();
114 void setNumberVisibility(const bool &toggle);
115 void setNumberInside(const bool &toggle);
116 void setNumberSize(const int &size);
117 void setNumberDistance(const int &distance);
118 void setNumberColor(const QString &color);
119
120 void setEdgeHighLighting(const bool &toggle) ;
121
122
123protected:
124
125 QVariant itemChange(GraphicsItemChange change, const QVariant &value);
126// void mousePressEvent(QGraphicsSceneMouseEvent *event);
127// void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
128// void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
129// void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
130
131signals:
132
134
135
136private:
137
139 QPainterPath m_path;
140 QPointF newPos;
141 QPolygonF *m_poly_t;
142 int m_num;
150 QString m_numColor;
153 QColor m_colHover; // m_col.darker(120); rebuilt in setColor()
154 QPen m_penOutline; // QPen(m_col_outline, 0); built once in constructor
155 QPixmap m_pixmap; // loaded in setShape() for icon-based shapes
159 list<GraphicsEdge*> inEdgeList, outEdgeList;
162};
163
164#endif
Definition graphicsedge.h:51
void nodeClicked(GraphicsNode *)
void addInEdge(GraphicsEdge *edge)
Adds an inbound edge to this node.
Definition graphicsnode.cpp:568
QColor m_col_orig
Definition graphicsnode.h:151
void setLabelText(const QString &label)
Sets the label of this node.
Definition graphicsnode.cpp:656
QPainterPath shape() const
Returns the shape of the node as a path in local coordinates.
Definition graphicsnode.cpp:353
void addNumber()
Adds a graphics number to the node.
Definition graphicsnode.cpp:751
QString labelText()
Returns the label of the node.
Definition graphicsnode.cpp:673
GraphicsWidget * graphicsWidget
Definition graphicsnode.h:138
QString nodeShape()
Definition graphicsnode.h:95
void setEdgeHighLighting(const bool &toggle)
GraphicsNode::hoverEnterEvent on hover on node, it highlights all connected edges.
Definition graphicsnode.cpp:557
~GraphicsNode()
Definition graphicsnode.cpp:883
void setNumberColor(const QString &color)
GraphicsNode::setNumberColor.
Definition graphicsnode.cpp:848
void removeInEdge(GraphicsEdge *)
Removes the inbound edge from this node.
Definition graphicsnode.cpp:578
@ Type
Definition graphicsnode.h:77
void setLabelDistance(const int &distance)
Sets the distance of the label from the node.
Definition graphicsnode.cpp:736
int size() const
Returns the esoteric size of the node.
Definition graphicsnode.cpp:214
int m_labelSize
Definition graphicsnode.h:146
QVariant itemChange(GraphicsItemChange change, const QVariant &value)
Called when the node changes, i.e. moves, becomes disabled or changes its visibility Propagates the c...
Definition graphicsnode.cpp:452
QString m_iconPath
Definition graphicsnode.h:149
int m_labelDistance
Definition graphicsnode.h:148
int m_size_orig
Definition graphicsnode.h:143
GraphicsNodeLabel * label()
Returns the graphics label of the node.
Definition graphicsnode.cpp:629
bool m_edgeHighLighting
Definition graphicsnode.h:157
void removeOutEdge(GraphicsEdge *)
Removes an outbound edge from this node.
Definition graphicsnode.cpp:604
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
Does the actual painting using the QPainterPath created by the setShape().
Definition graphicsnode.cpp:381
void setLabelColor(const QString &color)
Sets the color of the node label.
Definition graphicsnode.cpp:682
void addLabel()
Creates a graphics label to this node.
Definition graphicsnode.cpp:616
int m_state
Definition graphicsnode.h:144
QString m_labelText
Definition graphicsnode.h:156
void setNumberVisibility(const bool &toggle)
Toggles the visibility of graphics node number.
Definition graphicsnode.cpp:787
QRectF boundingRect() const
Returns the bounding rectangle of the node.
Definition graphicsnode.cpp:365
QPolygonF * m_poly_t
Definition graphicsnode.h:141
QString m_shape
Definition graphicsnode.h:149
void deleteNumber()
Deletes the graphics node number.
Definition graphicsnode.cpp:774
QColor m_colHover
Definition graphicsnode.h:153
void setNumberDistance(const int &distance)
GraphicsNode::setNumberDistance.
Definition graphicsnode.cpp:865
GraphicsNodeNumber * number()
Returns the graphics node number.
Definition graphicsnode.cpp:766
int m_num
Definition graphicsnode.h:142
void setLabelSize(const int &size)
Sets the size of the node label.
Definition graphicsnode.cpp:721
void setNumberSize(const int &size)
GraphicsNode::setNumberSize.
Definition graphicsnode.cpp:829
bool m_hasNumber
Definition graphicsnode.h:157
int m_numSize
Definition graphicsnode.h:145
QColor m_col_outline
Definition graphicsnode.h:152
void setNumberInside(const bool &toggle)
Toggles displaying node number inside the node.
Definition graphicsnode.cpp:811
GraphicsNode(GraphicsWidget *gw, const int &num, const int &size, const QString &color, const QString &shape, const QString &iconPath, const bool &showNumbers, const bool &numbersInside, const QString &numberColor, const int &numberSize, const int &numDistance, const bool &showLabels, const QString &label, const QString &labelColor, const int &labelSize, const int &labelDistance, const bool &edgeHighlighting, QPointF p)
Constructs a new node object (which is a graphics item).
Definition graphicsnode.cpp:54
QString color()
Returns the node color in the format "#RRGGBB".
Definition graphicsnode.cpp:179
void setSize(const int &)
Changes the size of the node.
Definition graphicsnode.cpp:190
QString m_labelColor
Definition graphicsnode.h:156
void setShape(const QString, const QString &iconPath=QString())
Sets the shape of the node and prepares the corresponding QPainterPath m_path which will be drawn by ...
Definition graphicsnode.cpp:235
QPen m_penOutline
Definition graphicsnode.h:154
list< GraphicsEdge * > outEdgeList
Definition graphicsnode.h:159
GraphicsNodeNumber * m_number
Definition graphicsnode.h:161
QPointF newPos
Definition graphicsnode.h:140
int type() const
Definition graphicsnode.h:78
void setLabelVisibility(const bool &toggle)
Toggles the visibiity of the node label.
Definition graphicsnode.cpp:698
QPainterPath m_path
Definition graphicsnode.h:139
bool m_hasLabel
Definition graphicsnode.h:157
void setColor(const QString &colorName)
Changes the color of the node. The new color name can be in one of these formats:
Definition graphicsnode.cpp:147
QColor m_col
Definition graphicsnode.h:151
list< GraphicsEdge * > inEdgeList
Definition graphicsnode.h:159
GraphicsNodeLabel * m_label
Definition graphicsnode.h:160
void addOutEdge(GraphicsEdge *edge)
Adds a outbound edge to this node.
Definition graphicsnode.cpp:593
QString m_numColor
Definition graphicsnode.h:150
bool m_hasNumberInside
Definition graphicsnode.h:157
int nodeNumber()
Definition graphicsnode.h:84
void deleteLabel()
Deletes the graphics label of this node.
Definition graphicsnode.cpp:640
int m_numberDistance
Definition graphicsnode.h:147
int m_size
Definition graphicsnode.h:143
QPixmap m_pixmap
Definition graphicsnode.h:155
Definition graphicsnodelabel.h:26
Definition graphicsnodenumber.h:27
Definition graphicswidget.h:41
static const int TypeNode
Definition graphicsnode.h:35
static const int ZValueNodeHighlighted
Definition graphicsnode.h:37
static const int ZValueNode
Definition graphicsnode.h:36