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 ()));
34 void SettingsDialog::displayClicked ()
36 DisplaySettingsDialog dlg (_settings);
42 // --------------------------------------------------
43 // DisplaySettingsDialog
44 // --------------------------------------------------
45 DisplaySettingsDialog::DisplaySettingsDialog (Settings *settings)
49 setWindowTitle (tr ("Display settings"));
50 setMinimumSize (300, 400);
52 QHBoxLayout *layout = new QHBoxLayout (this);
53 QVBoxLayout *left_layout = new QVBoxLayout ();
54 QVBoxLayout *right_layout = new QVBoxLayout ();
57 _saveButton = new QPushButton (tr ("&Save"), this);
58 connect (_saveButton, SIGNAL (clicked ()), SLOT (saveClicked ()));
60 right_layout->addStretch ();
61 right_layout->addWidget (_saveButton);
64 initCities (left_layout);
65 initChecks (left_layout);
68 layout->addLayout (left_layout);
69 layout->addLayout (right_layout);
73 void DisplaySettingsDialog::initCities (QBoxLayout *layout)
75 _cities = new QListWidget (this);
76 QMap<QString, QString> cities_map = _settings->cities ();
77 QMap<QString, QString>::iterator it = cities_map.begin ();
79 // Populate list with cities
80 while (it != cities_map.end ()) {
81 QListWidgetItem *item = new QListWidgetItem (it.value (), _cities);
83 item->setData (Qt::UserRole, QVariant (it.key ()));
84 if (it.key () == _settings->regionID ())
85 _cities->setCurrentItem (item);
89 layout->addWidget (_cities);
93 void DisplaySettingsDialog::initChecks (QBoxLayout *layout)
95 QGridLayout *grid = new QGridLayout;
97 _showLight = new QCheckBox ("Light", this);
98 _showLight->setChecked (_settings->check (Settings::C_Light));
99 _showRank = new QCheckBox ("Rank", this);
100 _showRank->setChecked (_settings->check (Settings::C_Rank));
101 _showTime = new QCheckBox ("Time", this);
102 _showTime->setChecked (_settings->check (Settings::C_Time));
103 _showHint = new QCheckBox ("Hint", this);
104 _showHint->setChecked (_settings->check (Settings::C_Hint));
106 grid->addWidget (_showLight, 0, 0);
107 grid->addWidget (_showRank, 0, 1);
108 grid->addWidget (_showTime, 1, 0);
109 grid->addWidget (_showHint, 1, 1);
111 layout->addLayout (grid);
115 void DisplaySettingsDialog::saveClicked ()
117 QListWidgetItem *cur = _cities->currentItem ();
120 _settings->setRegionID (cur->data (Qt::UserRole).toString ());
122 _settings->setCheck (Settings::C_Light, _showLight->isChecked ());
123 _settings->setCheck (Settings::C_Rank, _showRank->isChecked ());
124 _settings->setCheck (Settings::C_Time, _showTime->isChecked ());
125 _settings->setCheck (Settings::C_Hint, _showHint->isChecked ());