#include "salle.h" //pour chaque propriété statique de la classe redéclaration pour allocation mémoire QListWidget * salle::laListeDesSalles=NULL; QListWidget * salle::laListeDesOrdis=NULL; //méthode statique de la classe salle qui va chercher les salles dans la base et génére ses instances void salle::genereSalles() { QSqlQuery reqTouteSalle("select * from salle;"); while(reqTouteSalle.next())//tant qu'il y a des salles dans la base { //je crée une nouvelle instance de la classe salle salle * ptrNouvelleSalle=new salle(reqTouteSalle.record()); } } //accesseur en écriture de la propriété statique laListeDesSalles //permet de dire aux instances de la classe salle dans quelle QListWidget elles doivent s'afficher void salle::setLaListeDesSalles(QListWidget * l) { salle::laListeDesSalles=l; } //accesseur en écriture de la propriété statique laListeDesOrdis //permet de dire aux instances de la classe salle dans quelle QListWidget elles doivent s'afficher void salle::setLaListeDesOrdis(QListWidget * l) { salle::laListeDesOrdis=l; } //La classe salle dispose de deux constructeurs //celui-ci est destiné à construire une salle à partir d'un enregistrement renvoyé par une requête du type select * from salle //le constructeur valorise les propriétés de l'instance et insere la salle dans la QListWiget ou elle doit être affichée salle::salle(QSqlRecord enreg):QListWidgetItem(enreg.value(1).toString()+" "+enreg.value(2).toString()) { //valorisation des propriétés codeSalle=enreg.value(0).toString(); nomSalle=enreg.value(1).toString(); emplacement=enreg.value(2).toString(); //insertion dans la liste des salles laListeDesSalles->insertItem(0,this); } //deuxième constructeur de la classe salle destiné aux salles non encore enregistrées dans la base de donnée //valorisation des propriétés de l'instance //insertion dans la table salle de la bdd //affichage dans la QListWidgetItem salle::salle(QString code,QString nom,QString empl): QListWidgetItem(nom+" "+empl) { //valorisation des propriétés codeSalle=code; nomSalle=nom; emplacement=empl; //plus qu'à faire l'insert dans la table salle QSqlQuery reqInsertSalle("insert into salle values('"+codeSalle+"','"+nomSalle+"','"+emplacement+"');"); //insertion dans la liste "laListeDesSalles" laListeDesSalles->insertItem(0,this); } void salle::afficheOrdis() //la salle affiche ses ordinateurs { qDebug("salle::afficheOrdis()"); //commençons par effacer la liste des ordinateurs laListeDesOrdis->clear(); //requête listant nos ordinateurs QSqlQuery reqOrdis("select * from ordinateur where codeSalle='"+codeSalle+"';"); while(reqOrdis.next()) //pour chaque ordinateur renvoyé par la requête { //je crée un nouvel ordi ordi * ptrNouvelOrdi=new ordi(reqOrdis.record()); //et je l'ajoute à la liste des ordinateurs laListeDesOrdis->insertItem(0,ptrNouvelOrdi); } } //fin de l'implémentation de la classe salle