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

#include <xmlparserutils.h>

Classes

struct  Exigence_Srs
 

Static Public Member Functions

static void Check_filtres (pugi::xml_node &paragraphe, Exigence_Srs &exigences)
 Cette fonction analyse un paragraphe XML pour extraire et filtrer des informations relatives aux exigences, telles que les cibles, les nécessités et le développement (les critères de filtrage).
 
static std::vector< StyleFileextract_all_styles (const std::string &path)
 Extrait tous les styles utilisés dans un document Word à partir du fichier XML des styles.
 
static std::list< std::string > nettoyage_exigence_srs (const std::string &line_exigence_srs)
 Nettoie une ligne d'exigences SRS et extrait chaque exigence sous forme de liste.
 
static std::vector< std::string > Search_Sss_Exigence (const std::string &path, const StyleCharacteristics &userStyle)
 
static std::vector< std::string > ExtractExigenceExcel (const std::string &PathExcelDoc)
 Extrait les exigences d'un document Excel de type SSS.
 
static void SearchExigenceSRS (Srs *srs, StyleFile style)
 
static std::vector< std::string > Search_Sss_Exigence (const std::string &path, const StyleFile &userStyle)
 Recherche et extrait les exigences dans un document SSS Word en fonction d'un style utilisateur.
 
static QString Ui_display_styleCharacteristics (const StyleCharacteristics &style)
 
static void afficherStyles (QDialog *styleExigence, const QVector< Sss * > &sss_files, MainWindow *mainwindow)
 Affiche les styles détectés dans les documents SSS, SRS et SDD dans une boite de dialogue.
 
static std::vector< std::string > get_used_styleIds (const std::string &path_doc_xml)
 Récupère les identifiants de style utilisés dans un document XML Word.
 
static void extractionTermineeCallback ()
 
static std::vector< std::string > extract_exigence_sss (const std::string &path, const StyleFile &userStyle)
 Extrait les exigences d’un fichier SSS, quel que soit son format (.docx, .xlsx, .csv).
 
static void ajouterStyleAListe (QListWidget *listWidget, const StyleFile &style)
 Ajoute un style à une QListWidget sous forme d’un item contenant une case à cocher et un label.
 
static int getCheckedIndex (QListWidget *listWidget)
 Retourne l'index du premier élément coché dans un QListWidget contenant des QCheckBox.
 
static std::vector< std::string > extractFromCsv (const std::string &path)
 Extrait les exigences à partir d'un fichier CSV.
 
static void remplirCriteres (QFrame *frame, const QStringList &liste_criteres, QObject *receiver, std::function< void()> updateCallback)
 Remplit dynamiquement un QFrame avec une liste de critères sous forme de cases à cocher (QCheckBox).
 
static QStringList getCriteresCoches (QFrame *frame)
 Récupère la liste des critères sélectionnés (cases cochées) dans les QListWidget.
 
static std::string RGB_to_Color (const std::string &rgb)
 Convertit une couleur en format RGB en son nom de couleur correspondant.
 
static void extraireExigencesApresSelection (const QVector< Sss * > &sss_files, QListWidget *listWidgetSSS, QListWidget *listWidgetSRS, QListWidget *listWidgetSDD, const std::vector< StyleFile > &styles_sss, const std::vector< StyleFile > &styles_srs, const std::vector< StyleFile > &styles_sdd, MainWindow *mainwindow)
 Extrait les exigences à partir des fichiers SSS/SRS/SDD en fonction des criteres sélectionnés.
 

Member Function Documentation

◆ afficherStyles()

void XmlParserUtils::afficherStyles ( QDialog * styleExigence,
const QVector< Sss * > & sss_files,
MainWindow * mainwindow )
static

Affiche les styles détectés dans les documents SSS, SRS et SDD dans une boite de dialogue.

Cette fonction est utilisée pour extraire les styles de formatage à partir des fichiers Word (SSS, SRS, SDD), puis les afficher dans une fenêtre contenant trois listes (une pour chaque type de document). À la fin du traitement, l’utilisateur peut valider sa sélection de styles, ce qui déclenche une extraction des exigences correspondantes.

Parameters
styleExigencePointeur vers la QDialog utilisée pour afficher les styles.
sss_filesVecteur contenant les fichiers SSS avec leurs éventuels liens vers des fichiers SRS et SDD.
mainwindowPointeur vers la fenêtre principale de l'application, utilisé pour relancer l'extraction après sélection.
Note
Les styles sont extraits uniquement des fichiers Word détectés.
Si aucun style n’est trouvé pour un type de fichier, un message est affiché dans la liste concernée.
Author
Malek
Here is the call graph for this function:

