|
@@ -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) {
|