FOSSredder 0.5.0
Loading...
Searching...
No Matches
Settings.h
Go to the documentation of this file.
1
5
6#pragma once
7
8#include <utility>
9
10#include <QObject>
11#include <QString>
12
13namespace ui {
14
19class Settings : public QObject {
20 Q_OBJECT
21
22 Q_PROPERTY(
23 QString language READ language WRITE setLanguage NOTIFY languageChanged)
24 Q_PROPERTY(QString themeMode READ themeMode WRITE setThemeMode NOTIFY
28 Q_PROPERTY(
31 Q_PROPERTY(QString importDefaultPath READ importDefaultPath WRITE
33 Q_PROPERTY(QString importPoppler READ importPoppler WRITE setImportPoppler
35 Q_PROPERTY(QString importOpenCv READ importOpenCv WRITE setImportOpenCv NOTIFY
37 Q_PROPERTY(QString importTesseract READ importTesseract WRITE
39 Q_PROPERTY(QString importParser READ importParser WRITE setImportParser NOTIFY
41 Q_PROPERTY(QString importMatcher READ importMatcher WRITE setImportMatcher
43 Q_PROPERTY(QString exportDefaultDirectory READ exportDefaultDirectory WRITE
45 Q_PROPERTY(int exportArchiveFormat READ exportArchiveFormat WRITE
49 Q_PROPERTY(
52 Q_PROPERTY(int analysisDefaultYear READ analysisDefaultYear WRITE
54 Q_PROPERTY(bool toolbarShowBooking READ toolbarShowBooking WRITE
56 Q_PROPERTY(bool toolbarShowActors READ toolbarShowActors WRITE
60 Q_PROPERTY(bool toolbarShowContracts READ toolbarShowContracts WRITE
62 Q_PROPERTY(bool toolbarShowImport READ toolbarShowImport WRITE
64 Q_PROPERTY(bool toolbarShowExport READ toolbarShowExport WRITE
66 Q_PROPERTY(bool toolbarShowAnalysis READ toolbarShowAnalysis WRITE
68 Q_PROPERTY(bool toolbarShowAnnual READ toolbarShowAnnual WRITE
70 Q_PROPERTY(bool toolbarShowSettings READ toolbarShowSettings WRITE
72
73public:
78 explicit Settings(QObject* parent = nullptr);
79
80 QString language() const {
81 return values_.language;
82 }
83 QString themeMode() const {
84 return values_.themeMode;
85 }
86 bool autosaveOnClose() const noexcept {
87 return values_.autosaveOnClose;
88 }
89 int autosaveIntervalMinutes() const noexcept {
90 return values_.autosaveIntervalMinutes;
91 }
92 QString importDefaultPath() const {
93 return values_.importDefaultPath;
94 }
95 QString importPoppler() const {
96 return values_.importPoppler;
97 }
98 QString importOpenCv() const {
99 return values_.importOpenCv;
100 }
101 QString importTesseract() const {
102 return values_.importTesseract;
103 }
104 QString importParser() const {
105 return values_.importParser;
106 }
107 QString importMatcher() const {
108 return values_.importMatcher;
109 }
110 QString exportDefaultDirectory() const {
111 return values_.exportDefaultDirectory;
112 }
113 int exportArchiveFormat() const noexcept {
114 return values_.exportArchiveFormat;
115 }
116 bool exportIncludeFormulas() const noexcept {
117 return values_.exportIncludeFormulas;
118 }
119 QString analysisDefaultDateMode() const {
120 return values_.analysisDefaultDateMode;
121 }
122 int analysisDefaultYear() const noexcept {
123 return values_.analysisDefaultYear;
124 }
125 bool toolbarShowBooking() const noexcept {
126 return values_.toolbarShowBooking;
127 }
128 bool toolbarShowActors() const noexcept {
129 return values_.toolbarShowActors;
130 }
131 bool toolbarShowProperties() const noexcept {
132 return values_.toolbarShowProperties;
133 }
134 bool toolbarShowContracts() const noexcept {
135 return values_.toolbarShowContracts;
136 }
137 bool toolbarShowImport() const noexcept {
138 return values_.toolbarShowImport;
139 }
140 bool toolbarShowExport() const noexcept {
141 return values_.toolbarShowExport;
142 }
143 bool toolbarShowAnalysis() const noexcept {
144 return values_.toolbarShowAnalysis;
145 }
146 bool toolbarShowAnnual() const noexcept {
147 return values_.toolbarShowAnnual;
148 }
149 bool toolbarShowSettings() const noexcept {
150 return values_.toolbarShowSettings;
151 }
152
153 void setLanguage(const QString& value);
154 void setThemeMode(const QString& value);
155 void setAutosaveOnClose(bool value);
156 void setAutosaveIntervalMinutes(int value);
157 void setImportDefaultPath(const QString& value);
158 void setImportPoppler(const QString& value);
159 void setImportOpenCv(const QString& value);
160 void setImportTesseract(const QString& value);
161 void setImportParser(const QString& value);
162 void setImportMatcher(const QString& value);
163 void setExportDefaultDirectory(const QString& value);
164 void setExportArchiveFormat(int value);
165 void setExportIncludeFormulas(bool value);
166 void setAnalysisDefaultDateMode(const QString& value);
167 void setAnalysisDefaultYear(int value);
168 void setToolbarShowBooking(bool value);
169 void setToolbarShowActors(bool value);
170 void setToolbarShowProperties(bool value);
171 void setToolbarShowContracts(bool value);
172 void setToolbarShowImport(bool value);
173 void setToolbarShowExport(bool value);
174 void setToolbarShowAnalysis(bool value);
175 void setToolbarShowAnnual(bool value);
176 void setToolbarShowSettings(bool value);
177
181 void load();
182
186 void save();
187
191 void resetToDefaults();
192
197 bool hasChanges() const noexcept;
198
199signals:
224
229
233 void saved();
234
238 void reset();
239
240private:
241 struct Values {
242 QString language;
243 QString themeMode;
244 bool autosaveOnClose = true;
246 QString importDefaultPath;
247 QString importPoppler;
248 QString importOpenCv;
249 QString importTesseract;
250 QString importParser;
251 QString importMatcher;
253 int exportArchiveFormat = 0;
254 bool exportIncludeFormulas = true;
256 int analysisDefaultYear = 0;
257 bool toolbarShowBooking = true;
258 bool toolbarShowActors = true;
259 bool toolbarShowProperties = true;
260 bool toolbarShowContracts = true;
261 bool toolbarShowImport = true;
262 bool toolbarShowExport = true;
263 bool toolbarShowAnalysis = true;
264 bool toolbarShowAnnual = true;
265 bool toolbarShowSettings = true;
266
267 bool operator==(const Values& other) const;
268 };
269
270 static QString normalizeText(const QString& value);
271 static QString normalizeThemeMode(const QString& value);
272 static int normalizeArchiveFormat(int value) noexcept;
273 static int normalizeAutosaveIntervalMinutes(int value) noexcept;
274 static Values defaultValues();
275
276 template<typename TValue, typename TSignal>
277 void updateSetting(TValue& target, TValue value, TSignal signal) {
278 if (target == value) {
279 return;
280 }
281 target = std::move(value);
282 (this->*signal)();
283 emitStateChanged();
284 }
285
286 void emitStateChanged();
287 void applyDefaults();
288 void loadFromPersistentStore();
289 void persistToStore() const;
290 void captureSavedState();
291 void emitAllValueChanged();
292
293 Values values_;
294 Values savedValues_;
295};
296
297} // namespace ui
bool toolbarShowExport() const noexcept
Definition Settings.h:140
bool toolbarShowActors() const noexcept
Definition Settings.h:128
void toolbarShowAnnualChanged()
void setToolbarShowExport(bool value)
Definition Settings.cpp:356
void stateChanged()
Emitted when any settings value changes.
void importTesseractChanged()
bool hasChanges() const noexcept
Returns whether current values differ from the last saved state.
Definition Settings.cpp:397
void setToolbarShowBooking(bool value)
Definition Settings.cpp:331
void setAnalysisDefaultDateMode(const QString &value)
Definition Settings.cpp:320
void analysisDefaultYearChanged()
void toolbarShowActorsChanged()
void setImportOpenCv(const QString &value)
Definition Settings.cpp:288
QString importDefaultPath() const
Definition Settings.h:92
int analysisDefaultYear() const noexcept
Definition Settings.h:122
bool toolbarShowExport
Definition Settings.h:65
void setToolbarShowAnalysis(bool value)
Definition Settings.cpp:361
bool toolbarShowSettings
Definition Settings.h:71
void save()
Saves current settings to the platform settings store.
Definition Settings.cpp:383
void importOpenCvChanged()
void setThemeMode(const QString &value)
Definition Settings.cpp:263
void importDefaultPathChanged()
void setImportTesseract(const QString &value)
Definition Settings.cpp:292
void setAnalysisDefaultYear(int value)
Definition Settings.cpp:326
bool toolbarShowActors
Definition Settings.h:57
bool toolbarShowProperties
Definition Settings.h:59
bool exportIncludeFormulas() const noexcept
Definition Settings.h:116
QString importPoppler
Definition Settings.h:34
QString exportDefaultDirectory
Definition Settings.h:44
bool toolbarShowProperties() const noexcept
Definition Settings.h:131
bool toolbarShowContracts
Definition Settings.h:61
void analysisDefaultDateModeChanged()
bool toolbarShowBooking() const noexcept
Definition Settings.h:125
QString analysisDefaultDateMode() const
Definition Settings.h:119
void toolbarShowPropertiesChanged()
QString themeMode
Definition Settings.h:25
void autosaveOnCloseChanged()
void setExportArchiveFormat(int value)
Definition Settings.cpp:310
void toolbarShowContractsChanged()
void setImportPoppler(const QString &value)
Definition Settings.cpp:284
QString importTesseract() const
Definition Settings.h:101
void toolbarShowExportChanged()
void load()
Loads persisted settings from the platform settings store.
Definition Settings.cpp:376
int exportArchiveFormat() const noexcept
Definition Settings.h:113
void importParserChanged()
void setToolbarShowImport(bool value)
Definition Settings.cpp:351
void reset()
Emitted after settings have been reset to defaults.
void setAutosaveOnClose(bool value)
Definition Settings.cpp:268
void importMatcherChanged()
void toolbarShowBookingChanged()
void toolbarShowImportChanged()
bool toolbarShowSettings() const noexcept
Definition Settings.h:149
QString importParser
Definition Settings.h:40
void languageChanged()
void setToolbarShowActors(bool value)
Definition Settings.cpp:336
void setImportDefaultPath(const QString &value)
Definition Settings.cpp:279
bool toolbarShowContracts() const noexcept
Definition Settings.h:134
void themeModeChanged()
void setImportParser(const QString &value)
Definition Settings.cpp:297
QString importMatcher
Definition Settings.h:42
void setToolbarShowSettings(bool value)
Definition Settings.cpp:371
QString themeMode() const
Definition Settings.h:83
bool toolbarShowAnnual
Definition Settings.h:69
void resetToDefaults()
Restores default settings values in memory.
Definition Settings.cpp:390
void saved()
Emitted after settings have been persisted.
bool toolbarShowAnalysis() const noexcept
Definition Settings.h:143
void autosaveIntervalMinutesChanged()
bool toolbarShowImport
Definition Settings.h:63
Settings(QObject *parent=nullptr)
Creates the settings store exposed to QML.
Definition Settings.cpp:28
void setLanguage(const QString &value)
Definition Settings.cpp:256
bool toolbarShowAnalysis
Definition Settings.h:67
int analysisDefaultYear
Definition Settings.h:53
int autosaveIntervalMinutes() const noexcept
Definition Settings.h:89
void exportDefaultDirectoryChanged()
QString importDefaultPath
Definition Settings.h:32
QString importParser() const
Definition Settings.h:104
bool exportIncludeFormulas
Definition Settings.h:48
void setExportDefaultDirectory(const QString &value)
Definition Settings.cpp:305
void setToolbarShowProperties(bool value)
Definition Settings.cpp:341
QString analysisDefaultDateMode
Definition Settings.h:51
QString importTesseract
Definition Settings.h:38
QString importMatcher() const
Definition Settings.h:107
void exportArchiveFormatChanged()
void toolbarShowSettingsChanged()
QString importOpenCv
Definition Settings.h:36
QString importPoppler() const
Definition Settings.h:95
bool toolbarShowImport() const noexcept
Definition Settings.h:137
QString importOpenCv() const
Definition Settings.h:98
int autosaveIntervalMinutes
Definition Settings.h:30
int exportArchiveFormat
Definition Settings.h:46
void setAutosaveIntervalMinutes(int value)
Definition Settings.cpp:273
void setToolbarShowContracts(bool value)
Definition Settings.cpp:346
void toolbarShowAnalysisChanged()
void setExportIncludeFormulas(bool value)
Definition Settings.cpp:315
bool autosaveOnClose
Definition Settings.h:27
bool toolbarShowBooking
Definition Settings.h:55
bool toolbarShowAnnual() const noexcept
Definition Settings.h:146
void setToolbarShowAnnual(bool value)
Definition Settings.cpp:366
void importPopplerChanged()
bool autosaveOnClose() const noexcept
Definition Settings.h:86
QString exportDefaultDirectory() const
Definition Settings.h:110
void exportIncludeFormulasChanged()
QString language
Definition Settings.h:23
void setImportMatcher(const QString &value)
Definition Settings.cpp:301