Settings does not work
authorHeli Hyvättinen <heli.hyvattinen@kymp.net>
Mon, 3 Oct 2011 18:44:27 +0000 (21:44 +0300)
committerHeli Hyvättinen <heli.hyvattinen@kymp.net>
Mon, 3 Oct 2011 18:44:27 +0000 (21:44 +0300)
Javascript handles all numbers as floats... Needs a new approach.

classes/settings.cpp
classes/settings.h
qml/NewGameDialogPage.qml

index 647703f..cfb37ae 100644 (file)
@@ -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));
index 49d5f81..bfefb4f 100644 (file)
@@ -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);
 
 };
 
index 83753fc..b24c78a 100644 (file)
@@ -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