ROV'NET  0.2
BTS SNIR LaSalle Avignon 2020
ihmcreationcampagne.cpp
Aller à la documentation de ce fichier.
1 
7 #include "ihmcreationcampagne.h"
8 #include "campagne.h"
9 #include "ihmaccueil.h"
10 
11 IHMCreationCampagne::IHMCreationCampagne(IHMAccueil *ihmAccueil, QVector<QStringList> &listeTechniciens) : QDialog(ihmAccueil, Qt::Dialog), ihmAccueil(ihmAccueil), listeTechniciens(listeTechniciens)
12 {
13  qDebug() << Q_FUNC_INFO;
14 
21 }
22 
24 {
25  qDebug() << Q_FUNC_INFO;
26 }
27 
29 {
30  nomCampagne = new QLineEdit(this);
31  nomTechnicien = new QLineEdit(this);
32  prenomTechnicien = new QLineEdit(this);
33  lieu = new QLineEdit(this);
34  cheminSauvegarde = new QLineEdit(this);
35  boutonValider = new QPushButton("Valider", this);
36  boutonAnnuler = new QPushButton("Annuler", this);
37  boutonChoixChemin = new QPushButton("...", this);
38  techniciens = new QComboBox(this);
39 }
40 
42 {
43  QFont policeBouton("", 13, 75, false);
44  QFont policeText("", 13, 0, false);
45 
46  nomCampagne->setFixedSize(194,30);
47  nomCampagne->setFont(policeText);
48  nomCampagne->setStyleSheet("QLineEdit {border-image: url(design/QLine_194x30.png)}" "QLineEdit:hover {border-image: url(design/QLine_194x30_survole.png)}");
49 
50  nomTechnicien->setFixedSize(194,30);
51  nomTechnicien->setFont(policeText);
52  nomTechnicien->setStyleSheet("QLineEdit {border-image: url(design/QLine_194x30.png)}" "QLineEdit:hover {border-image: url(design/QLine_194x30_survole.png)}" "QLineEdit:disable {border-image: url(design/QLine_194x30_grise.png)}");
53 
54  prenomTechnicien->setFixedSize(194,30);
55  prenomTechnicien->setFont(policeText);
56  prenomTechnicien->setStyleSheet("QLineEdit {border-image: url(design/QLine_194x30.png)}" "QLineEdit:hover {border-image: url(design/QLine_194x30_survole.png)}");
57 
58  lieu->setFixedSize(194,30);
59  lieu->setFont(policeText);
60  lieu->setStyleSheet("QLineEdit {border-image: url(design/QLine_194x30.png)}" "QLineEdit:hover {border-image: url(design/QLine_194x30_survole.png)}");
61 
62  cheminSauvegarde->setFixedSize(108,30);
63  cheminSauvegarde->setFont(policeText);
64  cheminSauvegarde->setStyleSheet("QLineEdit {border-image: url(design/QLine_108x30.png)}" "QLineEdit:hover {border-image: url(design/QLine_108x30_survole.png)}" );
65 
66  boutonValider->setFixedSize(194,40);
67  boutonValider->setFont(policeBouton);
68  boutonValider->setStyleSheet("QPushButton {border-image: url(design/bouton_194x40.png)}" "QPushButton:hover {border-image: url(design/bouton_194x40_survole.png)}");
69 
70  boutonAnnuler->setFixedSize(194,40);
71  boutonAnnuler->setFont(policeBouton);
72  boutonAnnuler->setStyleSheet("QPushButton {border-image: url(design/bouton_194x40.png)}" "QPushButton:hover {border-image: url(design/bouton_194x40_survole.png)}");
73 
74  boutonChoixChemin->setFixedSize(80,30);
75  boutonChoixChemin->setFont(policeText);
76  boutonChoixChemin->setStyleSheet("QPushButton {border-image: url(design/bouton_80x30.png)}" "QPushButton:hover {border-image: url(design/bouton_80x30_survole.png)}");
77 
78  techniciens->setMinimumSize(194,30);
79  techniciens->setFont(policeText);
80  techniciens->setStyleSheet("QComboBox {border-image: url(design/combobox_194x30.png)}" "QComboBox:hover {border-image: url(design/combobox_194x30_survole.png)}" "QComboBox::drop-down {border-image: url(rien.png)}" "QComboBox {padding: 0 0 0 10px}");
81 
82  qDebug() << "nomCampagne" << nomCampagne->size();
83 
84 }
85 
87 {
88  connect(boutonValider, SIGNAL(clicked()), this, SLOT(validerCampagne()));
89  connect(boutonAnnuler, SIGNAL(clicked()), this, SLOT(close()));
90  connect(boutonChoixChemin, SIGNAL(clicked()), this, SLOT(choixCheminSauvegarde()));
91  connect(techniciens, SIGNAL(currentIndexChanged(int)), this, SLOT(modifierEtatBouton(int)));
92 }
93 
95 {
96  QVBoxLayout *layoutPrincipal = new QVBoxLayout;
97  QFormLayout *layoutFormulaireCampagne = new QFormLayout;
98  QHBoxLayout *layoutValidation = new QHBoxLayout;
99  QHBoxLayout *layoutChoixChemin = new QHBoxLayout;
100 
101  layoutPrincipal->addLayout(layoutFormulaireCampagne);
102  layoutPrincipal->addLayout(layoutValidation);
103  layoutChoixChemin->addWidget(cheminSauvegarde);
104  layoutChoixChemin->addWidget(boutonChoixChemin);
105 
106  layoutFormulaireCampagne->addRow("Nom campagne : ", nomCampagne);
107  layoutFormulaireCampagne->addRow("Techniciens : ", techniciens);
108  layoutFormulaireCampagne->addRow("Nom technicien : ", nomTechnicien);
109  layoutFormulaireCampagne->addRow("Prenom technicien : ", prenomTechnicien);
110  layoutFormulaireCampagne->addRow("Lieu campagne : ", lieu);
111  layoutFormulaireCampagne->addRow("Chemin sauvegarde photos : ", layoutChoixChemin);
112 
113  layoutValidation->addWidget(boutonValider);
114  layoutValidation->addWidget(boutonAnnuler);
115 
116  layoutValidation->setAlignment(Qt::AlignBottom);
117 
118  setLayout(layoutPrincipal);
119 }
120 
122 {
123  nomCampagne->setTextMargins(10,0,0,0);
124  nomTechnicien->setTextMargins(10,0,0,0);
125  prenomTechnicien->setTextMargins(10,0,0,0);
126  lieu->setTextMargins(10,0,0,0);
127  cheminSauvegarde->setTextMargins(10,0,0,0);
128 }
129 
131 {
132  techniciens->addItem("Ajouter technicien");
133 
134  for(QVector<QStringList>::iterator it = listeTechniciens.begin(); it != listeTechniciens.end(); ++it)
135  {
136  techniciens->addItem((*it).at(0) + " " + (*it).at(1));
137  }
138 }
139 
141 {
142  if(nomCampagne->text().isEmpty() || nomTechnicien->text().isEmpty() || prenomTechnicien->text().isEmpty() || lieu->text().isEmpty() || cheminSauvegarde->text().isEmpty())
143  {
144  QMessageBox::critical(nullptr, "Création campagne", "Informations incomplètes !");
145  return;
146  }
147 
148  Campagne *campagne = new Campagne(nomCampagne->text(), lieu->text(), nomTechnicien->text(), prenomTechnicien->text(), QDateTime::currentDateTime(), this);
149  campagne->setCheminSauvegarde(cheminSauvegarde->text());
150  ihmAccueil->ajouterCampagne(campagne, true);
152  close();
153 }
154 
156 {
157  if(index > 0)
158  {
159  nomTechnicien->setDisabled(true);
160  nomTechnicien->setText(listeTechniciens[index - 1].at(0));
161  nomTechnicien->setStyleSheet("QLineEdit {border-image: url(design/QLine_194x30_grise.png)}");
162  prenomTechnicien->setDisabled(true);
163  prenomTechnicien->setText(listeTechniciens[index - 1].at(1));
164  prenomTechnicien->setStyleSheet("QLineEdit {border-image: url(design/QLine_194x30_grise.png)}");
165  }
166  else
167  {
168  nomTechnicien->clear();
169  prenomTechnicien->clear();
170  nomTechnicien->setEnabled(true);
171  nomTechnicien->setStyleSheet("QLineEdit {border-image: url(design/QLine_194x30.png)}");
172  prenomTechnicien->setEnabled(true);
173  prenomTechnicien->setStyleSheet("QLineEdit {border-image: url(design/QLine_194x30.png)}");
174  }
175 }
176 
178 {
179  cheminSauvegarde->setText(QFileDialog::getExistingDirectory(this, "Choix du chemin de sauvegarde des photos"));
180 }
void initialiserLayouts()
Initialise les layouts de l&#39;IMH.
Fichier qui contient la déclaration de la classe Campagne.
void configurerWidgets()
Configure les différents widgets.
Fichier qui contient la déclaration de la classe IHMCreationCampagne.
IHMAccueil * ihmAccueil
Association avec la classe IHMAccueil.
void ajouterCampagne(Campagne *campagne, bool verification=false)
Ajoute une nouvelle campagne dans la liste des campagne non archivés.
Definition: ihmaccueil.cpp:327
void choixCheminSauvegarde()
Permet de choisir le chemin de sauvegarde des photos.
void initialisationDesignWidgets()
Initialise le design des widgets de l&#39;IHM.
QPushButton * boutonChoixChemin
Bouton permettant de choisir le chemin de sauvegarde des photos.
Class contenant les informations de la campagne en cours.
Definition: campagne.h:34
QComboBox * techniciens
Liste déroulantes contenant tous les technicien connus.
QLineEdit * nomCampagne
Ligne editable permettant de rentrer le nom de la campagne à créer.
void modifierEtatBouton(int index)
Modifie l&#39;état des boutons de la boite de dialogue "création d&#39;une nouvelle campagne" si un technicie...
QLineEdit * cheminSauvegarde
Ligne editable permettant de choisir le chemin de sauvegarde des photos.
Class permettant de créer une nouvelle campagne, reprendre une campagne mise en pause, archiver une campagne, supprimer une campagne, accéder à la base de données et configurer le matériel.
Definition: ihmaccueil.h:29
QPushButton * boutonValider
Bouton permettant de valider la création de la campagne.
void validerCampagne()
Créer un nouvel objet Campagne et l&#39;ajoute dans la liste des campagnes disponibles.
~IHMCreationCampagne()
Destructeur de la classe IHMCreationCampagne.
QVector< QStringList > listeTechniciens
Conteneur de liste des informations des techniciens présent dans la base de données.
Fichier qui contient la déclaration de la classe IHMAccueil.
void chargerListeTechniciens()
Charge la liste des techniciens connus de la bdd dans la liste déroulante.
QLineEdit * lieu
Ligne editable permettant de rentrer le lieu de la campagne à créer.
QPushButton * boutonAnnuler
Bouton permettant d&#39;annuler la création de la campagne.
IHMCreationCampagne(IHMAccueil *ihmAccueil, QVector< QStringList > &listeTechniciens)
Constructeur de la classe IHMCreationCampagne.
void initialiserEvenements()
Initialise les événements de l&#39;IHM.
void setCheminSauvegarde(QString chemin)
Modifie le chemin de sauvegarde des photos.
Definition: campagne.cpp:60
QLineEdit * prenomTechnicien
Ligne editable permettant de rentrer le prenom du technicien à créer.
La classe QDialog est la classe de base des fenêtres de dialogue.
QLineEdit * nomTechnicien
Ligne editable permettant de rentrer le nom du technicien à créer.
void initialisationWidgets()
Initialise les widgets de l&#39;IHM.
void enregistrerCampagneBDD(Campagne *campagne)
Enregistre les informations de la campagne dans la BDD.
Definition: ihmaccueil.cpp:346