Display section of settings.
[yandex-traffic] / settingsDialog.cpp
1 #include <QtGui>
2
3 #ifdef Q_WS_MAEMO_5
4 #include <QtMaemo5>
5 #else
6 #include "QtMaemo5Adapters.hpp"
7 #endif
8
9 #include "settingsDialog.hpp"
10
11
12 // --------------------------------------------------
13 // SettingsDialog
14 // --------------------------------------------------
15 SettingsDialog::SettingsDialog (Settings *settings)
16     : QDialog (),
17       _settings (settings)
18 {
19     setWindowTitle (tr ("Settings"));
20
21     QVBoxLayout *layout = new QVBoxLayout (this);
22
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);
29
30     connect (displayButton, SIGNAL (clicked ()), SLOT (displayClicked ()));
31 }
32
33
34 void SettingsDialog::displayClicked ()
35 {
36     DisplaySettingsDialog dlg (_settings);
37
38     dlg.exec ();
39 }
40
41
42 // --------------------------------------------------
43 // DisplaySettingsDialog
44 // --------------------------------------------------
45 DisplaySettingsDialog::DisplaySettingsDialog (Settings *settings)
46     : QDialog (0),
47       _settings (settings)
48 {
49     setWindowTitle (tr ("Display settings"));
50
51     QHBoxLayout *layout = new QHBoxLayout (this);
52     QVBoxLayout *left_layout = new QVBoxLayout ();
53     QVBoxLayout *right_layout = new QVBoxLayout ();
54
55     // Right side
56     _saveButton = new QPushButton (tr ("&Save"), this);
57     right_layout->addStretch ();
58     right_layout->addWidget (_saveButton);
59
60     // Left side
61     initCities (left_layout);
62     initChecks (left_layout);
63
64     // Pack them together
65     layout->addLayout (left_layout);
66     layout->addLayout (right_layout);
67 }
68
69
70 void DisplaySettingsDialog::initCities (QBoxLayout *layout)
71 {
72     _cities = new QListWidget (this);
73     QMap<QString, QString> cities_map = _settings->cities ();
74     QMap<QString, QString>::iterator it = cities_map.begin ();
75
76     // Populate list with cities
77     while (it != cities_map.end ()) {
78         QListWidgetItem *item = new QListWidgetItem (it.value (), _cities);
79
80         item->setData (Qt::UserRole, QVariant (it.key ()));
81         if (it.key () == _settings->regionID ())
82             _cities->setCurrentItem (item);
83         it++;
84     }
85
86     layout->addWidget (_cities);
87 }
88
89
90 void DisplaySettingsDialog::initChecks (QBoxLayout *layout)
91 {
92     QGridLayout *grid = new QGridLayout;
93
94     _showLight = new QCheckBox ("Light", this);
95     _showRank = new QCheckBox ("Rank", this);
96     _showTime = new QCheckBox ("Time", this);
97     _showHint = new QCheckBox ("Hint", this);
98
99     grid->addWidget (_showLight, 0, 0);
100     grid->addWidget (_showRank, 0, 1);
101     grid->addWidget (_showTime, 1, 0);
102     grid->addWidget (_showHint, 1, 1);
103
104     layout->addLayout (grid);
105 }