Using QTime for saving the time settings
[chessclock] / classes / settings.cpp
1 #include "settings.h"
2 #include <QSettings>
3
4
5 Settings::Settings(QObject *parent) :
6     QObject(parent)
7 {
8 }
9
10
11
12 QString Settings::getGroupName(int timeControl)
13 {
14     //Using same groups and keys in QSettings as the maemo version
15     //just in case Maemo version would move to use QML someday
16
17
18    QString groupString;
19
20    switch (timeControl)
21    {
22
23     case WrappedClocksWidget::NormalClock:
24
25        groupString = "Normal clock";
26        break;
27
28     case WrappedClocksWidget::AdditionBefore:
29
30        groupString = "Addition before";
31        break;
32
33     case WrappedClocksWidget::AdditionAfter:
34            groupString = "Addition after";
35            break;
36
37     case WrappedClocksWidget::Delay:
38        groupString = "Delay";
39        break;
40
41    case WrappedClocksWidget::DelayAfter:
42        groupString = "Delay after";
43        break;
44
45
46     case WrappedClocksWidget::HourGlass:
47        groupString = "Hour glass";
48        break;
49
50     default: //If QML sends an invalid value give the value for normal clock
51
52        groupString = "Normal Clock";
53        break;
54
55     }
56 return groupString;
57
58 }
59
60    int Settings::getTurnsPerAddition(int timeControl, bool isWhite)
61    {
62
63        QSettings settings;
64        settings.beginGroup(getGroupName(timeControl));
65
66        if (isWhite)
67            return settings.value("WhitePerTurns",1).toInt();
68
69        else
70            return settings.value("BlackPerTurns",1).toInt();
71
72     }
73
74    QTime Settings::getInitialTime(int timeControl, bool isWhite)
75    {
76        QSettings settings;
77        settings.beginGroup(getGroupName(timeControl));
78
79        QTime defaultTime(0,30);
80
81        QTime hourGlassTime(0,1);
82
83        if (timeControl == WrappedClocksWidget::HourGlass)
84             defaultTime = hourGlassTime;
85
86        if (isWhite)
87            return settings.value("WhiteInitial",defaultTime).toTime();
88         else
89            return settings.value("BlackInitial",defaultTime).toTime();
90    }
91
92    QTime Settings::getAdditionalTime(int timeControl, bool isWhite)
93    {
94        QSettings settings;
95        settings.beginGroup(getGroupName(timeControl));
96
97        QTime defaultTime(0,0,30);
98        if (isWhite)
99            return settings.value("WhiteAddition",defaultTime).toTime();
100        else
101            return settings.value("BlackAddition",defaultTime).toTime();
102    }
103
104    bool Settings::isEqualTimes(int timeControl)
105    {
106        QSettings settings;
107        settings.beginGroup(getGroupName(timeControl));
108
109        return settings.value("Equals",false).toBool();
110    }
111
112    void Settings::setTurnsPerAddition(int timeControl, bool isWhite, int turns)
113    {
114         QSettings settings;
115         settings.beginGroup(getGroupName(timeControl));
116
117         if (isWhite)
118             settings.setValue("WhitePerTurns",turns);
119         else
120             settings.setValue("BlackPerTurns",turns);
121    }
122
123    void Settings::setInitialTime(int timeControl, bool isWhite, QTime time)
124    {
125        QSettings settings;
126        settings.beginGroup(getGroupName(timeControl));
127
128        if (isWhite)
129            settings.setValue("WhiteInitial",time);
130        else
131            settings.setValue("BlackItnitial",time);
132    }
133
134    void Settings::setAdditionalTime(int timeControl, bool isWhite, QTime time)
135    {
136        QSettings settings;
137        settings.beginGroup(getGroupName(timeControl));
138
139        if (isWhite)
140            settings.setValue("WhiteAddition",time);
141        else
142            settings.setValue("BlackAddition",time);
143    }
144
145     void Settings::setEqualTimes(int timeControl, bool on)
146     {
147         QSettings settings;
148         settings.beginGroup(getGroupName(timeControl));
149
150         settings.setValue("Equals",on);
151     }
152
153