6 #include "QtMaemo5Adapters.hpp"
9 #include "settingsDialog.hpp"
12 // --------------------------------------------------
14 // --------------------------------------------------
15 SettingsDialog::SettingsDialog (Settings *settings)
19 setWindowTitle (tr ("Settings"));
21 QVBoxLayout *layout = new QVBoxLayout (this);
23 _displayButton = new QMaemo5ValueButton (tr ("Display"), this);
24 layout->addWidget (_displayButton);
25 _updateButton = new QMaemo5ValueButton (tr ("Update"), this);
26 layout->addWidget (_updateButton);
27 _alertsButton = new QMaemo5ValueButton (tr ("Alerts"), this);
28 layout->addWidget (_alertsButton);
30 connect (_displayButton, SIGNAL (clicked ()), SLOT (displayClicked ()));
31 connect (_updateButton, SIGNAL (clicked ()), SLOT (updateClicked ()));
35 void SettingsDialog::displayClicked ()
37 DisplaySettingsDialog dlg (_settings);
42 void SettingsDialog::updateClicked ()
44 UpdateSettingsDialog dlg (_settings);
49 // --------------------------------------------------
51 // --------------------------------------------------
52 BaseSettingsDialog::BaseSettingsDialog (Settings *settings)
55 _layout (new QVBoxLayout)
57 QHBoxLayout *layout = new QHBoxLayout (this);
58 QVBoxLayout *right_layout = new QVBoxLayout ();
61 _saveButton = new QPushButton (tr ("Save"), this);
62 connect (_saveButton, SIGNAL (clicked ()), SLOT (saveClicked ()));
64 right_layout->addStretch ();
65 right_layout->addWidget (_saveButton);
68 layout->addLayout (_layout);
69 layout->addLayout (right_layout);
71 // Left side would be initialized later
75 void BaseSettingsDialog::saveClicked ()
83 // --------------------------------------------------
84 // DisplaySettingsDialog
85 // --------------------------------------------------
86 DisplaySettingsDialog::DisplaySettingsDialog (Settings *settings)
87 : BaseSettingsDialog (settings)
89 setWindowTitle (tr ("Display settings"));
90 setMinimumSize (300, 400);
92 initCities (layout ());
93 initChecks (layout ());
97 void DisplaySettingsDialog::initCities (QBoxLayout *layout)
99 _cities = new QListWidget (this);
100 QMap<QString, QString> cities_map = settings ()->cities ();
101 QMap<QString, QString>::iterator it = cities_map.begin ();
103 // Populate list with cities
104 while (it != cities_map.end ()) {
105 QListWidgetItem *item = new QListWidgetItem (it.value (), _cities);
107 item->setData (Qt::UserRole, QVariant (it.key ()));
108 if (it.key () == settings ()->regionID ())
109 _cities->setCurrentItem (item);
113 layout->addWidget (_cities);
117 void DisplaySettingsDialog::initChecks (QBoxLayout *layout)
119 QGridLayout *grid = new QGridLayout;
121 _showLight = new QCheckBox ("Light", this);
122 _showLight->setChecked (settings ()->check (Settings::C_Light));
123 _showRank = new QCheckBox ("Rank", this);
124 _showRank->setChecked (settings ()->check (Settings::C_Rank));
125 _showTime = new QCheckBox ("Time", this);
126 _showTime->setChecked (settings ()->check (Settings::C_Time));
127 _showHint = new QCheckBox ("Hint", this);
128 _showHint->setChecked (settings ()->check (Settings::C_Hint));
130 grid->addWidget (_showLight, 0, 0);
131 grid->addWidget (_showRank, 0, 1);
132 grid->addWidget (_showTime, 1, 0);
133 grid->addWidget (_showHint, 1, 1);
135 layout->addLayout (grid);
139 void DisplaySettingsDialog::saveSettings ()
141 QListWidgetItem *cur = _cities->currentItem ();
144 settings ()->setRegionID (cur->data (Qt::UserRole).toString ());
146 settings ()->setCheck (Settings::C_Light, _showLight->isChecked ());
147 settings ()->setCheck (Settings::C_Rank, _showRank->isChecked ());
148 settings ()->setCheck (Settings::C_Time, _showTime->isChecked ());
149 settings ()->setCheck (Settings::C_Hint, _showHint->isChecked ());
153 // --------------------------------------------------
154 // UpdateSettingsDialog
155 // --------------------------------------------------
156 UpdateSettingsDialog::UpdateSettingsDialog (Settings *settings)
157 : BaseSettingsDialog (settings)
159 setWindowTitle (tr ("Update settings"));
163 void UpdateSettingsDialog::saveSettings ()