Deskflow 1.27.0.7
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
ComputerConfig.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2026 Deskflow Developers
4 * SPDX-FileCopyrightText: (C) 2012 Synergy App Ltd
5 * SPDX-FileCopyrightText: (C) 2008 Volker Lanz <vl@fidra.de>
6 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
7 */
8
9#pragma once
10
11#include <QString>
12#include <QVariant>
13
15
18{
19
20public:
21 enum class SwitchCorner : int8_t
22 {
23 TopLeft,
24 TopRight,
25 BottomLeft,
26 BottomRight
27 };
28 enum class Fix : int8_t
29 {
30 CapsLock,
31 NumLock,
32 ScrollLock,
33 XTest
34 };
35
36protected:
37 explicit ComputerConfig() = default;
38 ~ComputerConfig() = default;
39
40 template <typename T1, typename T2>
41 void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue)
42 {
43 int entries = settings.beginReadArray(arrayName + "Array");
44 array.clear();
45 for (int i = 0; i < entries; i++) {
46 settings.setArrayIndex(i);
47 QVariant v = settings.value(arrayName, defaultValue);
48 array.append(v.value<T2>());
49 }
50 settings.endArray();
51 }
52
53 template <typename T1, typename T2>
54 void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue, int entries)
55 {
56 Q_ASSERT(array.size() >= entries);
57 settings.beginReadArray(arrayName + "Array");
58 for (int i = 0; i < entries; i++) {
59 settings.setArrayIndex(i);
60 QVariant v = settings.value(arrayName, defaultValue);
61 array[i] = v.value<T2>();
62 }
63 settings.endArray();
64 }
65
66 template <typename T> void writeSettings(QSettingsProxy &settings, const T &array, const QString &arrayName) const
67 {
68 settings.beginWriteArray(arrayName + "Array");
69 for (int i = 0; i < array.size(); i++) {
70 settings.setArrayIndex(i);
71 settings.setValue(arrayName, array[i]);
72 }
73 settings.endArray();
74 }
75};
~ComputerConfig()=default
Fix
Definition ComputerConfig.h:29
SwitchCorner
Definition ComputerConfig.h:22
void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue)
Definition ComputerConfig.h:41
void writeSettings(QSettingsProxy &settings, const T &array, const QString &arrayName) const
Definition ComputerConfig.h:66
void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue, int entries)
Definition ComputerConfig.h:54
ComputerConfig()=default
Definition QSettingsProxy.h:14
virtual void beginWriteArray(const QString &prefix)
Definition QSettingsProxy.cpp:62
virtual void endArray()
Definition QSettingsProxy.cpp:57
virtual int beginReadArray(const QString &prefix)
Definition QSettingsProxy.cpp:37
virtual void setArrayIndex(int i)
Definition QSettingsProxy.cpp:42
virtual QVariant value(const QString &key) const
Definition QSettingsProxy.cpp:47
virtual void setValue(const QString &key, const QVariant &value)
Definition QSettingsProxy.cpp:67