14#include "common/Constants.h"
17class Settings :
public QObject
22 inline const static auto UserDir = QStringLiteral(
"%1/AppData/Roaming/%2").arg(QDir::homePath(), kAppName);
23 inline const static auto SystemDir = QStringLiteral(
"%1ProgramData/%2").arg(QDir::rootPath(), kAppName);
24#elif defined(Q_OS_MACOS)
25 inline const static auto UserDir = QStringLiteral(
"%1/Library/%2").arg(QDir::homePath(), kAppName);
26 inline const static auto SystemDir = QStringLiteral(
"/Library/%1").arg(kAppName);
28 inline const static auto UserDir = QStringLiteral(
"%1/.config/%2").arg(QDir::homePath(), kAppName);
29 inline const static auto SystemDir = QStringLiteral(
"/etc/%1").arg(kAppName);
38 inline static const auto ScrollSpeed = QStringLiteral(
"client/yscroll");
39 inline static const auto LanguageSync = QStringLiteral(
"client/languageSync");
40 inline static const auto RemoteHost = QStringLiteral(
"client/remoteHost");
41 inline static const auto XdpRestoreToken = QStringLiteral(
"client/xdpRestoreToken");
45 inline static const auto CoreMode = QStringLiteral(
"core/coreMode");
46 inline static const auto Interface = QStringLiteral(
"core/interface");
47 inline static const auto LastVersion = QStringLiteral(
"core/lastVersion");
48 inline static const auto Port = QStringLiteral(
"core/port");
49 inline static const auto PreventSleep = QStringLiteral(
"core/preventSleep");
50 inline static const auto ProcessMode = QStringLiteral(
"core/processMode");
51 inline static const auto ScreenName = QStringLiteral(
"core/screenName");
52 inline static const auto Display = QStringLiteral(
"core/display");
53 inline static const auto UseHooks = QStringLiteral(
"core/useHooks");
54 inline static const auto Language = QStringLiteral(
"core/language");
55 inline static const auto UseWlClipboard = QStringLiteral(
"core/wlClipboard");
59 inline static const auto Command = QStringLiteral(
"daemon/command");
60 inline static const auto Elevate = QStringLiteral(
"daemon/elevate");
61 inline static const auto LogFile = QStringLiteral(
"daemon/logFile");
62 inline static const auto LogLevel = QStringLiteral(
"daemon/logLevel");
66 inline static const auto Autohide = QStringLiteral(
"gui/autoHide");
67 inline static const auto AutoStartCore = QStringLiteral(
"gui/startCoreWithGui");
68 inline static const auto AutoUpdateCheck = QStringLiteral(
"gui/enableUpdateCheck");
69 inline static const auto UpdateCheckUrl = QStringLiteral(
"gui/updateCheckUrl");
70 inline static const auto CloseReminder = QStringLiteral(
"gui/closeReminder");
71 inline static const auto CloseToTray = QStringLiteral(
"gui/closeToTray");
72 inline static const auto LogExpanded = QStringLiteral(
"gui/logExpanded");
74 inline static const auto WindowGeometry = QStringLiteral(
"gui/windowGeometry");
81 inline static const auto File = QStringLiteral(
"log/file");
82 inline static const auto Level = QStringLiteral(
"log/level");
83 inline static const auto ToFile = QStringLiteral(
"log/toFile");
84 inline static const auto GuiDebug = QStringLiteral(
"log/guiDebug");
88 inline static const auto CheckPeers = QStringLiteral(
"security/checkPeerFingerprints");
89 inline static const auto Certificate = QStringLiteral(
"security/certificate");
90 inline static const auto KeySize = QStringLiteral(
"security/keySize");
91 inline static const auto TlsEnabled = QStringLiteral(
"security/tlsEnabled");
95 inline static const auto ExternalConfig = QStringLiteral(
"server/externalConfig");
123 static void setStateFile(
const QString &stateFile = QString());
124 static void setValue(
const QString &
key = QString(),
const QVariant &
value = QVariant());
125 static QVariant
value(
const QString &
key = QString());
137 static void save(
bool emitSaving =
true);
147 explicit Settings(QObject *parent =
nullptr);
148 Settings *operator=(Settings &other) =
delete;
149 Settings(
const Settings &other) =
delete;
150 ~Settings()
override =
default;
151 void cleanSettings();
152 void cleanStateSettings();
157 void setupScreenName();
164 static QString cleanScreenName(
const QString &
name);
166 QSettings *m_settings =
nullptr;
167 QSettings *m_stateSettings =
nullptr;
168 std::shared_ptr<QSettingsProxy> m_settingsProxy;
171 inline static const QStringList m_logLevels = {
172 QStringLiteral(
"FATAL")
173 , QStringLiteral(
"ERROR")
174 , QStringLiteral(
"WARNING")
175 , QStringLiteral(
"NOTE")
176 , QStringLiteral(
"INFO")
177 , QStringLiteral(
"DEBUG")
178 , QStringLiteral(
"DEBUG1")
179 , QStringLiteral(
"DEBUG2")
182 inline static const QStringList m_validKeys = {
227 inline static const QStringList m_defaultFalseValues = {
241 inline static const QStringList m_defaultTrueValues = {
static const struct sockaddr FAR * name
Definition ArchNetworkWinsock.cpp:28
static int level
Definition ArchNetworkWinsock.cpp:31
int key
Definition KeySequence.cpp:15
Definition QSettingsProxy.h:14
static bool isPortableMode()
Definition Settings.cpp:227
static const auto SystemSettingFile
Definition Settings.h:33
static int logLevelToInt(const QString &level)
Definition Settings.cpp:140
static const auto UserDir
Definition Settings.h:28
static const auto UserSettingFile
Definition Settings.h:32
static void setValue(const QString &key=QString(), const QVariant &value=QVariant())
Definition Settings.cpp:263
static void setSettingsFile(const QString &settingsFile=QString())
Definition Settings.cpp:23
static QVariant value(const QString &key=QString())
Definition Settings.cpp:284
static QVariant defaultValue(const QString &key)
Definition Settings.cpp:147
static QString tlsTrustedClientsDb()
Definition Settings.cpp:258
static QString tlsDir()
Definition Settings.cpp:248
static QString portableSettingsFile()
Definition Settings.cpp:298
static void setStateFile(const QString &stateFile=QString())
Definition Settings.cpp:40
static QSettingsProxy & proxy()
Definition Settings.cpp:204
static QString tlsTrustedServersDb()
Definition Settings.cpp:253
static QStringList validKeys()
Definition Settings.cpp:217
static QString settingsFile()
Definition Settings.cpp:233
CoreMode
Definition Settings.h:114
@ None
Definition Settings.h:115
static void restoreDefaultSettings()
Definition Settings.cpp:291
ProcessMode
Definition Settings.h:107
@ Service
Definition Settings.h:108
@ Desktop
Definition Settings.h:109
void serverSettingsChanged()
static bool isWritable()
Definition Settings.cpp:222
static const auto SystemDir
Definition Settings.h:29
static Settings * instance()
Definition Settings.cpp:17
static void save(bool emitSaving=true)
Definition Settings.cpp:209
static QString settingsPath()
Definition Settings.cpp:238
static QString logLevelText()
Definition Settings.cpp:199
void settingsChanged(const QString key)
static const auto ScrollSpeed
Definition Settings.h:38
static const auto LanguageSync
Definition Settings.h:39
static const auto InvertScrollDirection
Definition Settings.h:37
static const auto RemoteHost
Definition Settings.h:40
static const auto XdpRestoreToken
Definition Settings.h:41
static const auto LastVersion
Definition Settings.h:47
static const auto Display
Definition Settings.h:52
static const auto Interface
Definition Settings.h:46
static const auto PreventSleep
Definition Settings.h:49
static const auto UseHooks
Definition Settings.h:53
static const auto Language
Definition Settings.h:54
static const auto CoreMode
Definition Settings.h:45
static const auto Port
Definition Settings.h:48
static const auto UseWlClipboard
Definition Settings.h:55
static const auto ProcessMode
Definition Settings.h:50
static const auto ScreenName
Definition Settings.h:51
static const auto Elevate
Definition Settings.h:60
static const auto LogFile
Definition Settings.h:61
static const auto Command
Definition Settings.h:59
static const auto LogLevel
Definition Settings.h:62
static const auto Autohide
Definition Settings.h:66
static const auto SymbolicTrayIcon
Definition Settings.h:73
static const auto WindowGeometry
Definition Settings.h:74
static const auto AutoUpdateCheck
Definition Settings.h:68
static const auto ShowGenericClientFailureDialog
Definition Settings.h:75
static const auto CloseReminder
Definition Settings.h:70
static const auto ShownFirstConnectedMessage
Definition Settings.h:76
static const auto AutoStartCore
Definition Settings.h:67
static const auto UpdateCheckUrl
Definition Settings.h:69
static const auto CloseToTray
Definition Settings.h:71
static const auto ShownServerFirstStartMessage
Definition Settings.h:77
static const auto LogExpanded
Definition Settings.h:72
static const auto ToFile
Definition Settings.h:83
static const auto GuiDebug
Definition Settings.h:84
static const auto File
Definition Settings.h:81
static const auto Level
Definition Settings.h:82
static const auto CheckPeers
Definition Settings.h:88
static const auto Certificate
Definition Settings.h:89
static const auto KeySize
Definition Settings.h:90
static const auto TlsEnabled
Definition Settings.h:91
static const auto ExternalConfigFile
Definition Settings.h:96
static const auto ExternalConfig
Definition Settings.h:95