We have no plans to implement alerts so far
[yandex-traffic] / settingsDialog.hpp
1 #ifndef __SETTINGSDIALOG_H__
2 #define __SETTINGSDIALOG_H__
3
4 #include <QtGui>
5
6 #ifdef Q_WS_MAEMO_5
7 #include <QtMaemo5>
8 #else
9 #include "QtMaemo5Adapters.hpp"
10 #endif
11
12 #include "settings.hpp"
13
14
15 class SettingsDialog : public QDialog
16 {
17     Q_OBJECT
18
19 private:
20     QMaemo5ValueButton *_displayButton;
21     QMaemo5ValueButton *_updateButton;
22
23     Settings *_settings;
24
25 protected slots:
26     void displayClicked ();
27     void updateClicked ();
28
29 public:
30     SettingsDialog (Settings *settings);
31 };
32
33
34 class BaseSettingsDialog : public QDialog
35 {
36     Q_OBJECT
37 private:
38     Settings *_settings;
39     QVBoxLayout *_layout;
40     QPushButton *_saveButton;
41
42 protected slots:
43     void saveClicked ();
44
45 protected:
46     Settings* settings () const
47     { return _settings; };
48
49     QVBoxLayout* layout () const
50     { return _layout; };
51
52     virtual void saveSettings () = 0;
53
54 public:
55     BaseSettingsDialog (Settings *settings);
56 };
57
58
59 class DisplaySettingsDialog : public BaseSettingsDialog
60 {
61     Q_OBJECT
62
63 private:
64     QListWidget *_cities;
65     QCheckBox *_showLight, *_showRank, *_showTime, *_showHint;
66
67     void initCities (QBoxLayout *layout);
68     void initChecks (QBoxLayout *layout);
69
70 protected:
71     virtual void saveSettings ();
72
73 public:
74     DisplaySettingsDialog (Settings *settings);
75 };
76
77
78 class UpdateSettingsDialog : public BaseSettingsDialog
79 {
80     Q_OBJECT
81
82 private:
83     QMaemo5ValueButton *_intervalButton;
84     QCheckBox *_wifiUpdate, *_gsmUpdate;
85
86     void initUpdateInterval (QBoxLayout *layout);
87
88 protected:
89     virtual void saveSettings ();
90
91 public:
92     UpdateSettingsDialog (Settings *settings);
93 };
94
95
96 #endif // __SETTINGSDIALOG_H__