浏览代码

Ajout d'une sonnette en fin de partie

François Drouhard 6 年之前
父节点
当前提交
7ef9342bcf
共有 7 个文件被更改,包括 54 次插入16 次删除
  1. 14 4
      Chronometre.cpp
  2. 3 1
      Chronometre.h
  3. 15 6
      Dialog.cpp
  4. 2 0
      Dialog.h
  5. 5 2
      MaFenetre.cpp
  6. 11 2
      options.cpp
  7. 4 1
      options.h

+ 14 - 4
Chronometre.cpp

@@ -31,11 +31,16 @@
 #include <QTime>
 #include <QSound>
 
-Chronometre::Chronometre (const QString & nom , int tempsDepart, QWidget * parent = nullptr) :
+Chronometre::Chronometre (const QString & nom , int tempsDepart, bool son, QWidget * parent = nullptr) :
     QGroupBox (nom , parent),
     ms(0),
-    msTempsDepart(0)
+    msTempsDepart(0),
+    sonnette(son)
 {
+    // init des compteurs
+    definirTemps(tempsDepart);
+    ms = msTempsDepart;
+
     setFlat(false);
 
     temps = new QTime (0,0,0,0);
@@ -63,13 +68,18 @@ void Chronometre::modifierNomJoueur(QString joueur) {
 }
 
 void Chronometre::definirTemps(int tempsDepart) {
-    msTempsDepart = tempsDepart*1000;
+    msTempsDepart = tempsDepart*1000;//*60;
+}
+
+void Chronometre::modifierSon(bool son) {
+    sonnette = son;
 }
 
 void Chronometre::refresh () {
     ms -= 10;
     if (ms <= 0) {
-        QSound::play(":/ressources/sonnette.wav");
+        if (sonnette == true)
+            QSound::play(":/ressources/sonnette.wav");
         emit fin();
     }
 	affichage ();

+ 3 - 1
Chronometre.h

@@ -36,7 +36,7 @@ class Chronometre : public QGroupBox {
 	Q_OBJECT
 	
 	public:
-    Chronometre (const QString & nom , int tempsDepart, QWidget * parent);
+    Chronometre (const QString & nom , int tempsDepart, bool son, QWidget * parent);
 	void start ();
 	void stop ();
 	void affichage ();
@@ -44,6 +44,7 @@ class Chronometre : public QGroupBox {
 	void basculer ();
     void modifierNomJoueur (QString joueur);
     void definirTemps (int tempsDepart);
+    void modifierSon(bool son);
 
     signals:
     void fin();
@@ -55,6 +56,7 @@ class Chronometre : public QGroupBox {
 	private:
     int ms;
     int msTempsDepart;
+    bool sonnette;
 	QTimer *timer;
     QTime  *temps;
     QHBoxLayout *ecranLayout;

+ 15 - 6
Dialog.cpp

@@ -5,16 +5,20 @@
 #include <QSpinBox>
 #include <QDialogButtonBox>
 #include <QLabel>
+#include <QFormLayout>
+#include <QCheckBox>
 
 Dialog::Dialog(Options *option, QWidget *parent) :
     QDialog(parent),
     _option(option)
 {
     QHBoxLayout *layoutLineEdit = new QHBoxLayout;
-    QHBoxLayout *layoutTemps    = new QHBoxLayout;
-    QVBoxLayout *layoutDialog = new QVBoxLayout;
+    //QHBoxLayout *layoutTemps    = new QHBoxLayout;
+    QVBoxLayout *layoutDialog   = new QVBoxLayout;
+    QFormLayout *layoutForm      = new QFormLayout;
     QDialogButtonBox *boutonJouer = new QDialogButtonBox (QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
-    QLabel *labelTempsDepart= new QLabel("Temps départ (minutes)");
+    checkBoxSon      = new QCheckBox();
+    checkBoxSon->setChecked(option->son());
     spinTempsDepart     = new QSpinBox;
     spinTempsDepart->setMinimum(1);
     spinTempsDepart->setMaximum(300);
@@ -25,9 +29,13 @@ Dialog::Dialog(Options *option, QWidget *parent) :
 
     layoutLineEdit->addWidget(joueur1LineEdit);
     layoutLineEdit->addWidget(joueur2LineEdit);
-    layoutTemps->addWidget(labelTempsDepart);
-    layoutTemps->addWidget(spinTempsDepart);
-    layoutDialog->addLayout(layoutTemps);
+    //layoutTemps->addWidget(labelTempsDepart);
+    //layoutTemps->addWidget(spinTempsDepart);
+    layoutForm->addRow("Son", checkBoxSon);
+    layoutForm->addRow("Temps de départ (minutes)", spinTempsDepart);
+
+    layoutDialog->addLayout(layoutForm);
+    //layoutDialog->addLayout(layoutTemps);
     layoutDialog->addLayout(layoutLineEdit);
     layoutDialog->addWidget(boutonJouer);
     setLayout(layoutDialog);
@@ -44,5 +52,6 @@ void Dialog::valider() {
     _option->setNomJoueur1(joueur1LineEdit->text());
     _option->setNomJoueur2(joueur2LineEdit->text());
     _option->setTempsDepart(spinTempsDepart->value());
+     _option->setSon(checkBoxSon->isChecked());
     this->accept();
 }

+ 2 - 0
Dialog.h

@@ -6,6 +6,7 @@ class QLineEdit;
 class QSpinBox;
 class QString;
 class Options;
+class QCheckBox;
 
 class Dialog : public QDialog
 {
@@ -24,6 +25,7 @@ private:
     QLineEdit* joueur1LineEdit;
     QLineEdit* joueur2LineEdit;
     QSpinBox*  spinTempsDepart;
+    QCheckBox* checkBoxSon;
 
 };
 

+ 5 - 2
MaFenetre.cpp

@@ -43,8 +43,8 @@ MaFenetre::MaFenetre(Options* mesOptions) :
 {
     QWidget *centralWidget = new QWidget;
 
-    chrono1 = new Chronometre(option->nomJoueur1() , option->tempsDepart(), this);
-    chrono2 = new Chronometre(option->nomJoueur2() , option->tempsDepart(), this);
+    chrono1 = new Chronometre(option->nomJoueur1() , option->tempsDepart(), option->son(), this);
+    chrono2 = new Chronometre(option->nomJoueur2() , option->tempsDepart(), option->son(), this);
     boutonInverser = new QPushButton ("<->");
     boutonInverser->setMinimumWidth(50);
     boutonInverser->setMaximumWidth(50);
@@ -165,9 +165,12 @@ void MaFenetre::lancerDialogueOptions() {
     if (dialog.exec()) {
         chrono1->modifierNomJoueur(option->nomJoueur1());
         chrono1->definirTemps(option->tempsDepart());
+        chrono1->modifierSon(option->son());
 
         chrono2->modifierNomJoueur(option->nomJoueur2());
         chrono2->definirTemps(option->tempsDepart());
+        chrono2->modifierSon(option->son());
+
         if (marche==false) {
             init();
         }

+ 11 - 2
options.cpp

@@ -1,11 +1,12 @@
 #include "options.h"
 #include <QApplication>
 
-Options::Options(QString joueur1, QString joueur2, int temps, QObject *parent) :
+Options::Options(QString joueur1, QString joueur2, int temps, bool son, QObject *parent) :
     QObject(parent),
     _tempsDepart(temps),
     _nomJoueur1 (joueur1),
-    _nomJoueur2 (joueur2)
+    _nomJoueur2 (joueur2),
+    _son (son)
 {
 }
 
@@ -26,6 +27,10 @@ void Options::setTempsDepart(int temps) {
     _tempsDepart = temps;
 }
 
+void Options::setSon (bool son) {
+    _son = son;
+}
+
 QString Options::nomJoueur1() const {
     return _nomJoueur1;
 }
@@ -37,3 +42,7 @@ QString Options::nomJoueur2() const {
 int Options::tempsDepart() const {
     return _tempsDepart;
 }
+
+bool Options::son() const {
+    return _son;
+}

+ 4 - 1
options.h

@@ -9,14 +9,16 @@ class Options : public QObject
 {
 
 public:
-    explicit Options (QString joueur1 = "Joueur 1", QString joueur2 = "Joueur 2", int temps = 5, QObject *parent = nullptr);
+    explicit Options (QString joueur1 = "Joueur 1", QString joueur2 = "Joueur 2", int temps = 5, bool son = true, QObject *parent = nullptr);
     virtual ~Options();
     void setTempsDepart (int temps);
     void setNomJoueur1 (QString joueur);
     void setNomJoueur2 (QString joueur);
+    void setSon (bool son);
     QString nomJoueur1 () const;
     QString nomJoueur2 () const;
     int tempsDepart () const;
+    bool son () const;
 
 public slots:
 
@@ -26,6 +28,7 @@ private:
     int _tempsDepart;
     QString _nomJoueur1;
     QString _nomJoueur2;
+    bool    _son;
 
 };