2 #include "ui_IHMAfficheur.h" 23 IHMAfficheur::IHMAfficheur(QWidget *parent) :
QMainWindow(parent), ui(new
Ui::
IHMAfficheur), rencontre(nullptr), communication(nullptr), tempsPartieGauche(new QTime(0,0)), tempsPartieDroite(new QTime(0,0)), timerPartieGauche(new QTimer()), timerPartieDroite(new QTimer()), chronometrePartieGauche(new QElapsedTimer()), chronometrePartieDroite(new QElapsedTimer())
25 qDebug() << Q_FUNC_INFO;
37 #ifndef TEST_SANS_BLUETOOTH 41 #ifdef TEST_SANS_BLUETOOTH 46 QStringList infosTrame = {
"MOBILE_AREA",
"1",
"2",
"GUIDARELLI",
"Nicolas",
"SAULNIER",
"Christian"};
52 QStringList infosTrame2 = {
"MOBILE_AREA",
"1",
"3",
"GUIDARELLI",
"Nicolas",
"SAULNIER",
"Christian",
"BEAUMONT",
"Jérôme",
"RUIZ",
"Jean michel"};
58 QStringList infosTrame3 = {
"MOBILE_AREA",
"1",
"4",
"BEAUMONT",
"Jérôme",
"RUIZ",
"Jean michel"};
64 QStringList infosTrame4 = {
"MOBILE_AREA",
"1",
"5",
"KRIER",
"Eric",
"FILAFERRO ",
"Thomas"};
84 qDebug() << Q_FUNC_INFO;
94 qDebug() << Q_FUNC_INFO;
100 QAction *quitter =
new QAction(
this);
101 quitter->setShortcut(QKeySequence(QKeySequence(Qt::Key_Escape)));
103 connect(quitter, SIGNAL(triggered()),
this, SLOT(close()));
108 ui->LabelNetPartieGauche->setStyleSheet(
"*{color:#FF0000;}");
109 ui->LabelNetPartieDroite->setStyleSheet(
"*{color:#FF0000;}");
110 ui->centralWidget->setStyleSheet(
"QWidget#centralWidget{background-color:#1a2321;} QObject{color: #ffe43f;}");
141 qDebug() << Q_FUNC_INFO;
144 fenetreAcceuil->setStyleSheet(
"QWidget{background-color:#1a2321;} QObject{color:#ffe43f ;} QLabel {font-size: 90px; font-weight:bold}");
155 QDateTime *horodatageActuel;
156 labelHorodatage->setText(horodatageActuel->currentDateTime().toString(
"dddd d MMMM hh:mm:ss"));
189 connect(
communication, SIGNAL(creationPartieSimple(QStringList)),
rencontre, SLOT(creerPartieSimple(QStringList)));
190 connect(
communication, SIGNAL(creationPartieDouble(QStringList)),
rencontre, SLOT(creerPartieDouble(QStringList)));
191 connect(
communication, SIGNAL(nouveauScorePartie(
int,
int,
int,
int,
int)),
this, SLOT(
actualiserScore(
int,
int,
int,
int,
int)));
219 qDebug() << Q_FUNC_INFO;
222 QHBoxLayout *Hlayout1 =
new QHBoxLayout();
223 QHBoxLayout *Hlayout2 =
new QHBoxLayout();
225 Vlayout->addSpacing(200);
226 Hlayout1->addSpacing(100);
227 Vlayout->addLayout(Hlayout1);
228 Vlayout->addLayout(Hlayout2);
229 QLabel *labelClub1Acceuil =
new QLabel();
230 Hlayout1->addWidget(labelClub1Acceuil);
234 QLabel *labelVSAcceuil =
new QLabel();
235 Hlayout1->addWidget(labelVSAcceuil);
236 labelVSAcceuil->setText(
"VS");
237 labelVSAcceuil->setAlignment(Qt::AlignCenter);
239 QLabel *labelClub2Acceuil =
new QLabel();
240 Hlayout1->addWidget(labelClub2Acceuil);
242 labelClub2Acceuil->setAlignment(Qt::AlignRight);
243 Hlayout1->setAlignment(Qt::AlignVCenter);
245 Hlayout1->addSpacing(100);
250 ui->nomEquipe1->setAlignment(Qt::AlignCenter);
252 ui->nomEquipe2->setAlignment(Qt::AlignCenter);
267 qDebug() << Q_FUNC_INFO <<
"scores recus : " << scoreA << scoreB;
269 for(
int i = 0; i < parties.size(); i++)
271 if(idPartie == parties[i].getIdPartie())
273 qDebug() << Q_FUNC_INFO <<
"affichage partie" << parties[i].getAffichagePartie();
274 QVector<Joueur> joueurs = parties[i].getJoueurs();
275 switch(parties[i].getAffichagePartie())
278 ui->LCD_PartieGauche_Joueur1->display(QString::number(scoreA));
279 ui->LCD_PartieGauche_Joueur2->display(QString::number(scoreB));
283 ui->LCD_PartieDroite_Joueur1->display(QString::number(scoreA));
284 ui->LCD_PartieDroite_Joueur2->display(QString::number(scoreB));
301 switch(nbManchesJoueurA)
304 ui->Manches_Joueur1_PartieGauche->setText(
"○○○");
307 ui->Manches_Joueur1_PartieGauche->setText(
"●○○");
310 ui->Manches_Joueur1_PartieGauche->setText(
"●●○");
313 ui->Manches_Joueur1_PartieGauche->setText(
"●●●");
314 if(nomJoueur3 ==
" ")
315 ui->ListeScores->setText(
ui->ListeScores->text() +
"1-0" +
"\n\n");
317 ui->ListeScores->setText(
ui->ListeScores->text() +
"1-0" +
"\n\n\n");
320 switch(nbManchesJoueurB)
323 ui->Manches_Joueur2_PartieGauche->setText(
"○○○");
326 ui->Manches_Joueur2_PartieGauche->setText(
"○○●");
329 ui->Manches_Joueur2_PartieGauche->setText(
"○●●");
332 ui->Manches_Joueur2_PartieGauche->setText(
"●●●");
333 if(nomJoueur3 ==
" ")
334 ui->ListeScores->setText(
ui->ListeScores->text() +
"0-1" +
"\n\n");
336 ui->ListeScores->setText(
ui->ListeScores->text() +
"0-1" +
"\n\n\n");
350 switch(nbManchesJoueurA)
353 ui->Manches_Joueur1_PartieDroite->setText(
"○○○");
356 ui->Manches_Joueur1_PartieDroite->setText(
"●○○");
359 ui->Manches_Joueur1_PartieDroite->setText(
"●●○");
362 ui->Manches_Joueur1_PartieDroite->setText(
"●●●");
363 if(nomJoueur3 ==
" ")
364 ui->ListeScores->setText(
ui->ListeScores->text() +
"1-0" +
"\n\n");
366 ui->ListeScores->setText(
ui->ListeScores->text() +
"1-0" +
"\n\n\n");
369 switch(nbManchesJoueurB)
372 ui->Manches_Joueur2_PartieDroite->setText(
"○○○");
375 ui->Manches_Joueur2_PartieDroite->setText(
"○○●");
378 ui->Manches_Joueur2_PartieDroite->setText(
"○●●");
381 ui->Manches_Joueur2_PartieDroite->setText(
"●●●");
382 if(nomJoueur3 ==
" ")
383 ui->ListeScores->setText(
ui->ListeScores->text() +
"0-1" +
"\n\n");
385 ui->ListeScores->setText(
ui->ListeScores->text() +
"0-1" +
"\n\n\n");
397 qDebug() << Q_FUNC_INFO;
407 qDebug() << Q_FUNC_INFO;
421 qDebug() << Q_FUNC_INFO;
423 for(
int i = 0; i < parties.size(); i++)
425 if(idPartie == parties[i].getIdPartie())
427 QVector<Joueur> joueurs = parties[i].getJoueurs();
428 if(EtatPartie ==
"DEMARREE")
432 if(EtatPartie ==
"TERMINEE")
450 qDebug() << Q_FUNC_INFO;
451 this->showFullScreen();
455 ui->Manches_Joueur1_PartieGauche->setText(
"○○○");
456 ui->Manches_Joueur2_PartieGauche->setText(
"○○○");
457 ui->LCD_PartieGauche_Joueur1->display(QString::number(0));
458 ui->LCD_PartieGauche_Joueur2->display(QString::number(0));
459 ui->labelTempsPartieGauche->setText(
"00:00");
462 ui->Nom_Joueur1_Gauche->setText(joueurs[0].getNom() +
"\n" + joueurs[0].getPrenom());
463 ui->Nom_Joueur2_Gauche->setText(joueurs[1].getNom() +
"\n" + joueurs[1].getPrenom());
464 ui->Nom_Joueur3_Gauche->setText(joueurs[2].getNom() +
"\n" + joueurs[2].getPrenom());
465 ui->Nom_Joueur4_Gauche->setText(joueurs[3].getNom() +
"\n" + joueurs[3].getPrenom());
474 ui->Manches_Joueur1_PartieDroite->setText(
"○○○");
475 ui->Manches_Joueur2_PartieDroite->setText(
"○○○");
476 ui->LCD_PartieDroite_Joueur1->display(QString::number(0));
477 ui->LCD_PartieDroite_Joueur2->display(QString::number(0));
478 ui->labelTempsPartieDroite->setText(
"00:00");
481 ui->Nom_Joueur1_Droite->setText(joueurs[0].getNom() +
"\n" + joueurs[0].getPrenom());
482 ui->Nom_Joueur2_Droite->setText(joueurs[1].getNom() +
"\n" + joueurs[1].getPrenom());
483 ui->Nom_Joueur3_Droite->setText(joueurs[2].getNom() +
"\n" + joueurs[2].getPrenom());
484 ui->Nom_Joueur4_Droite->setText(joueurs[3].getNom() +
"\n" + joueurs[3].getPrenom());
502 qDebug() << Q_FUNC_INFO;
506 qDebug() << Q_FUNC_INFO <<
"fin partie gauche";
507 if(joueurs[2].getNom() ==
" ")
509 ui->ListeJoueursGauche->setText(
ui->ListeJoueursGauche->text() + joueurs[0].getNom() +
"\n\n");
510 ui->ListeJoueursDroite->setText(
ui->ListeJoueursDroite->text() + joueurs[1].getNom() +
"\n\n");
514 ui->ListeJoueursGauche->setText(
ui->ListeJoueursGauche->text() + joueurs[0].getNom() +
"\n" + joueurs[2].getNom() +
"\n\n");
515 ui->ListeJoueursDroite->setText(
ui->ListeJoueursDroite->text() + joueurs[1].getNom() +
"\n" + joueurs[3].getNom() +
"\n\n");
525 qDebug() << Q_FUNC_INFO <<
"fin partie droite";
526 if(joueurs[2].getNom() ==
" ")
528 ui->ListeJoueursGauche->setText(
ui->ListeJoueursGauche->text() + joueurs[0].getNom() +
"\n\n");
529 ui->ListeJoueursDroite->setText(
ui->ListeJoueursDroite->text() + joueurs[1].getNom() +
"\n\n");
533 ui->ListeJoueursGauche->setText(
ui->ListeJoueursGauche->text() + joueurs[0].getNom() +
"\n" + joueurs[2].getNom() +
"\n\n");
534 ui->ListeJoueursDroite->setText(
ui->ListeJoueursDroite->text() + joueurs[1].getNom() +
"\n" + joueurs[3].getNom() +
"\n\n");
552 qDebug() << Q_FUNC_INFO;
555 timerNET =
new QTimer();
556 timerNET->setSingleShot(
true);
558 for(
int i = 0; i < parties.size(); i++)
560 if(idPartie == parties[i].getIdPartie())
564 ui->LabelNetPartieGauche->setText(
"NET");
566 timerNET->start(5000);
570 ui->LabelNetPartieDroite->setText(
"NET");
572 timerNET->start(5000);
580 qDebug() << Q_FUNC_INFO;
581 ui->LabelNetPartieGauche->setText(
"");
586 qDebug() << Q_FUNC_INFO;
587 ui->LabelNetPartieDroite->setText(
"");
QTime * tempsPartieGauche
void afficherEtatDeconnecte()
Méthode slot de débug qui notifie la déconnexion d'un module mobile.
void cacherNETPartieGauche()
QTime * tempsPartieDroite
IHMAfficheur(QWidget *parent=0)
Constructeur de la classe IHMAfficheur.
void commencerRencontre(QString club1, QString club2)
Méthode slot qui commence une rencontre entre deux clubs.
void creerPartieSimple(QStringList infoTrame)
Méthode slot qui créé une partie simple.
Déclaration de la classe Rencontre.
Déclaration de la classe IHMAfficheur.
void initialiserIHM()
Méthode qui initialise de L'interface Homme-Machine.
QElapsedTimer * chronometrePartieDroite
void initialiserFenetreAcceuil()
void afficherManchesDroite(int nbManchesJoueurB, int nbManchesJoueurA, QString nomJoueur3)
Méthode qui actualise les manches remportées par les joueurs de la partie affichée a droite...
Déclaration de la classe Rencontre.
QString getNomEquipe2()
Méthode qui retourne le nom du deuxieme Club de la rencontre.
void afficherRencontre()
Méthode qui affiche les deux clubs s'affrontant dans la rencontre.
void demarrer()
Méthode qui démarre le serveur Bluetooth.
void initialiserCouleurs()
Déclaration de la classe Communication.
void cacherNETPartieDroite()
QVector< int > disponibiliteAffichages
Vecteur contenant la disponibilité des affichages (partie gauche et partie droite de l'ecran) ...
QVector< Partie > getParties()
Méthode qui retroune le vecteur de Parties.
Communication * communication
Pointeur pour la relation avec la classe Communication.
void creerPartieDouble(QStringList infoTrame)
Méthode slot qui créé une partie double.
void actualiserTimerDroite()
void actualiserHorodatage()
void actualiserTimerGauche()
void changerEtatPartie(int idPartie, QString EtatPartie)
Méthode slot qui démarre ou met fin a une partie.
Déclaration de la classe IHMAfficheur.
void afficherEtatConnecte()
Méthode slot de débug qui notifie la connexion d'un module mobile.
void actualiserScore(int idPartie, int scoreA, int scoreB, int nbManchesJoueurA, int nbManchesJoueurB)
Méthode slot qui actualise les scores d'une partie.
Ui::IHMAfficheur * ui
Association vers l'interface utilisateur réalisé avec Qt Designer.
Rencontre * rencontre
Pointeur pour la relation avec la classe Rencontre.
Déclaration de la classe Communication.
QTimer * timerPartieDroite
QString getNomEquipe1()
Méthode qui retourne le nom du premier Club de la rencontre.
void terminerPartie(int i, QVector< Joueur > joueurs, QVector< Partie > parties)
Méthode qui met fin a une partie affichée a l'écran.
void setParties(QVector< Partie > p)
Méthode qui modifie le vecteur de Parties.
~IHMAfficheur()
Déstructeur de la classe IHMAfficheur.
void initialiserCommunication()
Méthode qui initialise la communication BLuetooth.
void afficherNET(int idPartie)
Méthode slot qui affiche une faute lors de la détection d'un net.
QTimer * timerPartieGauche
void afficherManchesGauche(int nbManchesJoueurB, int nbManchesJoueurA, QString nomJoueur3)
Méthode qui actualise les manches remportées par les joueurs de la partie affichée a gauche...
void demarrerPartie(int i, QVector< Joueur > joueurs, QVector< Partie > parties)
Méthode qui démarre une partie sur un affichage disponible.
QElapsedTimer * chronometrePartieGauche