| 
					
				 | 
			
			
				@@ -44,17 +44,25 @@ MaFenetre::MaFenetre(Options* mesOptions) : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     QWidget *centralWidget = new QWidget;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    chronoBlanc = new Chronometre(option->nomJoueur1(), "white", option->tempsDepart(), this);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    chronoNoir = new Chronometre(option->nomJoueur2(), "black", 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  , 0, Qt::AlignVCenter);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    layoutChrono->addWidget(chronoNoir);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutChrono->addWidget(chrono1);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutChrono->addLayout(layoutBoutonsInverser);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutChrono->addWidget(chrono2);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ///////////////////////////// Menus ////////////////////////////
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     QMenu *menuFichier = menuBar()->addMenu("&Fichier");
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -72,6 +80,7 @@ MaFenetre::MaFenetre(Options* mesOptions) : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	boutonArreter->setFocusPolicy (Qt::NoFocus);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     boutonInverser->setFocusPolicy(Qt::NoFocus);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    boutonChangerCouleur->setFocusPolicy(Qt::NoFocus);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	layoutBoutonSwitch = new QHBoxLayout;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     layoutBoutonSwitch->addWidget (boutonDemarrer,0, Qt::AlignLeft);
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,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()));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -111,25 +121,30 @@ void MaFenetre::etatBoutons (bool etatBoutonStart, bool etatBoutonStop, bool eta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     boutonDemarrer->setEnabled (etatBoutonStart);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     boutonArreter->setEnabled (etatBoutonStop);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     boutonInverser->setEnabled(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);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -137,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);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -155,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);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -171,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();
 
			 |