|
@@ -44,17 +44,25 @@ MaFenetre::MaFenetre(Options* mesOptions) :
|
|
|
{
|
|
|
QWidget *centralWidget = new QWidget;
|
|
|
|
|
|
- chronoBlanc = new Chronometre(option->nomJoueur1() , option->tempsDepart(), this);
|
|
|
- chronoNoir = new Chronometre(option->nomJoueur2() , option->tempsDepart(), this);
|
|
|
+ chrono1 = new Chronometre(option->nomJoueur1(), Blanc, option->tempsDepart(), this);
|
|
|
+ chrono2 = new Chronometre(option->nomJoueur2(), Noir, option->tempsDepart(), this);
|
|
|
boutonInverser = new QPushButton ("<->");
|
|
|
+ boutonChangerCouleur = new QPushButton("Changer de couleur");
|
|
|
boutonInverser->setMinimumWidth(50);
|
|
|
boutonInverser->setMaximumWidth(50);
|
|
|
|
|
|
+ ////////////////// Layout Boutons inversion /////////////////////////////////
|
|
|
+ QVBoxLayout *layoutBoutonsInverser = new QVBoxLayout;
|
|
|
+ layoutBoutonsInverser->addStretch(1);
|
|
|
+ layoutBoutonsInverser->addWidget(boutonInverser, 0, Qt::AlignCenter);
|
|
|
+ layoutBoutonsInverser->addWidget(boutonChangerCouleur, 0, Qt::AlignCenter);
|
|
|
+ layoutBoutonsInverser->addSpacing(10);
|
|
|
+
|
|
|
////////////////// Groupe Définition de la classe ///////////////////////////
|
|
|
layoutChrono = new QHBoxLayout;
|
|
|
- layoutChrono->addWidget(chronoBlanc);
|
|
|
- layoutChrono->addWidget(boutonInverser, Qt::AlignVCenter);
|
|
|
- layoutChrono->addWidget(chronoNoir);
|
|
|
+ layoutChrono->addWidget(chrono1);
|
|
|
+ layoutChrono->addLayout(layoutBoutonsInverser);
|
|
|
+ layoutChrono->addWidget(chrono2);
|
|
|
|
|
|
///////////////////////////// Menus ////////////////////////////
|
|
|
QMenu *menuFichier = menuBar()->addMenu("&Fichier");
|
|
@@ -72,10 +80,12 @@ MaFenetre::MaFenetre(Options* mesOptions) :
|
|
|
|
|
|
boutonArreter->setFocusPolicy (Qt::NoFocus);
|
|
|
boutonInverser->setFocusPolicy(Qt::NoFocus);
|
|
|
+ boutonChangerCouleur->setFocusPolicy(Qt::NoFocus);
|
|
|
|
|
|
layoutBoutonSwitch = new QHBoxLayout;
|
|
|
- layoutBoutonSwitch->addWidget (boutonDemarrer);
|
|
|
- layoutBoutonSwitch->addWidget (boutonArreter);
|
|
|
+ layoutBoutonSwitch->addWidget (boutonDemarrer,0, Qt::AlignLeft);
|
|
|
+ layoutBoutonSwitch->addWidget (boutonArreter, 0, Qt::AlignLeft);
|
|
|
+ layoutBoutonSwitch->addStretch(1);
|
|
|
|
|
|
///////////////////////////// Aide /////////////////////////////////////
|
|
|
QLabel *labelAide = new QLabel ("<b>Aide</b><br />Espace : Lancer le chrono/Donner le chrono<br />Entrée : Stopper les deux chronos");
|
|
@@ -96,12 +106,13 @@ MaFenetre::MaFenetre(Options* mesOptions) :
|
|
|
///////////////////////////// connections ///////////////////////////
|
|
|
QObject::connect (boutonDemarrer , SIGNAL(clicked () ) , this , SLOT(demarrer () ));
|
|
|
QObject::connect (boutonInverser , SIGNAL(clicked()) , this , SLOT(inverser()));
|
|
|
+ QObject::connect (boutonChangerCouleur, SIGNAL(clicked() ), this, SLOT(changerCouleur()));
|
|
|
QObject::connect (boutonArreter , SIGNAL(clicked()), this, SLOT (arreter()));
|
|
|
QObject::connect (actionNouveau, SIGNAL(triggered()) , this , SLOT(init()));
|
|
|
QObject::connect (actionOptions , SIGNAL(triggered()), this, SLOT(lancerDialogueOptions()));
|
|
|
QObject::connect (actionQuitter , SIGNAL(triggered()) , qApp , SLOT(quit()));
|
|
|
- QObject::connect (chronoBlanc, SIGNAL(fin()), this, SLOT(afficheGagnant()));
|
|
|
- QObject::connect (chronoNoir, SIGNAL(fin()), this, SLOT(afficheGagnant()));
|
|
|
+ QObject::connect (chrono1, SIGNAL(fin()), this, SLOT(afficheGagnant()));
|
|
|
+ QObject::connect (chrono2, SIGNAL(fin()), this, SLOT(afficheGagnant()));
|
|
|
|
|
|
}
|
|
|
|
|
@@ -110,25 +121,30 @@ void MaFenetre::etatBoutons (bool etatBoutonStart, bool etatBoutonStop, bool eta
|
|
|
boutonDemarrer->setEnabled (etatBoutonStart);
|
|
|
boutonArreter->setEnabled (etatBoutonStop);
|
|
|
boutonInverser->setEnabled(etatBoutonInverser);
|
|
|
- //boutonInverser->setVisible(etatBoutonInverser);
|
|
|
+ boutonChangerCouleur->setEnabled(etatBoutonInverser);
|
|
|
}
|
|
|
|
|
|
////////////////// SLOTS ////////////////////////
|
|
|
void MaFenetre::inverser() {
|
|
|
- layoutChrono->removeWidget(chronoBlanc);
|
|
|
- layoutChrono->removeWidget(chronoNoir);
|
|
|
- Chronometre *chronoTemp = chronoBlanc;
|
|
|
- chronoBlanc = chronoNoir;
|
|
|
- chronoNoir = chronoTemp;
|
|
|
- layoutChrono->insertWidget(0 , chronoBlanc);
|
|
|
- layoutChrono->addWidget(chronoNoir);
|
|
|
+ init();
|
|
|
+ QString temp;
|
|
|
+ temp = option->nomJoueur1();
|
|
|
+ option->setNomJoueur1(option->nomJoueur2());
|
|
|
+ option->setNomJoueur2(temp);
|
|
|
+ chrono1->modifierNomJoueur(option->nomJoueur1());
|
|
|
+ chrono2->modifierNomJoueur(option->nomJoueur2());
|
|
|
+}
|
|
|
+
|
|
|
+void MaFenetre::changerCouleur() {
|
|
|
+ init();
|
|
|
+ chrono1->echangerCouleur(*chrono2);
|
|
|
}
|
|
|
|
|
|
void MaFenetre::demarrer () {
|
|
|
if (marche == false ) {
|
|
|
- chronoBlanc->reinit ();
|
|
|
- chronoNoir->reinit ();
|
|
|
- chronoBlanc->start ();
|
|
|
+ chrono1->reinit ();
|
|
|
+ chrono2->reinit ();
|
|
|
+ chrono1->start ();
|
|
|
marche = true;
|
|
|
etatBoutons (false , true, false);
|
|
|
}
|
|
@@ -136,14 +152,14 @@ void MaFenetre::demarrer () {
|
|
|
|
|
|
void MaFenetre::switcher () {
|
|
|
if (marche == true) {
|
|
|
- chronoBlanc->basculer ();
|
|
|
- chronoNoir->basculer ();
|
|
|
+ chrono1->basculer ();
|
|
|
+ chrono2->basculer ();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void MaFenetre::arreter () {
|
|
|
- chronoBlanc->stop();
|
|
|
- chronoNoir->stop();
|
|
|
+ chrono1->stop();
|
|
|
+ chrono2->stop();
|
|
|
marche = false;
|
|
|
etatBoutons (false , false, true);
|
|
|
}
|
|
@@ -154,15 +170,15 @@ void MaFenetre::afficheGagnant() {
|
|
|
QSound::play(":/ressources/sonnette.wav");
|
|
|
QMessageBox message;
|
|
|
QString texte;
|
|
|
- texte = "Le joueur " + (*chronoBlanc+=*chronoNoir) + " a gagné au temps.";
|
|
|
+ texte = "Le joueur " + (*chrono1+=*chrono2) + " a gagné au temps.";
|
|
|
message.setText(texte);
|
|
|
message.setStandardButtons(QMessageBox::Ok);
|
|
|
message.exec();
|
|
|
}
|
|
|
|
|
|
void MaFenetre::init () {
|
|
|
- chronoBlanc->reinit();
|
|
|
- chronoNoir->reinit();
|
|
|
+ chrono1->reinit();
|
|
|
+ chrono2->reinit();
|
|
|
marche = false;
|
|
|
etatBoutons (true , false, true);
|
|
|
}
|
|
@@ -170,11 +186,11 @@ void MaFenetre::init () {
|
|
|
void MaFenetre::lancerDialogueOptions() {
|
|
|
Dialog dialog (option);
|
|
|
if (dialog.exec()) {
|
|
|
- chronoBlanc->modifierNomJoueur(option->nomJoueur1());
|
|
|
- chronoBlanc->definirTemps(option->tempsDepart());
|
|
|
+ chrono1->modifierNomJoueur(option->nomJoueur1());
|
|
|
+ chrono1->definirTemps(option->tempsDepart());
|
|
|
|
|
|
- chronoNoir->modifierNomJoueur(option->nomJoueur2());
|
|
|
- chronoNoir->definirTemps(option->tempsDepart());
|
|
|
+ chrono2->modifierNomJoueur(option->nomJoueur2());
|
|
|
+ chrono2->definirTemps(option->tempsDepart());
|
|
|
|
|
|
if (marche==false) {
|
|
|
init();
|