#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>
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_);
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:
/*! 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();
{
id: clocksPage
+ property int timeControl //properties cannot be declared as enumerations in QML
property int whiteInitialTime
property int blackInitialTime
property int whiteAdditionalTime
onStatusChanged:
{
if (status == PageStatus.Activating)
- wrappedClocksWidget.startGame("",whiteInitialTime,whiteAdditionalTime,whiteTurnsPerAddition,blackInitialTime,blackAdditionalTime,blackTurnsPerAddition)
+ wrappedClocksWidget.startGame(timeControl,whiteInitialTime,whiteAdditionalTime,whiteTurnsPerAddition,blackInitialTime,blackAdditionalTime,blackTurnsPerAddition)
}
import com.meego 1.0
import QtQuick 1.0
import com.nokia.extras 1.0
+import ChessClocks 1.0
Page {
ListElement
{
name: "Normal clock"
+ timeControl: WrappedClocksWidget.NormalClock
askAddition: false
+ askTurnsPerAddition: false
logoFile: ":/rc/pic/oldclock.png"
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"
}
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()
+ }
}
}
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()
+ }
}
}
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
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"
TextField
{
id: blackTurnsPerAddition
- visible: newGameDialog.askAddition
+ visible: newGameDialog.askTurnsPerAddition
enabled: !equalTimesSwitch.checked
inputMask: "D00"
text: "1"
}
}
+
+
+
}