ROV'NET  0.2
BTS SNIR LaSalle Avignon 2020
ihmaccueil.cpp
Aller à la documentation de ce fichier.
1 
7 #include "ihmaccueil.h"
8 #include "ihmrov.h"
9 #include "ihmcreationcampagne.h"
10 #include "campagne.h"
11 #include "basededonnees.h"
12 #include "ihmgraphiques.h"
13 #include <QMessageBox>
14 
15 IHMAccueil::IHMAccueil(QWidget *parent) : QWidget(parent), campagnesEnCours()
16 {
17  qDebug() << Q_FUNC_INFO;
19 
25 
28 
29  ihmRov = new IHMRov(this);
30  ihmRov->hide();
31 }
32 
34 {
36  qDebug() << Q_FUNC_INFO;
37 }
38 
40 {
41  archives = new QLabel("Archives :", this);
42  rechercheCampagneArchive = new QLineEdit(this);
43  boutonImagesArchives = new QPushButton("Photos", this);
44  boutonStatistiquesArchives = new QPushButton("Graphiques", this);
45  boutonCreationCampagne = new QPushButton("Créer campagne", this);
46  boutonDemarrerCampagne = new QPushButton("Démarrer", this);
47  boutonArchiverCampagne = new QPushButton("Archiver", this);
48  boutonSupprimerCampagne = new QPushButton("Supprimer", this);
49  listeCampagne = new QComboBox(this);
50  logoAccueil = new QLabel(this);
51 }
52 
54 {
55  QFont policeBouton("", 15, 75, false);
56  QFont policeTexte("", 13, 75, false);
57 
58  archives->setFixedSize(80,50);
59  archives->setFont(policeTexte);
60 
61  rechercheCampagneArchive->setFixedSize(200,40);
62  rechercheCampagneArchive->setFont(policeTexte);
63  rechercheCampagneArchive->setStyleSheet("QLineEdit {border-image: url(design/QLine_200x40.png)}" "QLineEdit:hover {border-image: url(design/QLine_200x40_survole.png)}");
64 
65  boutonImagesArchives->setFixedSize(157,50);
66  boutonImagesArchives->setFont(policeBouton);
67  boutonImagesArchives->setStyleSheet("QPushButton {border-image: url(design/bouton_157x50.png)}" "QPushButton:hover {border-image: url(design/bouton_157x50_survole.png)}");
68 
69  boutonStatistiquesArchives->setFixedSize(157,50);
70  boutonStatistiquesArchives->setFont(policeBouton);
71  boutonStatistiquesArchives->setStyleSheet("QPushButton {border-image: url(design/bouton_157x50.png)}" "QPushButton:hover {border-image: url(design/bouton_157x50_survole.png)}");
72 
73  boutonCreationCampagne->setFixedSize(302,50);
74  boutonCreationCampagne->setFont(policeBouton);
75  boutonCreationCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_302x50.png)}" "QPushButton:hover {border-image: url(design/bouton_302x50_survole.png)}");
76 
77  boutonDemarrerCampagne->setFixedSize(302,50);
78  boutonDemarrerCampagne->setFont(policeBouton);
79  boutonDemarrerCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_302x50.png)}" "QPushButton:hover {border-image: url(design/bouton_302x50_survole.png)}");
80 
81  boutonArchiverCampagne->setFixedSize(199,50);
82  boutonArchiverCampagne->setFont(policeBouton);
83  boutonArchiverCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_199x50.png)}" "QPushButton:hover {border-image: url(design/bouton_199x50_survole.png)}");
84 
85  boutonSupprimerCampagne->setFixedSize(199,50);
86  boutonSupprimerCampagne->setFont(policeBouton);
87  boutonSupprimerCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_199x50.png)}" "QPushButton:hover {border-image: url(design/bouton_199x50_survole.png)}");
88 
89  listeCampagne->setFixedSize(199,50);
90  listeCampagne->setFont(policeTexte);
91  listeCampagne->setStyleSheet("QComboBox {border-image: url(design/combobox_199x50.png)}" "QComboBox:hover {border-image: url(design/combobox_199x50_survole.png)}" "QComboBox::drop-down {border-image: url(rien.png)}" "QComboBox {padding: 0 0 0 15px}");
92 
93 
94 }
95 
97 {
98  QVBoxLayout *layoutPrincipal = new QVBoxLayout;
99  QHBoxLayout *layoutSuperieur = new QHBoxLayout;
100  QVBoxLayout *layoutCentral = new QVBoxLayout;
101  QHBoxLayout *layoutConfigurationCampagne = new QHBoxLayout;
102  QHBoxLayout *layoutCampagne = new QHBoxLayout;
103 
104  layoutPrincipal->addLayout(layoutSuperieur);
105  layoutSuperieur->addWidget(archives);
106  layoutSuperieur->addWidget(rechercheCampagneArchive);
107  layoutSuperieur->addWidget(boutonImagesArchives);
108  layoutSuperieur->addWidget(boutonStatistiquesArchives);
109 
110  layoutPrincipal->addLayout(layoutCentral);
111  layoutCentral->setAlignment(Qt::AlignCenter);
112  layoutCentral->addWidget(logoAccueil);
113 
114  layoutPrincipal->addLayout(layoutConfigurationCampagne);
115  layoutConfigurationCampagne->addWidget(listeCampagne);
116  layoutConfigurationCampagne->addWidget(boutonArchiverCampagne);
117  layoutConfigurationCampagne->addWidget(boutonSupprimerCampagne);
118 
119  layoutPrincipal->addLayout(layoutCampagne);
120  layoutCampagne->addWidget(boutonCreationCampagne);
121  layoutCampagne->addWidget(boutonDemarrerCampagne);
122 
123  setLayout(layoutPrincipal);
124  setWindowTitle(NOM_FENETRE_ACCUEIL);
125  setStyleSheet("background:#C1BEBE;");
126 }
127 
129 {
130  qDebug() << Q_FUNC_INFO << qApp->applicationDirPath() + "/images/Robot.png";
131  logoAccueil->setPixmap(QPixmap(qApp->applicationDirPath() + "/images/Robot.png"));
132  listeCampagne->setEditable(false);
133  rechercheCampagneArchive->setPlaceholderText("Nom de la campagne");
134  rechercheCampagneArchive->setTextMargins(10,0,0,0);
135 }
136 
138 {
139  connect(rechercheCampagneArchive, SIGNAL(textChanged(QString)), this, SLOT(rechercherCampagne(QString)));
140  connect(boutonDemarrerCampagne, SIGNAL(clicked()), this, SLOT(demarrerCampagne()));
141  connect(boutonCreationCampagne, SIGNAL(clicked()), this, SLOT(creerCampagne()));
142  connect(boutonSupprimerCampagne, SIGNAL(clicked()), this, SLOT(supprimerCampagne()));
143  connect(boutonArchiverCampagne, SIGNAL(clicked()), this, SLOT(archiverCampagne()));
144  connect(boutonImagesArchives, SIGNAL(clicked()), this, SLOT(ouvrirArchive()));
145  connect(boutonStatistiquesArchives, SIGNAL(clicked()), this, SLOT(ouvrirGraphiques()));
146 }
147 
149 {
150  listeCampagne->clear();
151 
152  for(QVector<Campagne*>::iterator it = campagnesEnCours.begin(); it != campagnesEnCours.end(); it++)
153  {
154  listeCampagne->addItem((*it)->getNomCampagne());
155  }
156 
157  if(listeCampagne->currentText().isEmpty())
158  {
159  boutonDemarrerCampagne->setDisabled(true);
160  boutonDemarrerCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_302x50_grise.png)}");
161 
162  boutonArchiverCampagne->setDisabled(true);
163  boutonArchiverCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_199x50_grise.png)}");
164 
165  boutonSupprimerCampagne->setDisabled(true);
166  boutonSupprimerCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_199x50_grise.png)}");
167  }
168  else
169  {
170  boutonDemarrerCampagne->setEnabled(true);
171  boutonDemarrerCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_302x50.png)}" "QPushButton:hover {border-image: url(design/bouton_302x50_survole.png)}");
172 
173  boutonArchiverCampagne->setEnabled(true);
174  boutonArchiverCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_199x50.png)}" "QPushButton:hover {border-image: url(design/bouton_199x50_survole.png)}");
175 
176  boutonSupprimerCampagne->setEnabled(true);
177  boutonSupprimerCampagne->setStyleSheet("QPushButton {border-image: url(design/bouton_199x50.png)}" "QPushButton:hover {border-image: url(design/bouton_199x50_survole.png)}");
178  }
179 }
180 
181 void IHMAccueil::recupererNbPhotos(QString &nombrePhotos, QString &requeteNombrePhotos)
182 {
183  baseDeDonnees->recuperer(requeteNombrePhotos, nombrePhotos);
184 }
185 
186 void IHMAccueil::recupererCampagneEnCours(bool &retourCampagne, QString &requeteInformationsCampagne, QVector<QStringList> &campagnesEnCours)
187 {
188  retourCampagne = baseDeDonnees->recuperer(requeteInformationsCampagne, campagnesEnCours);
189 }
190 
191 void IHMAccueil::recupererPhotos(bool &retourPhoto, QString &requeteInformationsPhotos, QVector<QStringList> &informationsPhotos)
192 {
193  retourPhoto = baseDeDonnees->recuperer(requeteInformationsPhotos, informationsPhotos);
194 }
195 
196 void IHMAccueil::construireListe(QVector<QString> liste)
197 {
198  QCompleter *completeur = new QCompleter(liste.toList(),this);
199  rechercheCampagneArchive->setCompleter(completeur);
200 }
201 
203 {
204  baseDeDonnees->ouvrir("campagnes.sqlite");
205 
206  bool retourCampagne, retourPhoto;
207  QVector<QStringList> campagnesEnCours;
208  QString nombrePhotos;
209  QVector<QStringList> informationsPhotos;
210 
211  QString requeteInformationsCampagne = "SELECT campagne.idCampagne, campagne.nom, campagne.lieu, technicien.nom, technicien.prenom, campagne.date, campagne.duree, campagne.cheminSauvegarde FROM campagne INNER JOIN technicien ON campagne.idTechnicien = technicien.idTechnicien WHERE campagne.enCours = '1' ORDER BY campagne.date DESC";
212 
213  #ifdef DEBUG_BASEDEDONNEES
214  qDebug() << Q_FUNC_INFO << QString::fromUtf8("requête : ") << requeteInformationsCampagne;
215  #endif
216 
217  recupererCampagneEnCours(retourCampagne, requeteInformationsCampagne, campagnesEnCours);
218  if(retourCampagne)
219  {
220  for(int i=0; i < campagnesEnCours.size(); i++)
221  {
222  QStringList informationsCampagne = campagnesEnCours.at(i);
223  QString requeteNombrePhotos = "SELECT COUNT(IdPhoto) FROM photo INNER JOIN campagne ON photo.IdCampagne = campagne.IdCampagne WHERE campagne.IdCampagne = '" + informationsCampagne.at(0) + "' ";
224  recupererNbPhotos(nombrePhotos, requeteNombrePhotos);
225 
226  #ifdef DEBUG_BASEDEDONNEES
227  qDebug() << Q_FUNC_INFO << QString::fromUtf8("%0 %1 %2 %3 %4 %5 %6 %7").arg(informationsCampagne.at(0)).arg(informationsCampagne.at(1)).arg(informationsCampagne.at(2)).arg(informationsCampagne.at(3)).arg(informationsCampagne.at(4)).arg(informationsCampagne.at(5)).arg(informationsCampagne.at(6)).arg(informationsCampagne.at(7));
228  #endif
229  Campagne *campagne = new Campagne(informationsCampagne.at(1), informationsCampagne.at(2), informationsCampagne.at(3), informationsCampagne.at(4), QDateTime::fromString(informationsCampagne.at(5)), this, informationsCampagne.at(6).toInt());
230 
231  campagne->setCheminSauvegarde(informationsCampagne.at(7));
232  campagne->setNombrePhotos(nombrePhotos.toInt());
233 
234  QString requeteInformationsPhotos ="SELECT cheminImage, aGarder, dateHeure FROM photo INNER JOIN campagne ON photo.IdCampagne = campagne.IdCampagne WHERE campagne.enCours = '1' AND photo.IdCampagne = '" + informationsCampagne.at(0) + "'";
235  recupererPhotos(retourPhoto, requeteInformationsPhotos, informationsPhotos);
236  if(retourPhoto)
237  {
238  for(int i=0; i < informationsPhotos.size(); i++)
239  {
240  QStringList informationPhoto = informationsPhotos.at(i);
241  Photo photo;
242  photo.cheminSauvegarde = informationPhoto.at(0);
243  photo.aGarder = informationPhoto.at(1).toInt();
244  photo.image = QPixmap(informationPhoto.at(0));
245  photo.dateheure = QDateTime::fromString(informationPhoto.at(2));
246 
247  campagne->ajouterPhoto(photo);
248  }
249  }
250  ajouterCampagne(campagne);
251  informationsPhotos.clear();
252  }
253  }
254  else
255  {
256  #ifdef DEBUG_BASEDEDONNEES
257  qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur !");
258  #endif
259  }
260 }
261 
263 {
264  int nbCampagnes = campagnesEnCours.size();
265  int n = 0;
266  for(QVector<Campagne*>::iterator it = campagnesEnCours.begin(); n < nbCampagnes; it++)
267  {
268  if((*it)->getNomCampagne() == listeCampagne->currentText())
269  {
270  delete (*it);
271  campagnesEnCours.erase(it);
272  }
273  n++;
274  }
276 }
277 
279 {
280  bool retourRequeteIdCampagne;
281  QString idCampagne;
282  QString requeteIdCampagne = "SELECT idCampagne FROM campagne WHERE campagne.nom = '" + listeCampagne->currentText() + "'";
283 
284  retourRequeteIdCampagne = baseDeDonnees->recuperer(requeteIdCampagne, idCampagne);
285 
286  if(!retourRequeteIdCampagne)
287  {
288  #ifdef DEBUG_BASEDEDONNEES
289  qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur !");
290  #endif
291  return "0";
292  }
293  else
294  return idCampagne;
295 }
296 
297 void IHMAccueil::supprimerPhotoLocal(QString requete)
298 {
299  QVector<QString> photoASupprimer;
300  baseDeDonnees->recuperer(requete, photoASupprimer);
301  for(QVector<QString>::Iterator it = photoASupprimer.begin(); it != photoASupprimer.end(); ++it)
302  {
303  QFile::remove((*it));
304  }
305 }
306 
308 {
309  QDir qDir;
310 
311  for(QVector<Campagne*>::Iterator it = campagnesEnCours.begin(); it != campagnesEnCours.end(); ++it)
312  {
313  if((*it)->getNomCampagne() == listeCampagne->currentText())
314  {
315  if(qDir.exists((*it)->getCheminSauvegarde() + "/" + (*it)->getNomCampagne()))
316  {
317  if(!qDir.rmdir((*it)->getCheminSauvegarde() + "/" + (*it)->getNomCampagne()))
318  {
319  qDebug() << Q_FUNC_INFO << "Erreur : impossible de supprimer le dossier" << (*it)->getCheminSauvegarde() + "/" + (*it)->getNomCampagne();
320  QMessageBox::critical(this, "Erreur", "Erreur : impossible de supprimer le dossier " + (*it)->getCheminSauvegarde() + "/" + (*it)->getNomCampagne() + " !");
321  }
322  }
323  }
324  }
325 }
326 
327 void IHMAccueil::ajouterCampagne(Campagne *campagne, bool verification)
328 {
329  QDir dossierCampagne(campagne->getCheminSauvegarde());
330  if(dossierCampagne.exists())
331  {
332  if(!dossierCampagne.mkdir(campagne->getNomCampagne()))
333  {
334  qDebug() << Q_FUNC_INFO << "Erreur : impossible de créer le dossier" << campagne->getCheminSauvegarde() << "campagne" << campagne->getNomCampagne();
335  if(verification)
336  {
337  QMessageBox::critical(this, "Erreur", "Erreur : impossible de créer le dossier " + campagne->getCheminSauvegarde() + " !");
338  return;
339  }
340  }
341  }
342  campagnesEnCours.push_back(campagne);
344 }
345 
347 {
348  #ifdef DEBUG_BASEDEDONNEES
349  qDebug() << Q_FUNC_INFO << campagne->getNomCampagne();
350  #endif
351 
352  baseDeDonnees->ouvrir("campagnes.sqlite");
353 
354  QString idTechnicien;
355  QString requeteId = "SELECT technicien.IdTechnicien FROM technicien WHERE technicien.nom = '" + campagne->getNomTechnicien() + "' AND technicien.prenom = '" + campagne->getPrenomTechnicien() + "'";
356  bool retour = baseDeDonnees->recuperer(requeteId, idTechnicien);
357  if(!retour)
358  {
359  QString requeteInformation = "INSERT INTO technicien (nom, prenom) VALUES ('" + campagne->getNomTechnicien() + "','" + campagne->getPrenomTechnicien() + "')";
360  baseDeDonnees->executer(requeteInformation);
361  baseDeDonnees->recuperer(requeteId, idTechnicien);
362  }
363 
364  QString requeteInsertionCampagne = "INSERT INTO campagne (idTechnicien, nom, lieu, date, duree, enCours, cheminSauvegarde) VALUES ('" + idTechnicien + "', '" + campagne->getNomCampagne() + "', '" + campagne->getLieu() + "', '" + campagne->getDate().toString() + "', '" + QString::number(campagne->getDuree()) + "', '1', '" + campagne->getCheminSauvegarde() + "')";
365  baseDeDonnees->executer(requeteInsertionCampagne);
366 }
367 
369 {
370  QString idCampagne, requeteUpdateDuree, requeteIdCampagne, requeteInsertionMesures, requeteModifierPhotos;
371 
372  requeteUpdateDuree = "UPDATE campagne SET duree = '"+ QString::number(campagne->getDuree()) + "' WHERE campagne.nom = '" + campagne->getNomCampagne() + "'";
373  baseDeDonnees->executer(requeteUpdateDuree);
374 
375  requeteIdCampagne = "SELECT campagne.idCampagne FROM campagne WHERE campagne.nom = '" + campagne->getNomCampagne() + "'";
376  baseDeDonnees->recuperer(requeteIdCampagne, idCampagne);
377 
378  for(int i =0; i < campagne->getAlbumPhoto().size(); ++i)
379  {
380  requeteModifierPhotos = "UPDATE photo set aGarder = '" + QString::number(campagne->getAlbumPhoto()[i].aGarder) + "' WHERE cheminImage = '" + campagne->getAlbumPhoto()[i].cheminSauvegarde + "'";
381  baseDeDonnees->executer(requeteModifierPhotos);
382  }
383  campagne->supprimerMesures();
384 }
385 
387 {
388  QString idCampagne;
389  QString requeteIdCampagne = "SELECT IdCampagne FROM campagne WHERE campagne.nom = '" + campagne->getNomCampagne() + "'";
390  baseDeDonnees->recuperer(requeteIdCampagne, idCampagne);
391 
392  QString requeteInsertion = "INSERT INTO photo (idCampagne, cheminImage, aGarder, dateHeure) VALUES ('" + idCampagne + "', '" + photo.cheminSauvegarde + "', '1', '" + photo.dateheure.toString() + "')";
393  baseDeDonnees->executer(requeteInsertion);
394 }
395 
397 {
398  for(QVector<Campagne*>::iterator it = campagnesEnCours.begin(); it != campagnesEnCours.end(); it++)
399  {
400  if((*it)->getNomCampagne() == listeCampagne->currentText())
401  {
402  qDebug() << Q_FUNC_INFO << listeCampagne->currentText();
403  ihmRov->setCampagne(*it);
404  ihmRov->showMinimized();
406  this->setVisible(false);
407  break;
408  }
409  }
410 }
411 
413 {
414  QVector<QStringList> listeTechniciens;
415  QString requete = "SELECT technicien.nom, technicien.prenom FROM technicien";
416 
417  baseDeDonnees->recuperer(requete, listeTechniciens);
418 
419  IHMCreationCampagne *ihmCreationCampagne = new IHMCreationCampagne(this, listeTechniciens);
420  ihmCreationCampagne->setFixedSize(416,278);
421  ihmCreationCampagne->exec();
422 }
423 
425 {
426  baseDeDonnees->ouvrir("campagnes.sqlite");
427  bool retourRequeteArchiver;
428  bool retourRequeteSuppressionPhoto;
429  QString requeteArchiver, requeteSuppressionPhoto;
430 
431  supprimerPhotoLocal("SELECT photo.cheminImage FROM photo WHERE photo.IdCampagne = '" + recupererIdCampagne() + "' AND photo.aGarder = '0'");
432 
433  requeteArchiver = "UPDATE campagne SET enCours = '0' WHERE campagne.nom = '" + listeCampagne->currentText() + "'";
434  requeteSuppressionPhoto = "DELETE FROM photo WHERE photo.IdCampagne = '" + recupererIdCampagne() + "' AND photo.aGarder = '0'";
435 
436  retourRequeteArchiver = baseDeDonnees->executer(requeteArchiver);
437  retourRequeteSuppressionPhoto = baseDeDonnees->executer(requeteSuppressionPhoto);
438 
439  if(!retourRequeteArchiver && !retourRequeteSuppressionPhoto)
440  {
441  #ifdef DEBUG_BASEDEDONNEES
442  qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur !");
443  #endif
444  }
445  else
447 }
448 
450 {
451  baseDeDonnees->ouvrir("campagnes.sqlite");
452  bool retourRequeteSuppressionMesures;
453  bool retourRequeteSuppressionPhotos;
454  bool retourRequeteSuppressionCampagne;
455 
456  supprimerPhotoLocal("SELECT photo.cheminImage FROM photo WHERE photo.IdCampagne = '" + recupererIdCampagne() + "'");
457 
459 
460  QString requeteSuppressionMesures = "DELETE FROM mesure WHERE mesure.IdCampagne = '" + recupererIdCampagne() + "'";
461  QString requeteSuppressionPhotos = "DELETE FROM photo WHERE photo.IdCampagne = '" + recupererIdCampagne() + "'";
462  QString requeteSuppressionCampagne = "DELETE FROM campagne WHERE campagne.IdCampagne = '" + recupererIdCampagne() + "'";
463 
464  retourRequeteSuppressionMesures = baseDeDonnees->executer(requeteSuppressionMesures);
465  retourRequeteSuppressionPhotos = baseDeDonnees->executer(requeteSuppressionPhotos);
466  retourRequeteSuppressionCampagne = baseDeDonnees->executer(requeteSuppressionCampagne);
467 
468  if(!retourRequeteSuppressionMesures && !retourRequeteSuppressionPhotos && !retourRequeteSuppressionCampagne)
469  {
470  #ifdef DEBUG_BASEDEDONNEES
471  qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur !");
472  #endif
473  }
474  else
476 }
477 
478 void IHMAccueil::enregisterMesureBDD(QString temperature, QString humidite, QString radiation)
479 {
480  baseDeDonnees->ouvrir("campagnes.sqlite");
481  bool retourRequeteEnregistrementMesure;
482 
483  QString requeteEnregistrementMesure = "INSERT INTO mesure (idCampagne, heure, temperature, radiation, humidite) VALUES (" + recupererIdCampagne() + ",'" + QDateTime::currentDateTime().toString() + "'," + temperature + "," + radiation + "," + humidite + ")";
484 
485  retourRequeteEnregistrementMesure = baseDeDonnees->executer(requeteEnregistrementMesure);
486 
487  if(!retourRequeteEnregistrementMesure)
488  {
489  #ifdef DEBUG_BASEDEDONNEES
490  qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur !");
491  #endif
492  }
493 }
494 
496 {
497  #ifdef DEBUG_BASEDEDONNEES
498  qDebug() << Q_FUNC_INFO;
499  #endif
500 
501  baseDeDonnees->ouvrir("campagnes.sqlite");
502  QVector<QString> listeCampagnesRecherchees;
503 
504  bool retourRequeteRechercheCampagne;
505 
506  QString requeteRechercheCampagne = "SELECT campagne.nom FROM campagne WHERE campagne.nom LIKE '" + texte + "%' AND campagne.enCours = '0'";
507 
508  retourRequeteRechercheCampagne = baseDeDonnees->recuperer(requeteRechercheCampagne, listeCampagnesRecherchees);
509 
510  if(!retourRequeteRechercheCampagne)
511  {
512  #ifdef DEBUG_BASEDEDONNEES
513  qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur !");
514  #endif
515  }
516  else
517  {
518  construireListe(listeCampagnesRecherchees);
519  }
520 }
521 
523 {
524  QStringList cheminSauvegarde;
525  QString requete = "SELECT campagne.cheminSauvegarde, campagne.nom FROM campagne WHERE campagne.nom = '" + rechercheCampagneArchive->text() + "'";
526 
527  baseDeDonnees->ouvrir("campagnes.sqlite");
528  bool retour = baseDeDonnees->recuperer(requete, cheminSauvegarde);
529  if(retour)
530  {
531  if(!(QDesktopServices::openUrl(QUrl(cheminSauvegarde.at(0) + "/" + cheminSauvegarde.at(1), QUrl::TolerantMode))))
532  QMessageBox::critical(this, "Erreur", "Erreur : Chemin introuvable ");
533  }
534  else
535  {
536  QMessageBox::critical(this, "Erreur", "Erreur : Nom de campagne introuvable ");
537  }
538 }
539 
541 {
542  QVector<QStringList> mesures;
543  QString requete = "SELECT mesure.heure, mesure.radiation, mesure.temperature, mesure.humidite FROM mesure INNER JOIN campagne ON campagne.IdCampagne = mesure.IdCampagne WHERE campagne.nom = '" + rechercheCampagneArchive->text() + "'";
544 
545  baseDeDonnees->ouvrir("campagnes.sqlite");
546  bool retour = baseDeDonnees->recuperer(requete, mesures);
547  if(retour)
548  {
549  if(!mesures.isEmpty())
550  {
551  IHMGraphiques *ihmGraphique = new IHMGraphiques(mesures);
552  ihmGraphique->show();
553  }
554  else
555  {
556  QMessageBox::critical(this, "Erreur", "Erreur : Aucune données trouvées !");
557  }
558  }
559 }
void demarrerCampagne()
Permet de démarrer ou reprendre une campagne non archivé
Definition: ihmaccueil.cpp:396
void rechercherCampagne(QString texte)
Fait une recherche des noms dans la base de données correspondants au texte.
Definition: ihmaccueil.cpp:495
void initialisationWidgets()
Initialise les widgets de l&#39;IHM.
Definition: ihmaccueil.cpp:39
Fichier qui contient la déclaration de la classe Campagne.
void creerCampagne()
Permet de créer une nouvelle campagne.
Definition: ihmaccueil.cpp:412
void configurerWidgets()
Configure les widgets de l&#39;IHM.
Definition: ihmaccueil.cpp:128
QString getCheminSauvegarde() const
Retourne le chemin du dossier de sauvegarde des photos.
Definition: campagne.cpp:55
Fichier qui contient la déclaration de la classe IHMCreationCampagne.
void ajouterPhoto(Photo &photo)
Ajoute une photo dans l&#39;album photo.
Definition: campagne.cpp:80
void gererCampagne()
Arrête la campagne en cours.
Definition: ihmrov.cpp:496
void recupererCampagneEnCours(bool &retourCampagne, QString &requeteInformationsCampagne, QVector< QStringList > &campagnesEnCours)
Récupère les campagnes en cours dans la base de données, le paramètre campagnesEnCours passé en référ...
Definition: ihmaccueil.cpp:186
static void detruireInstance()
Permet de detruire l&#39;instance en cours, Static elle est accessible depuis n&#39;importe où ...
void initialisationDesignWidgets()
Initialise les design des widgets de l&#39;IHM.
Definition: ihmaccueil.cpp:53
void setCampagne(Campagne *campagne)
Associe une campagne a la campagne en cours du rov.
Definition: ihmrov.cpp:426
IHM permettant d&#39;obtenir le flux vidéo en direct placé sur le robot et d&#39;obtenir les informations rel...
Definition: ihmrov.h:81
bool ouvrir(QString fichierBase)
Permet d&#39;ouvrir le fichier de base de données passé en paramètre.
void recupererNbPhotos(QString &nombrePhotos, QString &requeteNombrePhotos)
Récupère le nombre de photos dans la base de données, le paramètre nombrePhotos passé en référence ré...
Definition: ihmaccueil.cpp:181
void chargerCampagnes()
Récupere la liste des noms de campagne non terminés et ajoute les nom de la liste des campagnes dispo...
Definition: ihmaccueil.cpp:202
void supprimerCampagneListe()
Permet de supprimer de lq liste la campagne selectionné
Definition: ihmaccueil.cpp:262
QPushButton * boutonSupprimerCampagne
Bouton permettant de supprimmer la campagne sélectionner.
Definition: ihmaccueil.h:39
void initialiserLayouts()
Initialise les layouts de l&#39;IHM.
Definition: ihmaccueil.cpp:96
void ajouterCampagne(Campagne *campagne, bool verification=false)
Ajoute une nouvelle campagne dans la liste des campagne non archivés.
Definition: ihmaccueil.cpp:327
QPixmap image
Image de la photo.
Definition: ihmalbumphoto.h:22
QLabel * logoAccueil
Logo de l&#39;IHM accueil.
Definition: ihmaccueil.h:42
QString getLieu() const
Retourne le lieu de la campagne.
Definition: campagne.cpp:34
QString getPrenomTechnicien() const
Retourne le prenom du technicien.
Definition: campagne.cpp:29
void supprimerDossierPhotoLocal()
Supprime le dossier photo si il est vide.
Definition: ihmaccueil.cpp:307
void supprimerMesures()
Supprime les mesure du conteneur de Mesure, une fois celles-ci archivés dans la BDD.
Definition: campagne.cpp:95
QComboBox * listeCampagne
Liste des campagnes créer et non archivés.
Definition: ihmaccueil.h:40
void modifierCampagneBDD(Campagne *campagne)
Met à jour les informations de la campagne lors de l&#39;arret de celle-ci dans la BDD.
Definition: ihmaccueil.cpp:368
QString recupererIdCampagne()
Recupere l&#39;id de la campagne séléctionné dans la liste.
Definition: ihmaccueil.cpp:278
void ouvrirGraphiques()
Ouvre l&#39;ihm des graphiques correspondant à la misssion saisie.
Definition: ihmaccueil.cpp:540
QDateTime getDate() const
Retourne la date de la campagne.
Definition: campagne.cpp:39
#define NOM_FENETRE_ACCUEIL
Definition: ihmaccueil.h:14
Class contenant les informations de la campagne en cours.
Definition: campagne.h:34
void ouvrirArchive()
Ouvre le dossier des archvies correspondante à la mission saisie.
Definition: ihmaccueil.cpp:522
void recupererPhotos(bool &retourPhoto, QString &requeteInformationsPhotos, QVector< QStringList > &informationsPhotos)
Récupère les photos associés a une campagne dans la base de données, le paramètre informationsPhotos ...
Definition: ihmaccueil.cpp:191
Fichier qui contient la déclaration de la classe IHMGraphiques.
QLineEdit * rechercheCampagneArchive
Zone de recherche des campagnes archivés.
Definition: ihmaccueil.h:41
QString cheminSauvegarde
Chemin de sauvegarde de la photo.
Definition: ihmalbumphoto.h:25
void supprimerCampagne()
Permet d&#39;archiver la campagne dans la base de données.
Definition: ihmaccueil.cpp:449
QString getNomTechnicien() const
Retourne le nom du technicien.
Definition: campagne.cpp:24
static BaseDeDonnees * getInstance(QString type="QSQLITE")
Permet de créer une instance de BDD ou de récuperer celle deja en cours, cette méthode controle l&#39;ins...
bool aGarder
Booléen afin de savoir si la photo sera archivé ou non.
Definition: ihmalbumphoto.h:24
Fichier qui contient la déclaration de la classe BaseDeDonnees.
QVector< Campagne * > campagnesEnCours
Conteneur des campagnes non archivés.
Definition: ihmaccueil.h:44
bool recuperer(QString requete, QString &donnees)
Permet d&#39;executer la requete passé en paramètre au format SQL, et remplit le QString de sa réponse...
QLabel * archives
Texte indiquant la zone de gestation des archives.
Definition: ihmaccueil.h:43
Class permettant de visualiser les graphiques des campagnes archivés.
Definition: ihmgraphiques.h:20
void rechargerListeCampagnes()
Recharge la liste des campagnes en cours.
Definition: ihmaccueil.cpp:148
void supprimerPhotoLocal(QString requete)
Selectionne les chemin d&#39;accès des photo à supprimer dans la base de données et les supprime en local...
Definition: ihmaccueil.cpp:297
Fichier qui contient la déclaration de la classe IHMAccueil.
Class permettant de créer une nouvelle campagne.
QString getNomCampagne() const
Retourne le nom de la campagne.
Definition: campagne.cpp:19
int getDuree() const
Retourne la durée de la campagne.
Definition: campagne.cpp:44
IHMRov * ihmRov
Instance d&#39;un objet ihmRov.
Definition: ihmaccueil.h:46
QPushButton * boutonCreationCampagne
Bouton permettant de créer une nouvelle campagne.
Definition: ihmaccueil.h:36
QVector< Photo > getAlbumPhoto() const
Retourne l&#39;album photo de la campagne.
Definition: campagne.cpp:70
IHMAccueil(QWidget *parent=nullptr)
Constructeur de la classe IHMAccueil.
Definition: ihmaccueil.cpp:15
void ajouterPhotoBDD(Photo &photo, Campagne *campagne)
Ajoute la photo prise dans la BDD associé a la campagne.
Definition: ihmaccueil.cpp:386
void setNombrePhotos(int nombre)
Modifie le nombre de photos prises durant la campagne.
Definition: campagne.cpp:65
Fichier qui contient la déclaration de la classe IHMRov.
structure contenant les informations d&#39;une photo de campagne
Definition: ihmalbumphoto.h:20
~IHMAccueil()
Destructeur de la classe IHMAccueil.
Definition: ihmaccueil.cpp:33
void setCheminSauvegarde(QString chemin)
Modifie le chemin de sauvegarde des photos.
Definition: campagne.cpp:60
bool executer(QString requete)
Permet d&#39;executer la requete passé en paramètre au format SQL.
La classe QWidget est la classe de base de tous les objets graphiques d&#39;interface utilisateur...
void archiverCampagne()
Permet d&#39;archiver la campagne selectionner.
Definition: ihmaccueil.cpp:424
QPushButton * boutonArchiverCampagne
Bouton permettant d&#39;archiver la campagne sélectionner.
Definition: ihmaccueil.h:38
BaseDeDonnees * baseDeDonnees
Instance d&#39;un objet BaseDeDonnees permettant d&#39;acceder a la BDD.
Definition: ihmaccueil.h:45
QPushButton * boutonStatistiquesArchives
Bouton permettant de configurer le matériel.
Definition: ihmaccueil.h:35
void enregisterMesureBDD(QString temperature, QString humidite, QString radiation)
enregistre les mesures recues dans la base de données
Definition: ihmaccueil.cpp:478
QPushButton * boutonImagesArchives
Bouton permettant d&#39;accéder aux archives.
Definition: ihmaccueil.h:34
QPushButton * boutonDemarrerCampagne
Bouton permettant de démarrer ou reprendre la campagne seléctionner.
Definition: ihmaccueil.h:37
void initialiserEvenements()
Initialise les evenements de l&#39;IHM.
Definition: ihmaccueil.cpp:137
QDateTime dateheure
Date/Heure de la photo.
Definition: ihmalbumphoto.h:23
void construireListe(QVector< QString > liste)
Construit la liste déroulante des campagnes sélectionnées.
Definition: ihmaccueil.cpp:196
void enregistrerCampagneBDD(Campagne *campagne)
Enregistre les informations de la campagne dans la BDD.
Definition: ihmaccueil.cpp:346