#include "classGestOrdi.h" #include "salle.h" void gestOrdi::connecteALaBase() { //connexion à la base de donnée maBase=QSqlDatabase::addDatabase("QPSQL"); maBase.setUserName(USERNAME); maBase.setDatabaseName(DBNAME); maBase.setPassword(PASSWORD); if (!maBase.open()) { QMessageBox::critical(this,NOMAPPLIC,"Erreur lors de la connexion à la base de donnée\n vérifiez que postgresql est bien lancé sur votre ordinateur et que la base existe bien"); } } gestOrdi::gestOrdi() { //on construit l'interface appel de la méthode héritée setupUi(this); //connexion à la base connecteALaBase(); //paramétrage de la classe salle salle::setLaListeDesOrdis(listWidgetOrdinateur); salle::setLaListeDesSalles(listWidgetSalle); //appel de la methode statique genereSalles() qui crée les instances de salle à partir des salles contenues dans la bdd salle::genereSalles(); //désactivation des boutons ajouter ordi et ajouter salle pushButtonAjouterOrdi->setEnabled(false); pushButtonAjouterSalle->setEnabled(false); //connexion des boutons ajout aux slots correspondants connect(pushButtonAjouterSalle,SIGNAL(clicked()),this,SLOT(pushButtonAjouterSalleClicked())); connect(pushButtonAjouterOrdi,SIGNAL(clicked()),this,SLOT(pushButtonAjouterOrdinateurClicked())); //quand on change de salle connect(listWidgetSalle,SIGNAL(itemSelectionChanged()),this,SLOT(recupItemSalle())); //verif de saisie pour les salles connect(lineEditCodeSalle,SIGNAL(textEdited(QString)),this,SLOT(visibleAjouterSalle())); connect(lineEditNomSalle,SIGNAL(textEdited(QString)),this,SLOT(visibleAjouterSalle())); connect(lineEditEmplacement,SIGNAL(textEdited(QString)),this,SLOT(visibleAjouterSalle())); //verif de saisie pour les ordis connect(lineEditIp,SIGNAL(textEdited(QString)),this,SLOT(visibleAjouterOrdi())); connect(lineEditMarque,SIGNAL(textEdited(QString)),this,SLOT(visibleAjouterOrdi())); connect(lineEditDescription,SIGNAL(textEdited(QString)),this,SLOT(visibleAjouterOrdi())); //on met la date courante comme valeur par défaut pour date d'achat des ordis dateEditAchat->setDate(QDate::currentDate()); } void gestOrdi::pushButtonAjouterSalleClicked() { qDebug("gestOrdi::pushButtonAjouterSalleClicked()"); //nettoyage des zones de saisie on remplace ' par \' QString codeSalle = lineEditCodeSalle->text(); codeSalle.replace(QString("'"),QString("\\'")); QString nomSalle = lineEditNomSalle->text(); nomSalle.replace(QString("'"),QString("\\'")); QString emplacement = lineEditEmplacement->text(); emplacement.replace(QString("'"),QString("\\'")); //création de la nouvelle salle salle * nouvelleSalle=new salle(codeSalle,nomSalle,emplacement); //raz des zones de saisie lineEditEmplacement->setText(""); lineEditCodeSalle->setText(""); lineEditNomSalle->setText(""); } void gestOrdi::pushButtonAjouterOrdinateurClicked() { qDebug("gestOrdi::pushButtonAjouterOrdinateurClicked()"); //nettoyage des infos saisies QString Ip= lineEditIp->text(); Ip.replace(QString("'"),QString("\\'")); QString dateAchat = dateEditAchat->date().toString("MM/dd/yyyy"); QString marque = lineEditMarque->text(); marque.replace(QString("'"),QString("\\'")); QString description = lineEditDescription->text(); description.replace(QString("'"),QString("\\'")); //création de l'ordi ordi * nouvelOrdi=new ordi(Ip,dateAchat,marque,description,((salle *)(listWidgetSalle->currentItem()))->getCodeSalle()); //ajout à la liste des ordinateurs de la salle listWidgetOrdinateur->insertItem(0,nouvelOrdi); //raz des zones de saisie lineEditDescription->setText(""); lineEditMarque->setText(""); } void gestOrdi::recupItemSalle() { qDebug("gestOrdi::recupItemSalle()"); //recup de la salle choisie salle * salleChoisie=(salle *)(listWidgetSalle->currentItem()); if(salleChoisie!=NULL) { //petite salle s'il te plait affiche nous tes ordis salleChoisie->afficheOrdis(); } } void gestOrdi::closeEvent(QCloseEvent * evenement) { if (QMessageBox::warning(this,NOMAPPLIC,"Etes-vous bien sûr de vouloir fermer l'application ?","&Oui","&Non",0,0,1)==0) evenement->accept(); else evenement->ignore(); } void gestOrdi::visibleAjouterSalle() { pushButtonAjouterSalle->setEnabled(lineEditCodeSalle->text()!="" && lineEditNomSalle->text()!="" && lineEditEmplacement->text()!=""); } void gestOrdi::visibleAjouterOrdi() { qDebug("gestOrdi::visibleAjouterOrdi()"); pushButtonAjouterOrdi->setEnabled(lineEditIp->text()!="" && lineEditMarque->text()!="" && lineEditDescription->text()!="" && listWidgetSalle->currentItem()!=NULL); }