TraceX
 
Loading...
Searching...
No Matches
NodeItem Class Reference

#include <nodeitem.h>

Inheritance diagram for NodeItem:
Collaboration diagram for NodeItem:

Signals

void positionChanged ()
 
void nodeClicked (NodeItem *self)
 

Public Member Functions

void addParent (NodeItem *parent)
 addParent : attribuer un noeud parent (parent) à un noeud
 
QList< NodeItem * > getFils () const
 getFils : récupérer l'attribut filsNodes
 
void addFils (NodeItem *fils)
 addFils : ajouter un fils au vecteur des fils (filsNodes)
 
bool hasFils () const
 hasFils : vérifie si le noeud a des fils
 
QList< NodeItem * > getParents () const
 getParents : récupérer les noeuds parents (l'attribut parentNodes)
 
 NodeItem (File *file, TypeFile type)
 Constructeur de la classe NodeItem.
 
TypeFile getType ()
 getType : récupère le type de fichier que représente le noeud (Sss, Srs ou Sdd)
 
QRectF boundingRect () const override
 Retourne la zone occupée par le nœud dans la scène.
 
void makeBlinking ()
 makeBlinking : fait clignoter un noeud (le noeud sans fils) chaque 500ms
 
void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
 Dessine le nœud graphique sur la scène.
 
void updateBlinkingState ()
 updateBlinkingState : change le statut blinking chaque 500ms pour alterner les couleurs du noeud
 
FilegetFile ()
 getFile : récupérer le fichier représenté par le noeud
 
void ajouterTexteAInfobulle (const QString &nouveauTexte)
 
QStringList getExigences () const
 Retourne les exigences associées au fichier de ce nœud sous forme de texte.
 

Protected Member Functions

void mouseMoveEvent (QGraphicsSceneMouseEvent *event) override
 Gère le déplacement du nœud avec la souris.
 
QVariant itemChange (GraphicsItemChange change, const QVariant &value) override
 Réagit aux changements d'état de l'élément graphique.
 
void hoverEnterEvent (QGraphicsSceneHoverEvent *event) override
 Gère l'entrée du curseur dans la zone du noeud (PointingHandCursor).
 
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éfaut (Arrow)
 
void mousePressEvent (QGraphicsSceneMouseEvent *event) override
 Gère le clic souris sur le nœud graphique.
 

Constructor & Destructor Documentation

◆ NodeItem()

NodeItem::NodeItem ( File * file,
TypeFile type )

Constructeur de la classe NodeItem.

Initialise un nœud graphique représentant un fichier donné, avec son type (par exemple SSS, SRS, ou SDD). Le nœud est rendu interactif (déplaçable, sélectionnable) et peut clignoter en rouge en fonction de son état.

Parameters
filePointeur vers l'objet File associé au nœud.
typeLe type de fichier (défini par l'énumération TypeFile).

Ce constructeur :

  • Initialise le label avec le nom du fichier.
  • Configure les flags d'interaction graphique.
  • Prépare un QTimer pour gérer le clignotement.
  • Associe une infobulle contenant le nom du fichier.
Author
malek
Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ addFils()

void NodeItem::addFils ( NodeItem * fils)

addFils : ajouter un fils au vecteur des fils (filsNodes)

Ajoute un nœud fils à ce nœud.

Parameters
fils: le noeud à ajouter dans le vecteur des fils
filsLe nœud à ajouter comme fils.
Author
malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addParent()

void NodeItem::addParent ( NodeItem * parent)

addParent : attribuer un noeud parent (parent) à un noeud

Ajoute un nœud parent à ce nœud.

Parameters
parent: le noeud parent
parentLe nœud à ajouter comme parent.
Author
malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ajouterTexteAInfobulle()

void NodeItem::ajouterTexteAInfobulle ( const QString & nouveauTexte)

◆ boundingRect()

QRectF NodeItem::boundingRect ( ) const
override

Retourne la zone occupée par le nœud dans la scène.

Cette méthode définit une zone fixe autour du centre de l'élément, ici un petit rectangle de 20x20 pixels positionné à (-50, -30) par rapport au centre.

Returns
QRectF La zone rectangulaire de l'élément.
Author
malek
Here is the caller graph for this function:

◆ getExigences()

QStringList NodeItem::getExigences ( ) const

Retourne les exigences associées au fichier de ce nœud sous forme de texte.

Cette méthode effectue un "dynamic_cast" du fichier ("File*") vers son type réel ("Sss", "Srs", ou "Sdd") afin d’accéder à la méthode "getExigence()" de la classe dérivée. Chaque exigence est convertie en "QString" à partir de son "toString()". Si le fichier est nul, ou que le type est inconnu, des messages par défaut sont renvoyés.

Returns
Une "QStringList" contenant les descriptions des exigences.
Author
Jacques Zheng
Date
02/05/2025

◆ getFile()

File * NodeItem::getFile ( )

getFile : récupérer le fichier représenté par le noeud

Retourne le pointeur vers le fichier associé au nœud.

Returns
un pointeur sur File (fichier représenté par le noeud)
File* Le pointeur vers l'objet "File" associé au nœud.
Author
malek
Here is the caller graph for this function:

◆ getFils()

QList< NodeItem * > NodeItem::getFils ( ) const

getFils : récupérer l'attribut filsNodes

Retourne la liste des nœuds fils associés à ce nœud.

Returns
un vecteur de pointeur sur NodeItem (le vecteur filsNodes)
QList<NodeItem*> La liste des nœuds fils associés à ce nœud.
Author
malek

◆ getParents()

QList< NodeItem * > NodeItem::getParents ( ) const

getParents : récupérer les noeuds parents (l'attribut parentNodes)

Retourne la liste des nœuds parents associés à ce nœud.

Returns
un vecteur de pointeur sur NodeItem (le vecteur parentNodes)
QList<NodeItem*> La liste des nœuds parents associés à ce nœud.
Author
malek

◆ getType()

TypeFile NodeItem::getType ( )

getType : récupère le type de fichier que représente le noeud (Sss, Srs ou Sdd)

Retourne le type de fichier associé au nœud.

Returns
l'attribut type
TypeFile Le type de fichier associé au nœud.
Author
malek

◆ hasFils()

bool NodeItem::hasFils ( ) const

hasFils : vérifie si le noeud a des fils

Vérifie si ce nœud a des nœuds fils.

Returns
vrai si l'attribut (filsNodes) n'est pas vide, faux sinon
true Si ce nœud a des nœuds fils, false sinon
Author
malek

◆ hoverEnterEvent()

void NodeItem::hoverEnterEvent ( QGraphicsSceneHoverEvent * event)
overrideprotected

Gère l'entrée du curseur dans la zone du noeud (PointingHandCursor).

Parameters
eventL'événement de survol déclenché par Qt.
Author
Maxime Huang
Date
12/04/25

◆ hoverLeaveEvent()

void NodeItem::hoverLeaveEvent ( QGraphicsSceneHoverEvent * event)
overrideprotected

Gère la sortie du curseur en dehors de la zone du nœud. Elle réinitialise le curseur à son état par défaut (Arrow)

Parameters
eventL'événement de survol déclenché par Qt.
Author
Maxime Huang
Date
12/04/25

◆ itemChange()

QVariant NodeItem::itemChange ( GraphicsItemChange change,
const QVariant & value )
overrideprotected

Réagit aux changements d'état de l'élément graphique.

Cette méthode est appelée par Qt à chaque changement de propriété important (comme la position, la sélection, etc.). Ici, on intercepte le changement de position ("ItemPositionChange") pour :

  • émettre le signal "positionChanged()" (utile pour mettre à jour les liens),
  • redessiner les nœuds parents et fils afin que leurs arêtes soient bien ajustées.
Parameters
changeType de changement détecté.
valueNouvelle valeur associée au changement.
Returns
QVariant La valeur à appliquer (identique à celle reçue ici).
Here is the call graph for this function:

◆ makeBlinking()

void NodeItem::makeBlinking ( )

makeBlinking : fait clignoter un noeud (le noeud sans fils) chaque 500ms

Active le clignotement du nœud.

Si le nœud ne clignote pas encore, cette méthode :

  • active l'état de clignotement ("isBlinking"),
  • force la couleur initiale à rouge ("isRed = true"),
  • démarre un "QTimer" avec un intervalle de 500 ms pour alterner la couleur.
Author
malek

◆ mouseMoveEvent()

void NodeItem::mouseMoveEvent ( QGraphicsSceneMouseEvent * event)
overrideprotected

Gère le déplacement du nœud avec la souris.

Cette méthode est appelée automatiquement lorsqu'un utilisateur déplace le nœud à la souris. Elle émet un signal "positionChanged()" pour notifier d'autres objets (les aretes) et force la mise à jour des nœuds connectés (parents et fils) afin de redessiner correctement les liens (aretes).

Parameters
eventÉvénement de souris déclenché par le déplacement.
Author
malek
Here is the call graph for this function:

◆ mousePressEvent()

void NodeItem::mousePressEvent ( QGraphicsSceneMouseEvent * event)
overrideprotected

Gère le clic souris sur le nœud graphique.

Cette méthode est appelée automatiquement lorsqu’un utilisateur clique sur un objet "NodeItem" dans la scène graphique. Elle émet un signal "nodeClicked(this)" pour permettre à l’interface (MainWindow) d’afficher les exigences associées au nœud.

Parameters
eventL’événement de clic détecté par Qt.
Author
Jacques Zheng
Date
02/05/2025
Here is the call graph for this function:

◆ nodeClicked

void NodeItem::nodeClicked ( NodeItem * self)
signal
Here is the call graph for this function:
Here is the caller graph for this function:

◆ paint()

void NodeItem::paint ( QPainter * painter,
const QStyleOptionGraphicsItem * option,
QWidget * widget )
override

Dessine le nœud graphique sur la scène.

Cette méthode est responsable du dessin du nœud sur la scène. Elle définit d'abord la couleur du nœud en fonction de son état de clignotement et de son type de fichier. Ensuite, elle dessine un cercle représentant le nœud à la position et la taille spécifiées par "boundingRect()".

  • Si le nœud clignote, il est dessiné en rouge.
  • Si le nœud ne clignote pas, il est dessiné dans une couleur spécifique en fonction de son type :
    • "TypeFile::sss" : bleu
    • "TypeFile::srs" : vert
    • "TypeFile::sdd" : jaune
Parameters
painterL'objet utilisé pour dessiner sur la scène.
optionLes options de style pour dessiner l'élément.
widgetLe widget qui contient cet élément graphique (si applicable).
Author
malek
Here is the call graph for this function:

◆ positionChanged

void NodeItem::positionChanged ( )
signal
Here is the caller graph for this function:

◆ updateBlinkingState()

void NodeItem::updateBlinkingState ( )

updateBlinkingState : change le statut blinking chaque 500ms pour alterner les couleurs du noeud

Met à jour l'état de clignotement du nœud.

Cette méthode est appelée périodiquement par un "QTimer" pour créer un effet de clignotement visuel. Elle inverse la couleur du nœud entre rouge et sa couleur d'origine (en fonction de son type) puis demande un redessin en appelant "update()".

Utiliser pour signaler les documents SSS sans fils

Here is the caller graph for this function:

The documentation for this class was generated from the following files: