Now starts the requested time control
authorHeli Hyvättinen <heli.hyvattinen@kymp.net>
Sat, 13 Aug 2011 09:49:28 +0000 (12:49 +0300)
committerHeli Hyvättinen <heli.hyvattinen@kymp.net>
Sat, 13 Aug 2011 09:49:28 +0000 (12:49 +0300)
classes/wrappedclockswidget.cpp
classes/wrappedclockswidget.h
qml/ClocksPage.qml
qml/MainPage.qml

index 93dc7ac..c8c827d 100644 (file)
 #include "wrappedclockswidget.h"
 #include "classes/timecontrol/hourglassclock.h"
 #include "classes/timecontrol/delayclock.h"
+#include "classes/timecontrol/delayafterclock.h"
+#include "classes/timecontrol/fischerclock.h"
+#include "classes/timecontrol/fischerafterclock.h"
+#include "classes/chessclockwidget.h"
 #include <QDebug>
 
 
@@ -34,28 +38,81 @@ WrappedClocksWidget::WrappedClocksWidget(QObject *parent) :
     pBlackClock_ = NULL;
 }
 
-void WrappedClocksWidget::startGame(QString timeControl, int whiteInitialTime, int whiteAdditionalTime, int whiteTurnsPerAddition, int blackInitialTime, int blackAdditionalTime, int blackTurnsPerAddition)
+void WrappedClocksWidget::startGame(TimeControlType timeControl, int whiteInitialTime, int whiteAdditionalTime, int whiteTurnsPerAddition, int blackInitialTime, int blackAdditionalTime, int blackTurnsPerAddition)
 {
 
-//    qDebug() << whiteInitialTime << "white initial time";
+   qDebug() << timeControl << " time control";
 
     deleteOldWidgets();
 
 //    qDebug() << "deleted old widgets";
 
-    pWhiteClock_ = new DelayClock (true,whiteAdditionalTime);
-    pWhiteClock_->setTimeAvailable(whiteInitialTime);
+    switch (timeControl)
+    {
+        case NormalClock:
 
-//    qDebug() << "set white clock";
+            pWhiteClock_ = new ChessClockWidget (true);
+            pWhiteClock_->setTimeAvailable(whiteInitialTime);
 
-    pBlackClock_ = new DelayClock (false,blackAdditionalTime);
-    pBlackClock_->setTimeAvailable(blackInitialTime);
+            pBlackClock_ = new ChessClockWidget (false);
+            pBlackClock_->setTimeAvailable(blackInitialTime);
 
-//    qDebug() << "set black clock";
+            break;
 
-    pClocksWidget_ = new ClocksWidget(pWhiteClock_, pBlackClock_);
+        case AdditionBefore:
+
+            pWhiteClock_ = new FischerClock (true,whiteAdditionalTime,whiteTurnsPerAddition);
+            pWhiteClock_->setTimeAvailable(whiteInitialTime);
+
+            pBlackClock_ = new FischerClock (false,blackAdditionalTime,blackTurnsPerAddition);
+            pBlackClock_->setTimeAvailable(blackInitialTime);
+
+            break;
+
+        case AdditionAfter:
+
+            pWhiteClock_ = new FischerAfterClock (true,whiteAdditionalTime,whiteTurnsPerAddition);
+            pWhiteClock_->setTimeAvailable(whiteInitialTime);
+
+            pBlackClock_ = new FischerAfterClock (false,blackAdditionalTime,blackTurnsPerAddition);
+            pBlackClock_->setTimeAvailable(blackInitialTime);
+
+            break;
+
+        case Delay:
+
+            pWhiteClock_ = new DelayClock (true,whiteAdditionalTime);
+            pWhiteClock_->setTimeAvailable(whiteInitialTime);
+
+            pBlackClock_ = new DelayClock (false,blackAdditionalTime);
+            pBlackClock_->setTimeAvailable(blackInitialTime);
 
+            break;
 
+        case DelayAfter:
+
+            pWhiteClock_ = new DelayAfterClock (true,whiteAdditionalTime);
+            pWhiteClock_->setTimeAvailable(whiteInitialTime);
+
+            pBlackClock_ = new DelayAfterClock (false,blackAdditionalTime);
+            pBlackClock_->setTimeAvailable(blackInitialTime);
+
+            break;
+
+        case HourGlass:
+
+            pWhiteClock_ = new HourGlassClock (true);
+            pWhiteClock_->setTimeAvailable(whiteInitialTime);
+
+            pBlackClock_ = new HourGlassClock (false);
+            pBlackClock_->setTimeAvailable(blackInitialTime);
+
+            break;
+
+    }
+
+
+    pClocksWidget_ = new ClocksWidget(pWhiteClock_, pBlackClock_);
 
     pClocksWidget_->setAttribute(Qt::WA_NoSystemBackground);
     setWidget(pClocksWidget_);
index e49ec93..a8477f8 100644 (file)
 class WrappedClocksWidget : public QGraphicsProxyWidget
 {
     Q_OBJECT
+    Q_ENUMS (TimeControlType)
 public:
     explicit WrappedClocksWidget(QObject *parent = 0);
     virtual ~WrappedClocksWidget();
 
     bool isPlayStarted();
 
+    enum TimeControlType
+    {
+     NormalClock,
+     AdditionBefore,
+     AdditionAfter,
+     Delay,
+     DelayAfter,
+     HourGlass
+    };
+
 signals:
 
 public slots:
@@ -49,8 +60,10 @@ public slots:
     /*! Start a new game
         Times are in milliseconds!
     */
-     void startGame(QString timeControl, int whiteInitialTime, int whiteAdditionalTime, int whiteTurnsPerAddition, int blackInitialTime, int blackAdditionalTime, int blackTurnsPerAddition);
-    /*! Pause game */
+     void startGame(TimeControlType timeControl, int whiteInitialTime, int whiteAdditionalTime, int whiteTurnsPerAddition, int blackInitialTime, int blackAdditionalTime, int blackTurnsPerAddition);
+
+  //   void startNormalClockGame(int whiteInitialTime, int blackInitialTime);
+     /*! Pause game */
      void pause();
      /*! End the game */
      void stopPlay();
index 8860abe..e33fbc4 100644 (file)
@@ -30,6 +30,7 @@ Page
 {
     id: clocksPage
 
+    property int timeControl //properties cannot be declared as enumerations in QML
     property int whiteInitialTime
     property int blackInitialTime
     property int whiteAdditionalTime
@@ -42,7 +43,7 @@ Page
     onStatusChanged:
     {
         if (status == PageStatus.Activating)
-            wrappedClocksWidget.startGame("",whiteInitialTime,whiteAdditionalTime,whiteTurnsPerAddition,blackInitialTime,blackAdditionalTime,blackTurnsPerAddition)
+            wrappedClocksWidget.startGame(timeControl,whiteInitialTime,whiteAdditionalTime,whiteTurnsPerAddition,blackInitialTime,blackAdditionalTime,blackTurnsPerAddition)
     }
 
 
index 26877d4..c1fd1ef 100644 (file)
@@ -24,6 +24,7 @@ import QtQuick 1.1
 import com.meego 1.0
 import QtQuick 1.0
 import com.nokia.extras 1.0
+import ChessClocks 1.0
 
 
 Page {
@@ -60,7 +61,9 @@ Page {
         ListElement
         {
             name: "Normal clock"
+            timeControl: WrappedClocksWidget.NormalClock
             askAddition: false
+            askTurnsPerAddition: false
             logoFile: ":/rc/pic/oldclock.png"
 
 
@@ -69,35 +72,45 @@ Page {
         ListElement
         {
             name: "Addition before"
+            timeControl: WrappedClocksWidget.AdditionBefore
             askAddition: true
+            askTurnsPerAddition: true
             logoFile: ":/rc/pic/addbefore.png"
         }
 
         ListElement
         {
             name: "Addition after"
+            timeControl: WrappedClocksWidget.AdditionAfter
             askAddition: true
+            askTurnsPerAddition: true
             logoFile: ":/rc/pic/addafter.png"
         }
 
         ListElement
         {
             name: "Delay"
+            timeControl: WrappedClocksWidget.Delay
             askAddition: true
+            askTurnsPerAddition: false
             logoFile: ":/rc/pic/pausebefore.png"
         }
 
         ListElement
         {
             name: "Delay after"
+            timeControl: WrappedClocksWidget.DelayAfter
             askAddition: true
+            askTurnsPerAddition: false
             logoFile: ":/rc/pic/pauseafter.png"
         }
 
         ListElement
         {
             name:"Hour Glass"
+            timeControl: WrappedClocksWidget.HourGlass
             askAddition: false
+            askTurnsPerAddition: false
             logoFile:":/rc/pic/hourglass.png"
         }
 
@@ -125,7 +138,14 @@ Page {
                 MouseArea
                 {
                     anchors.fill: parent
-                    onClicked: {newGameDialog.name = name; newGameDialog.askAddition = askAddition; newGameDialog.open()}
+                    onClicked:
+                    {
+                        newGameDialog.name = name
+                        newGameDialog.timeControl = timeControl
+                        newGameDialog.askAddition = askAddition
+                        newGameDialog.askTurnsPerAddition = askTurnsPerAddition
+                        newGameDialog.open()
+                    }
                 }
             }
 
@@ -139,7 +159,14 @@ Page {
                 MouseArea
                 {
                     anchors.fill: parent
-                    onClicked: {newGameDialog.name = name; newGameDialog.askAddition = askAddition; newGameDialog.open()}
+                    onClicked:
+                    {
+                        newGameDialog.name = name
+                        newGameDialog.timeControl = timeControl
+                        newGameDialog.askAddition = askAddition
+                        newGameDialog.askTurnsPerAddition = askTurnsPerAddition
+                        newGameDialog.open()
+                    }
                 }
             }
 
@@ -155,10 +182,13 @@ Page {
         id:newGameDialog
 
         property string name
+        property int timeControl //QML does not allow properties to be declared as enums...
         property bool askAddition
+        property bool askTurnsPerAddition
 
         onAccepted:
         {
+            clocksPage.timeControl = timeControl
             clocksPage.whiteInitialTime = 60*60*1000*whiteInitialTime.hours+60*1000*whiteInitialTime.minutes+1000*whiteInitialTime.seconds
             clocksPage.blackInitialTime = 60*60*1000*blackInitialTime.hours+60*1000*blackInitialTime.minutes+1000*blackInitialTime.seconds
             clocksPage.whiteAdditionalTime = 60*60*1000*whiteAdditionalTime.hours+60*1000*whiteAdditionalTime.minutes+1000*whiteAdditionalTime.seconds
@@ -345,14 +375,14 @@ Page {
                     text:  "Turns per addition"
                     color: "white"
                     font.pointSize: 26
-                    visible: newGameDialog.askAddition
+                    visible: newGameDialog.askTurnsPerAddition
 //                    anchors.top: additionalTimeText.bottom
 //                    anchors.horizontalCenter: parent.horizontalCenter
                 }
                 TextField
                 {
                     id: whiteTurnsPerAddition
-                    visible: newGameDialog.askAddition
+                    visible: newGameDialog.askTurnsPerAddition
 
                     inputMask: "D00"
                     text: "1"
@@ -363,7 +393,7 @@ Page {
                 TextField
                 {
                     id: blackTurnsPerAddition
-                    visible: newGameDialog.askAddition
+                    visible: newGameDialog.askTurnsPerAddition
                     enabled: !equalTimesSwitch.checked
                     inputMask: "D00"
                     text: "1"
@@ -427,6 +457,9 @@ Page {
 
         }
     }
+
+
+
 }