From 5f1c6535de268479623d4bb6f27abca3102639f2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Heli=20Hyv=C3=A4ttinen?= Date: Mon, 3 Oct 2011 21:44:27 +0300 Subject: [PATCH] Settings does not work Javascript handles all numbers as floats... Needs a new approach. --- classes/settings.cpp | 20 ++++++++++---------- classes/settings.h | 24 +++++++++++++----------- qml/NewGameDialogPage.qml | 38 +++++++++++++++++++------------------- 3 files changed, 42 insertions(+), 40 deletions(-) diff --git a/classes/settings.cpp b/classes/settings.cpp index 647703f..cfb37ae 100644 --- a/classes/settings.cpp +++ b/classes/settings.cpp @@ -9,7 +9,7 @@ Settings::Settings(QObject *parent) : -QString Settings::getGroupName(WrappedClocksWidget::TimeControlType timeControl) +QString Settings::getGroupName(int timeControl) { //Using same groups and keys in QSettings as the maemo version //just in case Maemo version would move to use QML someday @@ -57,7 +57,7 @@ return groupString; } - int Settings::getTurnsPerAddition(WrappedClocksWidget::TimeControlType timeControl, bool isWhite) + int Settings::getTurnsPerAddition(int timeControl, bool isWhite) { QSettings settings; @@ -71,7 +71,7 @@ return groupString; } - int Settings::getInitialTime(WrappedClocksWidget::TimeControlType timeControl, bool isWhite) + int Settings::getInitialTime(int timeControl, bool isWhite) { QSettings settings; settings.beginGroup(getGroupName(timeControl)); @@ -89,7 +89,7 @@ return groupString; return settings.value("BlackInitial",defaultTime).toInt(); } - int Settings::getAdditionalTime(WrappedClocksWidget::TimeControlType timeControl, bool isWhite) + int Settings::getAdditionalTime(int timeControl, bool isWhite) { QSettings settings; settings.beginGroup(getGroupName(timeControl)); @@ -97,10 +97,10 @@ return groupString; if (isWhite) return settings.value("WhiteAddition",30*1000).toInt(); else - return settings.value("BlackAddition",30*100).toInt(); + return settings.value("BlackAddition",30*1000).toInt(); } - bool Settings::isEqualTimes(WrappedClocksWidget::TimeControlType timeControl) + bool Settings::isEqualTimes(int timeControl) { QSettings settings; settings.beginGroup(getGroupName(timeControl)); @@ -108,7 +108,7 @@ return groupString; return settings.value("Equals",false).toBool(); } - void Settings::setTurnsPerAddition(WrappedClocksWidget::TimeControlType timeControl, bool isWhite, int turns) + void Settings::setTurnsPerAddition(int timeControl, bool isWhite, int turns) { QSettings settings; settings.beginGroup(getGroupName(timeControl)); @@ -119,7 +119,7 @@ return groupString; settings.setValue("BlackPerTurns",turns); } - void Settings::setInitialTime(WrappedClocksWidget::TimeControlType timeControl, bool isWhite, int time) + void Settings::setInitialTime(int timeControl, bool isWhite, int time) { QSettings settings; settings.beginGroup(getGroupName(timeControl)); @@ -130,7 +130,7 @@ return groupString; settings.setValue("BlackItnitial",time); } - void Settings::setAdditionalTime(WrappedClocksWidget::TimeControlType timeControl, bool isWhite, int time) + void Settings::setAdditionalTime(int timeControl, bool isWhite, int time) { QSettings settings; settings.beginGroup(getGroupName(timeControl)); @@ -141,7 +141,7 @@ return groupString; settings.setValue("BlackAddition",time); } - void Settings::setEqualTimes(WrappedClocksWidget::TimeControlType timeControl, bool on) + void Settings::setEqualTimes(int timeControl, bool on) { QSettings settings; settings.beginGroup(getGroupName(timeControl)); diff --git a/classes/settings.h b/classes/settings.h index 49d5f81..bfefb4f 100644 --- a/classes/settings.h +++ b/classes/settings.h @@ -5,15 +5,17 @@ #include "classes/wrappedclockswidget.h" -/*! A class that gives accedd to settings +/*! A class that gives access to settings Used to save the last used dialog settings. Uses QSettings internally. Note: not compatible with the settings used in the Maemo versions. The group names are the same, but the times are saved as ints (milliseconds) rather than QTimes. +Time Control is passed as int due to QML problem, but *must* be a valid +WrappedClocksWidget::TimeControlType enum to work. (All other values are interpreted as "Normal Clock" @author Heli Hyvättinen -@date 2011-09-28 +@date 2011-10-03 @version 1.9.1 */ @@ -28,27 +30,27 @@ public: @param timeControl Time control for which the setting is queried @param isWhite true for white player, false for black */ - Q_INVOKABLE int getTurnsPerAddition(WrappedClocksWidget::TimeControlType timeControl, bool isWhite); + Q_INVOKABLE int getTurnsPerAddition(int timeControl, bool isWhite); /*! Returns intitial time (in milliseconds) from settings. @param timeControl Time control for which the setting is queried @param isWhite true for white player, false for black */ - Q_INVOKABLE int getInitialTime(WrappedClocksWidget::TimeControlType timeControl, bool isWhite); + Q_INVOKABLE int getInitialTime(int timeControl, bool isWhite); /*! Returns additional time (in milliseconds) from settings. @param timeControl Time control for which the setting is queried @param isWhite true for white player, false for black */ - Q_INVOKABLE int getAdditionalTime(WrappedClocksWidget::TimeControlType timeControl, bool isWhite); + Q_INVOKABLE int getAdditionalTime(int timeControl, bool isWhite); /*! Returns whether the equal times is set in the settings @param timeControl Time control for which the setting is queried */ - Q_INVOKABLE bool isEqualTimes(WrappedClocksWidget::TimeControlType timeControl); + Q_INVOKABLE bool isEqualTimes(int timeControl); @@ -62,7 +64,7 @@ public slots: @param isWhite true for white player, false for black @param turns The value to be saved */ - void setTurnsPerAddition(WrappedClocksWidget::TimeControlType timeControl, bool isWhite, int turns); + void setTurnsPerAddition(int timeControl, bool isWhite, int turns); /*! Sets initial time in settings. @@ -70,7 +72,7 @@ public slots: @param isWhite true for white player, false for black @param time The time to be saved, in milliseconds */ - void setInitialTime(WrappedClocksWidget::TimeControlType timeControl, bool isWhite, int time); + void setInitialTime(int timeControl, bool isWhite, int time); /*! Sets additional time in settings. @@ -79,16 +81,16 @@ public slots: @param time The time to be saved, in milliseconds */ - void setAdditionalTime(WrappedClocksWidget::TimeControlType timeControl, bool isWhite, int time); + void setAdditionalTime(int timeControl, bool isWhite, int time); /*! Sets the equal times setting @param timeControl Time control for which the setting is set */ - void setEqualTimes(WrappedClocksWidget::TimeControlType timeControl,bool on); + void setEqualTimes(int timeControl,bool on); protected: - QString getGroupName(WrappedClocksWidget::TimeControlType timeControl); + QString getGroupName(int timeControl); }; diff --git a/qml/NewGameDialogPage.qml b/qml/NewGameDialogPage.qml index 83753fc..b24c78a 100644 --- a/qml/NewGameDialogPage.qml +++ b/qml/NewGameDialogPage.qml @@ -44,32 +44,33 @@ Page { id: settings } - Component.onCompleted: + onTimeControlChanged: { equalTimesSwitch = settings.isEqualTimes(timeControl) var whiteInitial = settings.getInitialTime(timeControl,true) - whiteInitialTime.hours = whiteInitial/360 - whiteInitialTime.minutes = (whiteIntial%360)/60 - whiteInitialTime.seconds = whiteInitial%60 + whiteInitialTime.hours = whiteInitial/(60*60*1000) + whiteInitialTime.minutes = (whiteInitial%(60*60*1000))/(60*1000) + whiteInitialTime.seconds = whiteInitial%(60*1000)/1000 var blackInitial = settings.getInitialTime(timeControl,false) - blackInitialTime.hours = blackInitial/360 - blackInitialTime.minutes = (blackInitial%360)/60 - blackInitialTime.seconds = blackInitial%60 + blackInitialTime.hours = blackInitial/(60*60*1000) + blackInitialTime.minutes = (blackInitial%(60*60*1000))/(60*1000) + blackInitialTime.seconds = blackInitial%(60*1000)/1000 var whiteAdditional = settings.getAdditionalTime(timeControl,true) - whiteAdditionalTime.hours = whiteAdditional/360 - whiteAdditionalTime.minutes = (whiteAdditional%360)/60 - whiteAdditionalTime.seconds = whiteAdditional%60 + whiteAdditionalTime.hours = whiteAdditional/(60*60*1000) + whiteAdditionalTime.minutes = (whiteAdditional%(60*60*1000))/(60*1000) + whiteAdditionalTime.seconds = whiteAdditional%(60*1000)/1000 var blackAdditional = settings.getAdditionalTime(timeControl,false) - blackAdditionalTime.hours = blackAdditional/360 - blackAdditionalTime.minutes = (blackAdditional%360)/60 - blackAdditionalTime.seconds = blackAdditional%60 + blackAdditionalTime.hours = blackAdditional/(60*60*1000) + blackAdditionalTime.minutes = (blackAdditional%(60*60*1000))/(60*1000) + blackAdditionalTime.seconds = blackAdditional%(60*1000)/1000 + - whiteTurnsPerAddition.text = settings.getTurnsPerAddition(timeControl,true) - blackTurnsPerAddition.text = settings.getTurnsPerAddition(timeControl,false) + whiteTurnsPerAddition.text = whiteInitial/(60*60*1000) // settings.getTurnsPerAddition(timeControl,true) + blackTurnsPerAddition.text = 3%2//settings.getTurnsPerAddition(timeControl,false) } tools: ToolBarLayout @@ -322,8 +323,6 @@ Page anchors.left: turnsPerAdditionText.right anchors.leftMargin: 25 - text: "1" - MouseArea { anchors.fill: parent @@ -342,8 +341,6 @@ Page anchors.left: whiteTurnsPerAddition.right anchors.leftMargin: 25 - text: "1" - MouseArea { anchors.fill: parent @@ -374,11 +371,14 @@ Page clocksPage.whiteTurnsPerAddition = whiteTurnsPerAddition.text + //Save settings for white settings.setInitialTime(timeControl,true,clocksPage.whiteInitialTime) settings.setAdditionalTime(timeControl,true,clocksPage.whiteAdditionalTime) settings.setTurnsPerAddition(timeControl,true,clocksPage.whiteTurnsPerAddition) + settings.setEqualTimes(timeControl,equalTimesSwitch.checked) //save equal times setting + if (equalTimesSwitch.checked) { //use same values for white and black -- 1.7.9.5