Explorar el Código

Déplacement des options dans une classe

François Drouhard hace 6 años
padre
commit
91b935afe7
Se han modificado 7 ficheros con 102 adiciones y 24 borrados
  1. 4 2
      ChronoCheckMate.pro
  2. 5 4
      Dialog.cpp
  3. 2 1
      Dialog.h
  4. 18 14
      MaFenetre.cpp
  5. 2 3
      MaFenetre.h
  6. 39 0
      options.cpp
  7. 32 0
      options.h

+ 4 - 2
ChronoCheckMate.pro

@@ -20,6 +20,8 @@ DEFINES += QT_DEPRECATED_WARNINGS
 
 # Input
 HEADERS += Chronometre.h MaFenetre.h \
-    Dialog.h
+    Dialog.h \
+    options.h
 SOURCES += Chronometre.cpp MaFenetre.cpp main.cpp \
-    Dialog.cpp
+    Dialog.cpp \
+    options.cpp

+ 5 - 4
Dialog.cpp

@@ -1,11 +1,12 @@
 #include "Dialog.h"
+#include "options.h"
 #include <QBoxLayout>
 #include <QLineEdit>
 #include <QSpinBox>
 #include <QDialogButtonBox>
 #include <QLabel>
 
-Dialog::Dialog(QString nom1, QString nom2, int tempsDepart, QWidget *parent) :
+Dialog::Dialog(Options *option, QWidget *parent) :
     QDialog(parent)
 {
     QHBoxLayout *layoutLineEdit = new QHBoxLayout;
@@ -16,9 +17,9 @@ Dialog::Dialog(QString nom1, QString nom2, int tempsDepart, QWidget *parent) :
     spinTempsDepart     = new QSpinBox;
     spinTempsDepart->setMinimum(0);
     spinTempsDepart->setMaximum(300);
-    spinTempsDepart->setValue(tempsDepart);
-    joueur1LineEdit = new QLineEdit(nom1 , this);
-    joueur2LineEdit = new QLineEdit(nom2 , this);
+    spinTempsDepart->setValue(option->tempsDepart());
+    joueur1LineEdit = new QLineEdit(option->nomJoueur1() , this);
+    joueur2LineEdit = new QLineEdit(option->nomJoueur2() , this);
     joueur1LineEdit->selectAll();
 
     layoutLineEdit->addWidget(joueur1LineEdit);

+ 2 - 1
Dialog.h

@@ -5,12 +5,13 @@
 class QLineEdit;
 class QSpinBox;
 class QString;
+class Options;
 
 class Dialog : public QDialog
 {
     Q_OBJECT
 public:
-    explicit Dialog(QString nom1, QString nom2, int tempsDepart, QWidget *parent = nullptr);
+    explicit Dialog(Options *option, QWidget *parent = nullptr);
     ~Dialog();
     QString joueur1 () const;
     QString joueur2 () const;

+ 18 - 14
MaFenetre.cpp

@@ -22,6 +22,7 @@
  
 #include "MaFenetre.h"
 #include "Chronometre.h"
+#include "options.h"
 #include "Dialog.h"
 #include <QMenuBar>
 #include <QHBoxLayout>
@@ -37,15 +38,13 @@
 
 MaFenetre::MaFenetre() :
     QMainWindow (),
-    marche(false),
-    nomJoueur1 ("Joueur 1"),
-    nomJoueur2 ("Joueur 2"),
-    tempsDepart(5)
+    marche(false)
 {
     QWidget *centralWidget = new QWidget;
 
-    chrono1 = new Chronometre(nomJoueur1 , tempsDepart, this);
-    chrono2 = new Chronometre(nomJoueur2 , tempsDepart, this);
+    option = new Options ("Bibi", "baba", 6);
+    chrono1 = new Chronometre(option->nomJoueur1() , option->tempsDepart(), this);
+    chrono2 = new Chronometre(option->nomJoueur2() , option->tempsDepart(), this);
     boutonInverser = new QPushButton ("<->");
     boutonInverser->setMinimumWidth(50);
     boutonInverser->setMaximumWidth(50);
@@ -94,6 +93,7 @@ MaFenetre::MaFenetre() :
     ///////////////////////////// Ouverture de la boite de dialogue /////////////////
     definirNomJoueurs();
 
+
 	///////////////////////////// connections ///////////////////////////
     QObject::connect (boutonDemarrer , SIGNAL(clicked () ) , this , SLOT(demarrer () ));
     QObject::connect (boutonInverser , SIGNAL(clicked()) , this , SLOT(inverser()));
@@ -134,13 +134,13 @@ void MaFenetre::demarrer () {
 }
 
 void MaFenetre::modifierNomJoueurs() {
-    chrono1->modifierNomJoueur(nomJoueur1);
-    chrono2->modifierNomJoueur(nomJoueur2);
+    chrono1->modifierNomJoueur(option->nomJoueur1());
+    chrono2->modifierNomJoueur(option->nomJoueur2());
 }
 
 void MaFenetre::modifierTemps() {
-    chrono1->definirTemps(tempsDepart);
-    chrono2->definirTemps(tempsDepart);
+    chrono1->definirTemps(option->tempsDepart());
+    chrono2->definirTemps(option->tempsDepart());
 }
 
 void MaFenetre::switcher () {
@@ -165,13 +165,17 @@ void MaFenetre::init () {
 }
 
 void MaFenetre::definirNomJoueurs() {
-    Dialog dialog(nomJoueur1, nomJoueur2, tempsDepart, this);
+    Dialog dialog(option);
     if (dialog.exec()) {
-        nomJoueur1 = dialog.joueur1();
-        nomJoueur2 = dialog.joueur2();
-        tempsDepart = dialog.tempsDepart();
+        option->setNomJoueur1(dialog.joueur1());
+        option->setNomJoueur2(dialog.joueur2());
+        option->setTempsDepart(dialog.tempsDepart());
         modifierTemps();
         modifierNomJoueurs();
+        if (marche==false) {
+            chrono1->reinit();
+            chrono2->reinit();
+        }
     }
 }
 

+ 2 - 3
MaFenetre.h

@@ -30,6 +30,7 @@ class QVBoxLayout;
 class QHBoxLayout;
 class QPushButton;
 class QLineEdit;
+class Options;
 
 class MaFenetre : public QMainWindow { // On hérite de QMainWindow (IMPORTANT)
 	Q_OBJECT
@@ -52,9 +53,7 @@ class MaFenetre : public QMainWindow { // On hérite de QMainWindow (IMPORTANT)
 	void keyReleaseEvent (QKeyEvent * evenement);
 
 	bool marche;
-    QString nomJoueur1;
-    QString nomJoueur2;
-    int     tempsDepart;
+    Options     *option;
 	Chronometre *chrono1;
 	Chronometre *chrono2;
     QLineEdit   *joueur1LineEdit;

+ 39 - 0
options.cpp

@@ -0,0 +1,39 @@
+#include "options.h"
+#include <QApplication>
+
+Options::Options(QString joueur1, QString joueur2, int temps, QObject *parent) :
+    QObject(parent),
+    _tempsDepart(temps),
+    _nomJoueur1 (joueur1),
+    _nomJoueur2 (joueur2)
+{
+}
+
+Options::~Options ()
+{
+
+}
+
+void Options::setNomJoueur1(QString joueur) {
+    _nomJoueur1 = joueur;
+}
+
+void Options::setNomJoueur2(QString joueur) {
+    _nomJoueur2 = joueur;
+}
+
+void Options::setTempsDepart(int temps) {
+    _tempsDepart = temps;
+}
+
+QString Options::nomJoueur1() const {
+    return _nomJoueur1;
+}
+
+QString Options::nomJoueur2() const {
+    return _nomJoueur2;
+}
+
+int Options::tempsDepart() const {
+    return _tempsDepart;
+}

+ 32 - 0
options.h

@@ -0,0 +1,32 @@
+#ifndef OPTIONS_H
+#define OPTIONS_H
+
+#include <QApplication>
+
+class QString;
+
+class Options : public QObject
+{
+
+public:
+    explicit Options (QString joueur1 = "Joueur 1", QString joueur2 = "Joueur 2", int temps = 5, QObject *parent = nullptr);
+    virtual ~Options();
+    void setTempsDepart (int temps);
+    void setNomJoueur1 (QString joueur);
+    void setNomJoueur2 (QString joueur);
+    QString nomJoueur1 () const;
+    QString nomJoueur2 () const;
+    int tempsDepart () const;
+
+public slots:
+
+signals:
+
+private:
+    int _tempsDepart;
+    QString _nomJoueur1;
+    QString _nomJoueur2;
+
+};
+
+#endif // OPTIONS_H