TraceX
 
Loading...
Searching...
No Matches
nodeitem.h
Go to the documentation of this file.
1#ifndef NODEITEM_H
2#define NODEITEM_H
3
4#include "file.h"
5#include <QGraphicsObject>
6#include <QPen>
7#include <QPainter>
8#include "TypeFile.h"
9#include <QTimer>
10#include <QGraphicsSceneMouseEvent>
11#include <QGraphicsSceneHoverEvent>
12#include <QCursor>
13
14class NodeItem : public QGraphicsObject{
15 Q_OBJECT
16private:
17 File* file;
18 QString label;
19 TypeFile type;
20 QList<NodeItem*> parentNodes; // Liste des parents
21 QList<NodeItem*> filsNodes; // Liste des fils
22 bool isRed;
23 bool isBlinking;
24 QTimer* blinkTimer;
25
26public:
31 void addParent(NodeItem* parent);
32
37 QList<NodeItem*> getFils() const;
38
43 void addFils(NodeItem* fils);
44
49 bool hasFils() const;
50
55 QList<NodeItem*> getParents() const;
56
57 NodeItem(File* file, TypeFile type);
58
64
65 QRectF boundingRect() const override;
66
70 void makeBlinking();
71
72 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
73
78
83 File* getFile();
84
85 void ajouterTexteAInfobulle(const QString& nouveauTexte);
86
87 QStringList getExigences() const;
88
89protected:
90 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
91 QVariant itemChange(GraphicsItemChange change, const QVariant& value) override;
92 void hoverEnterEvent(QGraphicsSceneHoverEvent* event) override;
93 void hoverLeaveEvent(QGraphicsSceneHoverEvent* event) override;
94 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
95
96
97signals:
98 void positionChanged();
99 void nodeClicked(NodeItem* self);
100};
101
102#endif // NODEITEM_H
TypeFile
The TypeFile enum : énumération pour les types de fichiers réprésentés par les noeuds.
Definition TypeFile.h:7
Definition file.h:7
QStringList getExigences() const
Retourne les exigences associées au fichier de ce nœud sous forme de texte.
Definition nodeitem.cpp:328
void nodeClicked(NodeItem *self)
Definition moc_nodeitem.cpp:199
File * getFile()
getFile : récupérer le fichier représenté par le noeud
Definition nodeitem.cpp:221
QVariant itemChange(GraphicsItemChange change, const QVariant &value) override
Réagit aux changements d'état de l'élément graphique.
Definition nodeitem.cpp:109
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Gère le clic souris sur le nœud graphique.
Definition nodeitem.cpp:309
TypeFile getType()
getType : récupère le type de fichier que représente le noeud (Sss, Srs ou Sdd)
Definition nodeitem.cpp:244
QList< NodeItem * > getParents() const
getParents : récupérer les noeuds parents (l'attribut parentNodes)
Definition nodeitem.cpp:253
void makeBlinking()
makeBlinking : fait clignoter un noeud (le noeud sans fils) chaque 500ms
Definition nodeitem.cpp:147
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Dessine le nœud graphique sur la scène.
Definition nodeitem.cpp:186
QRectF boundingRect() const override
Retourne la zone occupée par le nœud dans la scène.
Definition nodeitem.cpp:164
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Gère le déplacement du nœud avec la souris.
Definition nodeitem.cpp:82
void updateBlinkingState()
updateBlinkingState : change le statut blinking chaque 500ms pour alterner les couleurs du noeud
Definition nodeitem.cpp:130
void addParent(NodeItem *parent)
addParent : attribuer un noeud parent (parent) à un noeud
Definition nodeitem.cpp:263
void ajouterTexteAInfobulle(const QString &nouveauTexte)
Definition nodeitem.cpp:227
NodeItem(File *file, TypeFile type)
Constructeur de la classe NodeItem.
Definition nodeitem.cpp:29
void positionChanged()
Definition moc_nodeitem.cpp:193
QList< NodeItem * > getFils() const
getFils : récupérer l'attribut filsNodes
Definition nodeitem.cpp:273
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override
Gère la sortie du curseur en dehors de la zone du nœud. Elle réinitialise le curseur à son état par d...
Definition nodeitem.cpp:66
bool hasFils() const
hasFils : vérifie si le noeud a des fils
Definition nodeitem.cpp:290
void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override
Gère l'entrée du curseur dans la zone du noeud (PointingHandCursor).
Definition nodeitem.cpp:53
void addFils(NodeItem *fils)
addFils : ajouter un fils au vecteur des fils (filsNodes)
Definition nodeitem.cpp:282