Reorganization of settings dialog to eliminate code duplication.
[yandex-traffic] / settings.hpp
index 2cfa2f6..fdeb6f8 100644 (file)
@@ -1,23 +1,50 @@
 #ifndef __SETTINGS_H__
 #define __SETTINGS_H__
 
+#include <QtCore>
 
 
-class Settings
+class Settings : public QObject
 {
+    Q_OBJECT
+public:
+    enum check_t {
+        C_Light = 0,
+        C_Rank,
+        C_Time,
+        C_Hint,
+    };
+
 private:
-    QStringList _regions;       // List of regions IDs to display
+    QString _regionID;          // region ID which will be displayed
+    QMap<QString, QString> _cities;
+    QMap<check_t, bool> _checks;
 
     void makeDefault ();
 
+    void loadCities (QSettings *settings);
+    void saveCities (QSettings *settings);
+
 public:
     Settings ();
 
-    bool load ();
-    bool save ();
+    void load ();
+    void save ();
+
+    QString regionID () const
+    { return _regionID; };
+
+    void setRegionID (const QString &id)
+    { _regionID = id; };
+
+    QMap<QString, QString> cities () const
+    { return _cities; };
+
+    bool check (check_t entry) const
+    { return _checks[entry]; };
 
-    QStringList regions () const
-    { return _regions; };
+    void setCheck (check_t entry, bool val)
+    { _checks[entry] = val; }
 };