| 
					
				 | 
			
			
				@@ -28,18 +28,25 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include <QKeyEvent>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include <QApplication>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include <QLabel>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QDialog>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QLineEdit>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include <QDialogButtonBox>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-MaFenetre::MaFenetre() : QWidget () {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+MaFenetre::MaFenetre() :
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QWidget (),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nomJoueur1 ("Joueur 1"),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nomJoueur2 ("Joueur 2")
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	marche = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	chrono1 = new Chronometre("Joueur 1" , this);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	chrono2 = new Chronometre("Joueur 2" , this);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    chrono1 = new Chronometre(nomJoueur1 , this);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    chrono2 = new Chronometre(nomJoueur2 , this);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    boutonInverser = new QPushButton ("<->");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	////////////////// Groupe Définition de la classe ///////////////////////////
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	layoutChrono = new QHBoxLayout;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutChrono = new QHBoxLayout;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	layoutChrono->addWidget(chrono1);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutChrono->addWidget(boutonInverser);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	layoutChrono->addWidget(chrono2);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/*groupChrono = new QGroupBox ("Chronomètre d'échecs");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	groupChrono->setLayout (layoutChrono);*/
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	///////////////////////////// Boutons   /////////////////////////////
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -51,7 +58,8 @@ MaFenetre::MaFenetre() : QWidget () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	boutonArreter->setFocusPolicy (Qt::NoFocus);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	boutonSwitch->setFocusPolicy (Qt::NoFocus);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	boutonInit->setFocusPolicy (Qt::NoFocus);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    boutonInverser->setFocusPolicy(Qt::NoFocus);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	etatBoutons (true , false , false , false);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	layoutBoutonSwitch = new QHBoxLayout;
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -70,7 +78,6 @@ MaFenetre::MaFenetre() : QWidget () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ///////////////////////////// Aide /////////////////////////////////////
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     QLabel *labelAide = new QLabel ("<b>Aide</b><br />Espace : Lancer le chrono/Donner le chrono<br />Entrée : Stopper les deux chronos");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/////////////////////////////Mise en page finale ///////////////////////////
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	layoutComplet = new QVBoxLayout;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	layoutComplet->addLayout (layoutChrono);
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -79,12 +86,17 @@ MaFenetre::MaFenetre() : QWidget () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	layoutComplet->addLayout (layoutBoutons);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	setLayout (layoutComplet);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	setWindowTitle ("ChronoCheckMate");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ///////////////////////////// Ouverture de la boite de dialogue /////////////////
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    definirNomJoueurs();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	///////////////////////////// connections ///////////////////////////
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	QObject::connect (boutonQuitter , SIGNAL(clicked ()) , qApp , SLOT(quit ())) ;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	QObject::connect (boutonDemarrer , SIGNAL (clicked () ) , this , SLOT (demarrer () ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	QObject::connect (boutonSwitch , SIGNAL (clicked() ) , this , SLOT (switcher() ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	QObject::connect (boutonArreter , SIGNAL (clicked() ) , this , SLOT (arreter() ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	QObject::connect (boutonInit , SIGNAL (clicked () ) , this , SLOT (init () ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QObject::connect (boutonDemarrer , SIGNAL(clicked () ) , this , SLOT(demarrer () ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QObject::connect (boutonSwitch , SIGNAL(clicked() ) , this , SLOT(switcher() ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QObject::connect (boutonArreter , SIGNAL(clicked() ) , this , SLOT(arreter() ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QObject::connect (boutonInit , SIGNAL(clicked () ) , this , SLOT(init () ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QObject::connect (boutonInverser , SIGNAL(clicked()) , this , SLOT(inverser()));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ///////////////// Méthodes ////////////////////
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -95,7 +107,18 @@ void MaFenetre::etatBoutons (bool bouton1, bool bouton2 , bool bouton3 , bool bo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	boutonInit->setEnabled (bouton4);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ////////////////// SLOTS ////////////////////////
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void MaFenetre::inverser() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutChrono->removeWidget(chrono1);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutChrono->removeWidget(chrono2);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Chronometre *chronoTemp = chrono1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    chrono1 = chrono2;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    chrono2 = chronoTemp;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutChrono->insertWidget(0 , chrono1);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutChrono->addWidget(chrono2);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void MaFenetre::demarrer () {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (marche == false ) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		chrono1->reinit ();
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -106,6 +129,12 @@ void MaFenetre::demarrer () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void MaFenetre::modifierNomJoueurs() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    chrono1->modifierNomJoueur(nomJoueur1);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    chrono2->modifierNomJoueur(nomJoueur2);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void MaFenetre::switcher () {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (marche == true) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		chrono1->basculer ();
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -122,12 +151,37 @@ void MaFenetre::arreter () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void MaFenetre::init () {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (marche == false) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		chrono1->reinit();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        chrono1->reinit();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		chrono2->reinit();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		etatBoutons (true , false , false , false);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void MaFenetre::definirNomJoueurs() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QDialog *dialog = new QDialog (this);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QHBoxLayout *layoutLineEdit = new QHBoxLayout;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QVBoxLayout *layoutDialog = new QVBoxLayout;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QDialogButtonBox *boutonJouer = new QDialogButtonBox (QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QLineEdit *joueur1LineEdit = new QLineEdit(nomJoueur1 , this);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QLineEdit *joueur2LineEdit = new QLineEdit(nomJoueur2 , this);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    joueur1LineEdit->selectAll();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutLineEdit->addWidget(joueur1LineEdit);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutLineEdit->addWidget(joueur2LineEdit);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutDialog->addLayout(layoutLineEdit);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    layoutDialog->addWidget(boutonJouer);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    dialog->setLayout(layoutDialog);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QObject::connect(boutonJouer , SIGNAL(accepted()) , dialog, SLOT(accept()));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    QObject::connect(boutonJouer , SIGNAL(rejected()) , dialog, SLOT(close()));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (dialog->exec()) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        nomJoueur1 = joueur1LineEdit->text();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        nomJoueur2 = joueur2LineEdit->text();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        modifierNomJoueurs();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void MaFenetre::keyReleaseEvent (QKeyEvent * evenement) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (evenement->key() == Qt::Key_Space) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (marche == true) {
 
			 |