Save settings of widget.
authorMax Lapan <max.lapan@gmail.com>
Sun, 14 Mar 2010 15:26:11 +0000 (18:26 +0300)
committerMax Lapan <max.lapan@gmail.com>
Sun, 14 Mar 2010 15:26:11 +0000 (18:26 +0300)
main.cpp
settings.cpp
settings.hpp
settingsDialog.cpp

index 3c26806..f8ffb69 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -6,6 +6,9 @@
 int main(int argc, char *argv[])
 {
     QApplication::setGraphicsSystem ("native");
+    QApplication::setOrganizationName ("Shmuma");
+    QApplication::setApplicationName ("yandex-traffic-widget");
+
     QApplication app (argc, argv);
     MainWidget w;
     QMaemo5HomescreenAdaptor *adaptor = new QMaemo5HomescreenAdaptor (&w);
index ad9311e..cd847fb 100644 (file)
@@ -4,20 +4,75 @@
 
 Settings::Settings ()
 {
-    if (!load ())
-        makeDefault ();
+    load ();
 }
 
 
-bool Settings::load ()
+void Settings::load ()
 {
-    return false;
+    QSettings settings;
+
+    makeDefault ();
+
+    _regionID = settings.value ("region", _regionID).toString ();
+
+    _checks[C_Light] = settings.value ("checks/light", _checks[C_Light]).toBool ();
+    _checks[C_Rank] = settings.value ("checks/rank", _checks[C_Rank]).toBool ();
+    _checks[C_Time] = settings.value ("checks/time", _checks[C_Time]).toBool ();
+    _checks[C_Hint] = settings.value ("checks/hint", _checks[C_Hint]).toBool ();
+
+    loadCities (&settings);
+}
+
+
+void Settings::save ()
+{
+    QSettings settings;
+
+    settings.setValue ("region", _regionID);
+
+    settings.setValue ("checks/light", _checks[C_Light]);
+    settings.setValue ("checks/rank", _checks[C_Rank]);
+    settings.setValue ("checks/time", _checks[C_Time]);
+    settings.setValue ("checks/hint", _checks[C_Hint]);
+
+    saveCities (&settings);
 }
 
 
-bool Settings::save ()
+void Settings::loadCities (QSettings *settings)
 {
-    return false;
+    QMap<QString, QVariant> v;
+    QMap<QString, QVariant>::const_iterator it;
+
+    v = settings->value ("cities", v).toMap ();
+
+    if (v.size () == 0)
+        return;
+
+    it = v.begin ();
+    _cities.clear ();
+
+    while (it != v.end ()) {
+        _cities[it.key ()] = it.value ().toString ();
+        it++;
+    }
+}
+
+
+void Settings::saveCities (QSettings *settings)
+{
+    QMap<QString, QVariant> v;
+    QMap<QString, QString>::const_iterator it;
+
+    it = _cities.begin ();
+
+    while (it != _cities.end ()) {
+        v[it.key ()] = it.value ();
+        it++;
+    }
+
+    settings->setValue ("cities", v);
 }
 
 
index 270a7ac..9d74e80 100644 (file)
@@ -22,11 +22,14 @@ private:
 
     void makeDefault ();
 
+    void loadCities (QSettings *settings);
+    void saveCities (QSettings *settings);
+
 public:
     Settings ();
 
-    bool load ();
-    bool save ();
+    void load ();
+    void save ();
 
     QString regionID () const
     { return _regionID; };
index 8245dc0..64d9e26 100644 (file)
@@ -117,5 +117,6 @@ void DisplaySettingsDialog::saveClicked ()
     _settings->setCheck (Settings::C_Rank,  _showRank->isChecked ());
     _settings->setCheck (Settings::C_Time,  _showTime->isChecked ());
     _settings->setCheck (Settings::C_Hint,  _showHint->isChecked ());
+    _settings->save ();
     accept ();
 }