Use the canonical file name also for the "already open" check
[GPXSee.git] / src / GUI / settings.h
blob41a736c6562d4ffb9d0d0b1030dfa81d49a1937b
1 #ifndef SETTINGS_H
2 #define SETTINGS_H
4 #include <QMap>
5 #include <QVariant>
6 #include <QSettings>
8 #define SETTINGS_WINDOW "Window"
9 #define SETTINGS_SETTINGS "Settings"
10 #define SETTINGS_FILE "File"
11 #define SETTINGS_MAP "Map"
12 #define SETTINGS_GRAPH "Graph"
13 #define SETTINGS_POI "POI"
14 #define SETTINGS_DATA "Data"
15 #define SETTINGS_POSITION "Position"
16 #define SETTINGS_PDF_EXPORT "Export"
17 #define SETTINGS_PNG_EXPORT "PNGExport"
18 #define SETTINGS_OPTIONS "Options"
20 class Settings
22 public:
23 class Setting
25 public:
26 Setting(const QString &name, const QVariant &defVal)
27 : _name(name), _defVal(defVal) {}
29 void write(QSettings &settings, const QVariant &value) const
31 if (value != _defVal)
32 settings.setValue(_name, value);
34 QVariant read(const QSettings &settings) const
36 return settings.value(_name, _defVal);
39 private:
40 QString _name;
41 QVariant _defVal;
44 class SettingMap
46 public:
47 SettingMap(const QString &prefix, const QString &key, const QString &value)
48 : _prefix(prefix), _key(key), _value(value) {}
50 void write(QSettings &settings, const QMap<QString, QVariantMap> &map) const;
51 QMap<QString, QVariantMap> read(QSettings &settings) const;
53 private:
54 QString _prefix;
55 QString _key;
56 QString _value;
59 class SettingList
61 public:
62 SettingList(const QString &prefix, const QString &value)
63 : _prefix(prefix), _value(value) {}
65 void write(QSettings &settings, const QStringList &list) const;
66 QStringList read(QSettings &settings) const;
68 private:
69 QString _prefix;
70 QString _value;
74 /* Window */
75 #ifndef Q_OS_ANDROID
76 static const Setting windowGeometry;
77 static const Setting windowState;
78 #endif // Q_OS_ANDROID
80 /* Settings */
81 static const Setting timeType;
82 static const Setting units;
83 static const Setting coordinatesFormat;
84 #ifndef Q_OS_ANDROID
85 static const Setting showToolbars;
86 #endif // Q_OS_ANDROID
88 /* File */
89 #ifndef Q_OS_ANDROID
90 static const SettingList recentDataFiles;
91 #endif // Q_OS_ANDROID
93 /* Map */
94 static const Setting activeMap;
95 static const Setting showMap;
96 static const Setting cursorCoordinates;
98 /* Graph */
99 static const Setting showGraphs;
100 static const Setting graphType;
101 static const Setting showGrid;
102 static const Setting sliderInfo;
103 #ifdef Q_OS_ANDROID
104 static const Setting showGraphTabs;
105 #endif // Q_OS_ANDROID
107 /* POI */
108 static const Setting poiIcons;
109 static const Setting poiLabels;
110 static const Setting showPoi;
111 static const Setting poiOverlap;
112 static const SettingList disabledPoiFiles;
114 /* Data */
115 static const Setting tracks;
116 static const Setting routes;
117 static const Setting waypoints;
118 static const Setting areas;
119 static const Setting routeWaypoints;
120 static const Setting waypointIcons;
121 static const Setting waypointLabels;
122 static const Setting pathTicks;
123 static const Setting positionMarkers;
124 static const Setting markerInfo;
125 static const Setting useStyles;
127 /* Position */
128 static const Setting showPosition;
129 static const Setting followPosition;
130 static const Setting positionCoordinates;
131 static const Setting motionInfo;
133 /* PDF export */
134 static const Setting pdfOrientation;
135 static const Setting pdfSize;
136 static const Setting pdfMarginLeft;
137 static const Setting pdfMarginTop;
138 static const Setting pdfMarginRight;
139 static const Setting pdfMarginBottom;
140 static const Setting pdfFileName;
141 static const Setting pdfResolution;
143 /* PNG export */
144 static const Setting pngWidth;
145 static const Setting pngHeight;
146 static const Setting pngMarginLeft;
147 static const Setting pngMarginTop;
148 static const Setting pngMarginRight;
149 static const Setting pngMarginBottom;
150 static const Setting pngAntialiasing;
151 static const Setting pngFileName;
153 /* Options */
154 static const Setting paletteColor;
155 static const Setting paletteShift;
156 static const Setting mapOpacity;
157 static const Setting backgroundColor;
158 static const Setting crosshairColor;
159 static const Setting infoColor;
160 static const Setting infoBackground;
161 static const Setting trackWidth;
162 static const Setting routeWidth;
163 static const Setting areaWidth;
164 static const Setting trackStyle;
165 static const Setting routeStyle;
166 static const Setting areaStyle;
167 static const Setting areaOpacity;
168 static const Setting waypointSize;
169 static const Setting waypointColor;
170 static const Setting poiSize;
171 static const Setting poiColor;
172 static const Setting graphWidth;
173 static const Setting pathAntiAliasing;
174 static const Setting graphAntiAliasing;
175 static const Setting elevationFilter;
176 static const Setting speedFilter;
177 static const Setting heartRateFilter;
178 static const Setting cadenceFilter;
179 static const Setting powerFilter;
180 static const Setting outlierEliminate;
181 static const Setting automaticPause;
182 static const Setting pauseSpeed;
183 static const Setting pauseInterval;
184 static const Setting useReportedSpeed;
185 static const Setting dataUseDEM;
186 static const Setting secondaryElevation;
187 static const Setting secondarySpeed;
188 static const Setting timeZone;
189 static const Setting useSegments;
190 static const Setting poiRadius;
191 static const Setting demURL;
192 static const Setting demAuthentication;
193 static const Setting demUsername;
194 static const Setting demPassword;
195 static const Setting useOpenGL;
196 static const Setting enableHTTP2;
197 static const Setting pixmapCache;
198 static const Setting demCache;
199 static const Setting connectionTimeout;
200 static const Setting hiresPrint;
201 static const Setting printName;
202 static const Setting printDate;
203 static const Setting printDistance;
204 static const Setting printTime;
205 static const Setting printMovingTime;
206 static const Setting printItemCount;
207 static const Setting separateGraphPage;
208 static const Setting sliderColor;
209 static const Setting outputProjection;
210 static const Setting inputProjection;
211 static const Setting hidpiMap;
212 static const Setting poiPath;
213 static const Setting mapsPath;
214 static const Setting dataPath;
215 static const Setting &positionPlugin();
216 static const SettingMap positionPluginParameters;
219 #endif // SETTINGS_H