Fix typo
[yandex-traffic] / settingsDialog.cpp
index 7dac9e7..7d7b739 100644 (file)
@@ -29,11 +29,40 @@ SettingsDialog::SettingsDialog (Settings *settings)
     updateUpdateButtonValue ();
     layout->addWidget (_updateButton);
 
+    createLanguageButton (layout);
+
     connect (_displayButton, SIGNAL (clicked ()), SLOT (displayClicked ()));
     connect (_updateButton, SIGNAL (clicked ()), SLOT (updateClicked ()));
 }
 
 
+void SettingsDialog::createLanguageButton (QBoxLayout *layout)
+{
+    _languageButton = new QMaemo5ValueButton (tr ("Interface language"), this);
+    layout->addWidget (_languageButton);
+
+#ifdef Q_WS_MAEMO_5
+    QMaemo5ListPickSelector *selector = new QMaemo5ListPickSelector;
+    QStandardItemModel *model = new QStandardItemModel (0, 1);
+    QList<Language>::const_iterator it = _settings->languages ().begin ();
+
+    while (it != _settings->languages ().end ()) {
+        QStandardItem *item = new QStandardItem (it->title ());
+        item->setData (it->alias ());
+        model->appendRow (item);
+        it++;
+    }
+
+    selector->setModel (model);
+    selector->setCurrentIndex (_settings->languages ().indexOf (_settings->language ()));
+
+    _languageButton->setPickSelector (selector);
+
+    connect (selector, SIGNAL (selected (const QString&)), SLOT (languageChanged (const QString&)));
+#endif
+}
+
+
 void SettingsDialog::displayClicked ()
 {
     DisplaySettingsDialog dlg (_settings);
@@ -50,12 +79,26 @@ void SettingsDialog::updateClicked ()
 }
 
 
+void SettingsDialog::languageChanged (const QString&)
+{
+#ifdef Q_WS_MAEMO_5
+    QMaemo5ListPickSelector *model = static_cast<QMaemo5ListPickSelector*> (_languageButton->pickSelector ());
+
+    if (!model)
+        return;
+
+    _settings->setLanguageIndex (model->currentIndex ());
+    _settings->save ();
+#endif
+}
+
+
 void SettingsDialog::updateDisplayButtonValue ()
 {
     QString val;
     QStringList list;
 
-    val = tr ("City: ") + _settings->cities ()[_settings->regionID ()] + ", " + tr ("Data: ");
+    val = tr ("City:") + " " + _settings->regionName (_settings->regionID ()) + ", " + tr ("Display:") + " ";
 
     if (_settings->check (Settings::C_ShowLight))
         list.append (tr ("lights"));
@@ -75,7 +118,7 @@ void SettingsDialog::updateUpdateButtonValue ()
     QStringList list, intervals = _settings->updateIntervals ();
     QString val;
 
-    val = tr ("Interval: ") + intervals[_settings->getUpdateIntervalIndex ()] + ", " + tr ("Update via: ");
+    val = tr ("Interval:") + " " + intervals[_settings->getUpdateIntervalIndex ()] + ", " + tr ("Update via:") + " ";
 
     if (_settings->check (Settings::C_UpdateOnWiFi))
         list.append (tr ("WiFi"));
@@ -148,15 +191,15 @@ DisplaySettingsDialog::DisplaySettingsDialog (Settings *_settings)
 void DisplaySettingsDialog::initCities (QBoxLayout *layout)
 {
     _cities = new QListWidget (this);
-    QMap<QString, QString> cities_map = settings ()->cities ();
-    QMap<QString, QString>::iterator it = cities_map.begin ();
+    QStringList regions = settings ()->regionIDs ();
+    QStringList::const_iterator it = regions.begin ();
 
     // Populate list with cities
-    while (it != cities_map.end ()) {
-        QListWidgetItem *item = new QListWidgetItem (it.value (), _cities);
+    while (it != regions.end ()) {
+        QListWidgetItem *item = new QListWidgetItem (settings()->regionName (*it), _cities);
 
-        item->setData (Qt::UserRole, QVariant (it.key ()));
-        if (it.key () == settings ()->regionID ())
+        item->setData (Qt::UserRole, QVariant (*it));
+        if (*it == settings ()->regionID ())
             _cities->setCurrentItem (item);
         it++;
     }