Log connection state transitions.
[yandex-traffic] / settingsDialog.hpp
index 8bee870..9b0f057 100644 (file)
@@ -3,14 +3,99 @@
 
 #include <QtGui>
 
+#ifdef Q_WS_MAEMO_5
+#include <QtMaemo5>
+#else
+#include "QtMaemo5Adapters.hpp"
+#endif
+
 #include "settings.hpp"
 
 
 class SettingsDialog : public QDialog
 {
     Q_OBJECT
+
+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);
+};
+
+
+class BaseSettingsDialog : public QDialog
+{
+    Q_OBJECT
+private:
+    Settings *_settings;
+    QVBoxLayout *_layout;
+    QPushButton *_saveButton;
+
+protected slots:
+    void saveClicked ();
+
+protected:
+    Settings* settings () const
+    { return _settings; };
+
+    QVBoxLayout* layout () const
+    { return _layout; };
+
+    virtual void saveSettings () = 0;
+
+public:
+    BaseSettingsDialog (Settings *settings);
+};
+
+
+class DisplaySettingsDialog : public BaseSettingsDialog
+{
+    Q_OBJECT
+
+private:
+    QListWidget *_cities;
+    QCheckBox *_showLight, *_showRank, *_showTime, *_showHint;
+
+    void initCities (QBoxLayout *layout);
+    void initChecks (QBoxLayout *layout);
+
+protected:
+    virtual void saveSettings ();
+
+public:
+    DisplaySettingsDialog (Settings *settings);
+};
+
+
+class UpdateSettingsDialog : public BaseSettingsDialog
+{
+    Q_OBJECT
+
+private:
+    QMaemo5ValueButton *_intervalButton;
+    QCheckBox *_wifiUpdate, *_gsmUpdate, *_lockedUpdate;
+
+    void initUpdateInterval (QBoxLayout *layout);
+
+protected:
+    virtual void saveSettings ();
+
 public:
-    SettingsDialog (QWidget *parent, Settings *settings);
+    UpdateSettingsDialog (Settings *settings);
 };