-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPersistData.h
More file actions
100 lines (87 loc) · 4.11 KB
/
PersistData.h
File metadata and controls
100 lines (87 loc) · 4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#ifndef PERSISTDATA_H
#define PERSISTDATA_H
#include <QObject>
#include <QSettings>
#include <QVariant>
#include <QString>
/**
* @class PersistData
* @brief Centralized persistent storage for system/user settings.
*
* Settings file:
* ~/.config/G1 Thin Client PC/G1ThinClientPC.ini
*
* Group:
* [ThinClient]
*/
class PersistData : public QObject {
Q_OBJECT
Q_PROPERTY(int audio READ audio WRITE setAudio NOTIFY audioChanged)
Q_PROPERTY(QString timeZone READ timeZone WRITE setTimeZone NOTIFY timeZoneChanged)
Q_PROPERTY(bool enableOnScreenKeyboard READ enableOnScreenKeyboard WRITE setEnableOnScreenKeyboard NOTIFY enableOnScreenKeyboardChanged)
Q_PROPERTY(bool enableTouchScreen READ enableTouchScreen WRITE setEnableTouchScreen NOTIFY enableTouchScreenChanged)
Q_PROPERTY(QString resolution READ resolution WRITE setResolution NOTIFY resolutionChanged)
Q_PROPERTY(QString ethernet READ ethernet WRITE setEthernet NOTIFY ethernetChanged)
Q_PROPERTY(QString network READ network WRITE setNetwork NOTIFY networkChanged)
Q_PROPERTY(QString orientation READ orientation WRITE setOrientation NOTIFY orientationChanged)
Q_PROPERTY(int deviceOff READ deviceOff WRITE setDeviceOff NOTIFY deviceOffChanged)
Q_PROPERTY(int displayOff READ displayOff WRITE setDisplayOff NOTIFY displayOffChanged)
Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged FINAL)
Q_PROPERTY(QString gfxMode READ gfxMode WRITE setGfxMode NOTIFY gfxModeChanged FINAL)
Q_PROPERTY(bool menuAnimation READ menuAnimation WRITE setMenuAnimation NOTIFY menuAnimationChanged FINAL)
public:
explicit PersistData(QObject *parent = nullptr);
~PersistData();
Q_INVOKABLE void saveData(const QString &key, const QVariant &value);
Q_INVOKABLE QString getData(const QString &key);
bool resetSettings();
int audio() const; void setAudio(const int &value);
QString timeZone() const; void setTimeZone(const QString &value);
bool enableOnScreenKeyboard() const; void setEnableOnScreenKeyboard(bool value);
bool enableTouchScreen() const; void setEnableTouchScreen(bool value);
QString resolution() const; void setResolution(const QString &value);
QString ethernet() const; void setEthernet(const QString &value);
QString network() const; void setNetwork(const QString &value);
QString orientation() const; void setOrientation(const QString &value);
int deviceOff() const; void setDeviceOff(const int &value);
int displayOff() const; void setDisplayOff(const int &value);
QString language() const; void setLanguage(const QString &value);
QString gfxMode() const; void setGfxMode(const QString &newGfxMode);
bool menuAnimation() const; void setMenuAnimation(bool newMenuAnimation);
signals:
void audioChanged();
void timeZoneChanged();
void enableOnScreenKeyboardChanged();
void enableTouchScreenChanged();
void resolutionChanged();
void ethernetChanged();
void networkChanged();
void orientationChanged();
void deviceOffChanged();
void displayOffChanged();
void languageChanged();
void gfxModeChanged();
void menuAnimationChanged();
private:
void loadOrDefault(const QString &key, QString &var, const QString &def);
void loadOrDefault(const QString &key, bool &var, bool def);
void loadOrDefault(const QString &key, int &var, int def);
bool setSystemTimezone(const QString &tzId);
void logChange(const QString &key, const QVariant &value);
QSettings m_setting;
const QString m_group = "ThinClient";
int m_audio = 0;
QString m_timeZone;
bool m_enableOnScreenKeyboard = false;
bool m_enableTouchScreen = false;
QString m_resolution;
QString m_ethernet;
QString m_network;
QString m_orientation;
int m_deviceOff = 0;
int m_displayOff = 0;
QString m_language;
QString m_gfxMode;
bool m_menuAnimation = false;
};
#endif // PERSISTDATA_H