◆ ajouterStyleAListe()

void XmlParserUtils::ajouterStyleAListe ( QListWidget * listWidget,
const StyleFile & style )
static

Ajoute un style à une QListWidget sous forme d’un item contenant une case à cocher et un label.

Cette fonction crée dynamiquement un widget personnalisé avec :

  • une QCheckBox affichant le nom du style,
  • un QLabel décrivant le style, puis l’ajoute comme nouvel item dans la QListWidget fournie.
Parameters
listWidgetPointeur vers la QListWidget où l’item sera ajouté.
styleL’objet StyleFile représentant le style à afficher.
Author
Malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Check_filtres()

void XmlParserUtils::Check_filtres ( pugi::xml_node & paragraphe,
Exigence_Srs & exigences )
static

Cette fonction analyse un paragraphe XML pour extraire et filtrer des informations relatives aux exigences, telles que les cibles, les nécessités et le développement (les critères de filtrage).

La fonction parcourt un noeud XML contenant des balises "w:r" et "w:t", qui sont des éléments d'un document XML Word (DOCX). Elle concatène le texte de ces balises et analyse les lignes de texte pour extraire des informations en fonction des mots-clés tels que "Cible", "Nécessaire à", et "Développé". En fonction des données extraites, elle met à jour un objet "Exigence_Srs" pour inclure les valeurs correspondantes dans les attributs appropriés.

Parameters
[in,out]paragrapheLe noeud XML à analyser. Cette fonction modifie la structure XML en se déplaçant à travers ses frères.
[in,out]exigencesL'objet "Exigence_Srs" qui contient les données extraites. Il est mis à jour avec les informations collectées à partir du texte XML.
Note
La fonction prend en compte des caractères d'espacement et les caractères spéciaux (comme le "\xC2") pour nettoyer les données extraites. Elle s'arrête lorsqu'un délimiteur "#" est trouvé.
Author
malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ extract_all_styles()

std::vector< StyleFile > XmlParserUtils::extract_all_styles ( const std::string & path)
static

Extrait tous les styles utilisés dans un document Word à partir du fichier XML des styles.

Cette fonction analyse le fichier XML "styles.xml" associé au document Word pour en extraire les informations relatives aux styles utilisés dans le document. Pour chaque style utilisé, elle récupère ses caractéristiques telles que l'identifiant, la police, la taille de la police, la couleur, ainsi que les propriétés telles que gras, italique, souligné et ombré. Ces informations sont stockées dans un vecteur de structures "StyleFile" et renvoyées à la fin de la fonction.

Parameters
[in]pathLe chemin du fichier XML principal du document (utilisé pour extraire le dossier contenant les fichiers associés).
Returns
Un vecteur de structures "StyleFile" représentant les styles extraits du fichier "styles.xml".
Note
La fonction utilise la bibliothèque pugixml pour le parsing XML et la fonction "get_used_styleIds" pour récupérer les identifiants des styles utilisés.
Author
Malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ extract_exigence_sss()

std::vector< std::string > XmlParserUtils::extract_exigence_sss ( const std::string & path,
const StyleFile & userStyle )
static

Extrait les exigences d’un fichier SSS, quel que soit son format (.docx, .xlsx, .csv).

Cette fonction détecte automatiquement le type de fichier (Word, Excel ou CSV) en se basant sur son extension, puis appelle la fonction d'extraction appropriée.

Parameters
pathLe chemin vers le fichier contenant les exigences.
userStyleLe style à utiliser dans le cas d'un document Word (.docx/.doc).
Returns
std::vector<std::string> Un vecteur contenant les exigences extraites.
Note
Cette fonction agit comme un point d'entrée unique pour l’extraction d’exigences à partir de différents formats de fichiers.
Author
Malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractExigenceExcel()

std::vector< std::string > XmlParserUtils::ExtractExigenceExcel ( const std::string & PathExcelDoc)
static

Extrait les exigences d'un document Excel de type SSS.

Cette fonction ouvre un fichier Excel spécifié par le chemin "PathExcelDoc", en extrait les chaînes de texte depuis le fichier "sharedStrings.xml" généré par Excel dans le dossier temporaire décompressé, et retourne la liste des exigences trouvées.

Elle utilise la bibliothèque PugiXML pour analyser le contenu XML, et une fonction auxiliaire "FileUtils::ExtractXmlFolder()" pour décompresser temporairement le fichier Excel (ZIP). Une fois les données extraites, les fichiers temporaires sont supprimés par "FileUtils::delete_extra()".

