From ff40010b86313476f9164a886706f579fb302b7d Mon Sep 17 00:00:00 2001 From: Max Lapan Date: Wed, 17 Mar 2010 19:06:59 +0300 Subject: [PATCH 1/1] Language settings continued. --- settings.cpp | 15 +++++++++++---- settings.hpp | 3 +-- settingsDialog.cpp | 7 ++++--- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/settings.cpp b/settings.cpp index 021ea4f..995aa05 100644 --- a/settings.cpp +++ b/settings.cpp @@ -37,9 +37,7 @@ void Settings::load () _updateIntervalIndex = minutes2IntervalIndex (settings.value ("updateInterval", intervalIndex2Minutes (_updateIntervalIndex)).toInt ()); - _langIndex = settings.value ("langIndex", _langIndex).toInt (); - if (_langIndex < 0 || _langIndex >= _langs.count ()) - _langIndex = 0; + setLanguageIndex (settings.value ("langIndex", _langIndex).toInt ()); } @@ -83,10 +81,10 @@ void Settings::makeDefault () _updateIntervalIndex = 3; // languages - _langIndex = 0; _langs.append (Language (QString (""), tr ("System"))); _langs.append (Language (QString ("en"), tr ("English"))); _langs.append (Language (QString ("ru"), tr ("Russian"))); + setLanguageIndex (0); } @@ -135,3 +133,12 @@ int Settings::minutes2IntervalIndex (int minutes) const return 0; } } + + +void Settings::setLanguageIndex (int index) +{ + if (index < 0 || index >= _langs.count ()) + _langIndex = 0; + else + _langIndex = index; +} diff --git a/settings.hpp b/settings.hpp index 19b00f4..9634964 100644 --- a/settings.hpp +++ b/settings.hpp @@ -98,8 +98,7 @@ public: const QList& languages () const { return _langs; }; - void setLanguage (const Language &lang) - { _langIndex = _langs.indexOf (lang); }; + void setLanguageIndex (int index); }; diff --git a/settingsDialog.cpp b/settingsDialog.cpp index ca73077..6a9293b 100644 --- a/settingsDialog.cpp +++ b/settingsDialog.cpp @@ -57,6 +57,8 @@ void SettingsDialog::createLanguageButton (QBoxLayout *layout) selector->setCurrentIndex (_settings->languages ().indexOf (_settings->language ())); _languageButton->setPickSelector (selector); + + connect (selector, SIGNAL (selected (const QString&)), SLOT (languageChanged (const QString&))); #endif } @@ -85,9 +87,8 @@ void SettingsDialog::languageChanged (const QString&) if (!model) return; - const Language &lang = _settings->languages ()[model->currentIndex ()]; - if (lang != _settings->language ()) - _settings->setLanguage (lang); + _settings->setLanguageIndex (model->currentIndex ()); + _settings->save (); #endif } -- 1.7.9.5