Save settings of widget.
[yandex-traffic] / settings.cpp
1 #include <QtCore>
2 #include <settings.hpp>
3
4
5 Settings::Settings ()
6 {
7     load ();
8 }
9
10
11 void Settings::load ()
12 {
13     QSettings settings;
14
15     makeDefault ();
16
17     _regionID = settings.value ("region", _regionID).toString ();
18
19     _checks[C_Light] = settings.value ("checks/light", _checks[C_Light]).toBool ();
20     _checks[C_Rank] = settings.value ("checks/rank", _checks[C_Rank]).toBool ();
21     _checks[C_Time] = settings.value ("checks/time", _checks[C_Time]).toBool ();
22     _checks[C_Hint] = settings.value ("checks/hint", _checks[C_Hint]).toBool ();
23
24     loadCities (&settings);
25 }
26
27
28 void Settings::save ()
29 {
30     QSettings settings;
31
32     settings.setValue ("region", _regionID);
33
34     settings.setValue ("checks/light", _checks[C_Light]);
35     settings.setValue ("checks/rank", _checks[C_Rank]);
36     settings.setValue ("checks/time", _checks[C_Time]);
37     settings.setValue ("checks/hint", _checks[C_Hint]);
38
39     saveCities (&settings);
40 }
41
42
43 void Settings::loadCities (QSettings *settings)
44 {
45     QMap<QString, QVariant> v;
46     QMap<QString, QVariant>::const_iterator it;
47
48     v = settings->value ("cities", v).toMap ();
49
50     if (v.size () == 0)
51         return;
52
53     it = v.begin ();
54     _cities.clear ();
55
56     while (it != v.end ()) {
57         _cities[it.key ()] = it.value ().toString ();
58         it++;
59     }
60 }
61
62
63 void Settings::saveCities (QSettings *settings)
64 {
65     QMap<QString, QVariant> v;
66     QMap<QString, QString>::const_iterator it;
67
68     it = _cities.begin ();
69
70     while (it != _cities.end ()) {
71         v[it.key ()] = it.value ();
72         it++;
73     }
74
75     settings->setValue ("cities", v);
76 }
77
78
79 void Settings::makeDefault ()
80 {
81     _regionID = "1";            // Default city
82
83     _cities["1"] = tr ("Moscow");
84     _cities["10174"] = tr ("Kiev");
85     _cities["11162"] = tr ("Ekaterinburg");
86     _cities["11079"] = tr ("N.Novgorod");
87
88     setCheck (C_Light, true);
89     setCheck (C_Rank, true);
90     setCheck (C_Hint, true);
91 }