Parameters
PathExcelDocLe chemin vers le fichier Excel (.xlsx) à analyser.
Returns
std::vector<std::string> Un vecteur contenant toutes les exigences extraites.
Author
Malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ extractFromCsv()

std::vector< std::string > XmlParserUtils::extractFromCsv ( const std::string & path)
static

Extrait les exigences à partir d'un fichier CSV.

Cette fonction lit un fichier CSV ligne par ligne, supprime les guillemets (""") de chaque ligne, puis découpe la ligne en éléments en utilisant ";" comme séparateur. Chaque élément est ajouté à un vecteur de chaînes représentant les exigences. @param path Le chemin vers le fichier CSV à analyser. @return std::vector<std::string> Un vecteur contenant les exigences extraites. @note Cette fonction suppose que les exigences sont séparées par des points-virgules (";") et qu'elles peuvent être entourées de guillemets (qui seront supprimés).

Author
Malek
Here is the caller graph for this function:

◆ extractionTermineeCallback()

static void XmlParserUtils::extractionTermineeCallback ( )
static

◆ extraireExigencesApresSelection()

void XmlParserUtils::extraireExigencesApresSelection ( const QVector< Sss * > & sss_files,
QListWidget * listWidgetSSS,
QListWidget * listWidgetSRS,
QListWidget * listWidgetSDD,
const std::vector< StyleFile > & styles_sss,
const std::vector< StyleFile > & styles_srs,
const std::vector< StyleFile > & styles_sdd,
MainWindow * mainwindow )
static

Extrait les exigences à partir des fichiers SSS/SRS/SDD en fonction des criteres sélectionnés.

Cette fonction est déclenchée après la sélection de criteres de filtrage par l'utilisateur dans l'interface graphique. Elle applique les filtres sélectionnés aux classes Sss, Srs et Sdd, réinitialise les filtres, puis extrait les exigences de manière asynchrone à l'aide de QtConcurrent, tout en affichant une boîte de progression.

À la fin de l'extraction, elle déclenche le traitement du graphe dans la fenêtre principale ("MainWindow::Bouton_graphe").

Parameters
sss_filesPointeur vers un vecteur de fichiers SSS.
listWidgetSSSPointeur vers le QListWidget contenant les styles disponibles pour SSS.
listWidgetSRSPointeur vers le QListWidget contenant les styles disponibles pour SRS.
listWidgetSDDPointeur vers le QListWidget contenant les styles disponibles pour SDD.
styles_sssVecteur contenant les styles extraits du fichier SSS.
styles_srsVecteur contenant les styles extraits du fichier SRS.
styles_sddVecteur contenant les styles extraits du fichier SDD.
mainwindowPointeur vers la fenêtre principale, utilisé pour déclencher l'affichage du graphe.
Author
Malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_used_styleIds()

std::vector< std::string > XmlParserUtils::get_used_styleIds ( const std::string & path_doc_xml)
static

Récupère les identifiants de style utilisés dans un document XML Word.

Cette fonction charge un document XML Word spécifié par le chemin "path_doc_xml" et parcourt tous les paragraphes du corps du document. Pour chaque paragraphe, elle recherche la balise "<w:pStyle>" et en extrait l'attribut "w:val", qui représente l'identifiant du style appliqué au paragraphe. Les identifiants de style extraits sont ajoutés à un vecteur, qui est retourné à la fin de la fonction.

Parameters
path_doc_xmlLe chemin du fichier XML Word à analyser.
Returns
Un vecteur de chaînes contenant les identifiants des styles utilisés dans le document.
Note
La fonction utilise la bibliothèque pugixml pour le parsing XML.
Author
Malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getCheckedIndex()

int XmlParserUtils::getCheckedIndex ( QListWidget * listWidget)
static

Retourne l'index du premier élément coché dans un QListWidget contenant des QCheckBox.

Cette fonction parcourt les éléments du QListWidget et cherche la première case à cocher cochée. Chaque élément du QListWidget doit contenir un QCheckBox en tant que widget associé.

Parameters
listWidgetPointeur vers le QListWidget à analyser.
Returns
L'index du premier QCheckBox coché, ou -1 si aucun n'est coché.
Author
Malek
Here is the caller graph for this function:

◆ getCriteresCoches()

QStringList XmlParserUtils::getCriteresCoches ( QFrame * frame)
static

Récupère la liste des critères sélectionnés (cases cochées) dans les QListWidget.

Cette fonction parcourt récursivement tous les QListWidget présents dans le QFrame donné en paramètre, et extrait les textes des QCheckBox qui sont cochées. Elle retourne la liste de ces textes comme une QStringList.

Parameters
framePointeur vers le QFrame contenant plusieurs Widget.
Returns
QStringList contenant les textes de toutes les QCheckBox cochées trouvées dans les QListWidget.
Author
Malek
Here is the caller graph for this function:

◆ nettoyage_exigence_srs()

std::list< std::string > XmlParserUtils::nettoyage_exigence_srs ( const std::string & line_exigence_srs)
static

Nettoie une ligne d'exigences SRS et extrait chaque exigence sous forme de liste.

Cette fonction prend une ligne de texte représentant une ou plusieurs exigences SRS, supprime le préfixe avant le premier caractère ":", puis extrait chaque exigence séparée par des virgules. Elle supprime également les espaces en début et fin de chaque exigence avant de l'ajouter à la liste retournée.

Exemple d'entrée : "ID: EX1, EX2, EX3" Résultat : {"EX1", "EX2", "EX3"}

Parameters
line_exigence_srsLa ligne brute contenant les exigences SRS.
Returns
std::list<std::string> Une liste contenant chaque exigence nettoyée.
Author
Malek
Here is the caller graph for this function:

◆ remplirCriteres()

void XmlParserUtils::remplirCriteres ( QFrame * frame,
const QStringList & liste_criteres,
QObject * receiver,
std::function< void()> updateCallback )
static

Remplit dynamiquement un QFrame avec une liste de critères sous forme de cases à cocher (QCheckBox).

Cette fonction remplace l'ancien layout du QFrame donné par un nouveau contenant une QListWidget. Chaque élément de la QStringList passée est ajouté sous forme de QCheckBox dans la liste. Une connexion est faite entre chaque QCheckBox et un callback fourni pour réagir aux changements d'état.

Parameters
framePointeur vers le QFrame à remplir. S'il contient déjà un layout, celui-ci est supprimé.
liste_criteresListe de critères à afficher sous forme de QCheckBox.
receiverPointeur vers l'objet receveur pour les connexions de signaux/slots.
updateCallbackFonction appelée à chaque fois qu'une case est cochée/décochée.
Author
Malek
Here is the call graph for this function:
Here is the caller graph for this function:

◆ RGB_to_Color()

std::string XmlParserUtils::RGB_to_Color ( const std::string & rgb)
static

Convertit une couleur en format RGB en son nom de couleur correspondant.

Cette fonction prend une chaîne de caractères représentant une couleur en format RGB (par exemple "#FF5733"), la convertit en un objet "QColor", puis cherche le nom de cette couleur dans la liste des couleurs. Si la couleur existe dans cette liste, le nom est retourné sous forme de chaîne. Si elle n'est pas trouvée, le code hexadécimal de la couleur est retourné.

Parameters
rgbLa chaîne représentant la couleur en format RGB (par exemple "#FF5733").
Returns
Le nom de la couleur correspondant à la valeur RGB, ou le code hexadécimal de la couleur si aucun nom n'est trouvé.
Author
Malek
Here is the caller graph for this function:

◆ Search_Sss_Exigence() [1/2]

static std::vector< std::string > XmlParserUtils::Search_Sss_Exigence ( const std::string & path,
const StyleCharacteristics & userStyle )
static
Here is the caller graph for this function:

◆ Search_Sss_Exigence() [2/2]

std::vector< std::string > XmlParserUtils::Search_Sss_Exigence ( const std::string & path,
const StyleFile & userStyle )
static

Recherche et extrait les exigences dans un document SSS Word en fonction d'un style utilisateur.

Cette fonction ouvre un fichier ".docx" (au format Word), extrait son contenu XML, puis parcourt chaque paragraphe pour détecter ceux ayant le style spécifié par l'utilisateur. Si le style correspond, le texte du paragraphe est considéré comme une exigence et est ajouté à la liste.

Parameters
pathLe chemin vers le fichier Word (.docx) contenant les exigences.
userStyleLe style (ID de style) défini par l'utilisateur pour identifier les exigences.
Returns
std::vector<std::string> Un vecteur contenant les exigences extraites du fichier Word.
Note
Le fichier ".docx" est traité comme une archive ZIP. Le contenu est extrait temporairement pour accéder au fichier "document.xml".
Author
Malek
Here is the call graph for this function:

◆ SearchExigenceSRS()

void XmlParserUtils::SearchExigenceSRS ( Srs * srs,
StyleFile style )
static
Here is the call graph for this function:

◆ Ui_display_styleCharacteristics()

static QString XmlParserUtils::Ui_display_styleCharacteristics ( const StyleCharacteristics & style)
static

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