setCheck (C_UpdateWhenLocked, true);
_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")));
}
#include <QtCore>
+class Language
+{
+private:
+ QString _title;
+ QString _alias;
+
+public:
+ Language (const QString &alias, const QString &title)
+ : _title (title),
+ _alias (alias)
+ {};
+
+ QString title () const
+ { return _title; };
+
+ QString alias () const
+ { return _alias; };
+
+ bool operator== (const Language &lang) const
+ { return _title == lang._title && _alias == lang._alias; };
+
+ bool operator!= (const Language &lang) const
+ { return !(*this == lang); };
+};
+
+
class Settings : public QObject
{
Q_OBJECT
QMap<check_t, bool> _checks;
int _updateIntervalIndex;
+ QList<Language> _langs;
+ int _langIndex;
+
void makeDefault ();
void loadCities (QSettings *settings);
int updateInterval () const
{ return intervalIndex2Minutes (_updateIntervalIndex); };
+
+ // Language settings
+ const Language& language () const
+ { return _langs[_langIndex]; };
+
+ const QList<Language>& languages () const
+ { return _langs; };
+
+ void setLanguage (const Language &lang)
+ { _langIndex = _langs.indexOf (lang); };
};
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 ("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);
+#endif
+}
+
+
void SettingsDialog::displayClicked ()
{
DisplaySettingsDialog dlg (_settings);
}
+void SettingsDialog::languageChanged (const QString&)
+{
+#ifdef Q_WS_MAEMO_5
+ QMaemo5ListPickSelector *model = static_cast<QMaemo5ListPickSelector*> (_languageButton->pickSelector ());
+
+ if (!model)
+ return;
+
+ const Language &lang = _settings->languages ()[model->currentIndex ()];
+ if (lang != _settings->language ())
+ _settings->setLanguage (lang);
+#endif
+}
+
+
void SettingsDialog::updateDisplayButtonValue ()
{
QString val;
private:
QMaemo5ValueButton *_displayButton;
QMaemo5ValueButton *_updateButton;
+ QMaemo5ValueButton *_languageButton;
Settings *_settings;
void updateDisplayButtonValue ();
void updateUpdateButtonValue ();
+ void createLanguageButton (QBoxLayout *layout);
protected slots:
void displayClicked ();
void updateClicked ();
+ void languageChanged (const QString&);
public:
SettingsDialog (Settings *settings);