From: Max Lapan Date: Sun, 14 Mar 2010 15:26:11 +0000 (+0300) Subject: Save settings of widget. X-Git-Tag: v0.1~38 X-Git-Url: http://vcs.maemo.org/git/?a=commitdiff_plain;h=33638d9ff1582b40dc348befcce5da87d93a720a;hp=238af37933e4590b629777c10f931ba6398be3f3;p=yandex-traffic Save settings of widget. --- diff --git a/main.cpp b/main.cpp index 3c26806..f8ffb69 100644 --- 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); diff --git a/settings.cpp b/settings.cpp index ad9311e..cd847fb 100644 --- a/settings.cpp +++ b/settings.cpp @@ -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 v; + QMap::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 v; + QMap::const_iterator it; + + it = _cities.begin (); + + while (it != _cities.end ()) { + v[it.key ()] = it.value (); + it++; + } + + settings->setValue ("cities", v); } diff --git a/settings.hpp b/settings.hpp index 270a7ac..9d74e80 100644 --- a/settings.hpp +++ b/settings.hpp @@ -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; }; diff --git a/settingsDialog.cpp b/settingsDialog.cpp index 8245dc0..64d9e26 100644 --- a/settingsDialog.cpp +++ b/settingsDialog.cpp @@ -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 (); }