Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
ScreenConfig.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 Symless Ltd.
4 * SPDX-FileCopyrightText: (C) 2008 Volker Lanz <vl@fidra.de>
5 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6 */
7
8#pragma once
9
10#include <QString>
11#include <QVariant>
12
14
17{
18
19public:
39 enum class Fix : int8_t
40 {
46 };
47
48protected:
49 explicit ScreenConfig() = default;
50 ~ScreenConfig() = default;
51
52 template <typename T1, typename T2>
53 void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue)
54 {
55 int entries = settings.beginReadArray(arrayName + "Array");
56 array.clear();
57 for (int i = 0; i < entries; i++) {
58 settings.setArrayIndex(i);
59 QVariant v = settings.value(arrayName, defaultValue);
60 array.append(v.value<T2>());
61 }
62 settings.endArray();
63 }
64
65 template <typename T1, typename T2>
66 void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue, int entries)
67 {
68 Q_ASSERT(array.size() >= entries);
69 settings.beginReadArray(arrayName + "Array");
70 for (int i = 0; i < entries; i++) {
71 settings.setArrayIndex(i);
72 QVariant v = settings.value(arrayName, defaultValue);
73 array[i] = v.value<T2>();
74 }
75 settings.endArray();
76 }
77
78 template <typename T> void writeSettings(QSettingsProxy &settings, const T &array, const QString &arrayName) const
79 {
80 settings.beginWriteArray(arrayName + "Array");
81 for (int i = 0; i < array.size(); i++) {
82 settings.setArrayIndex(i);
83 settings.setValue(arrayName, array[i]);
84 }
85 settings.endArray();
86 }
87
88public:
89 static const char *modifierName(int idx)
90 {
91 return m_ModifierNames[idx];
92 }
93 static const char *fixName(int idx)
94 {
95 return m_FixNames[idx];
96 }
97 static const char *switchCornerName(int idx)
98 {
99 return m_SwitchCornerNames[idx];
100 }
101
102private:
103 static const char *m_ModifierNames[];
104 static const char *m_FixNames[];
105 static const char *m_SwitchCornerNames[];
106};
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
void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue)
Definition ScreenConfig.h:53
~ScreenConfig()=default
void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue, int entries)
Definition ScreenConfig.h:66
SwitchCorner
Definition ScreenConfig.h:32
@ TopRight
Definition ScreenConfig.h:34
@ NumSwitchCorners
Definition ScreenConfig.h:37
@ BottomRight
Definition ScreenConfig.h:36
@ BottomLeft
Definition ScreenConfig.h:35
@ TopLeft
Definition ScreenConfig.h:33
Fix
Definition ScreenConfig.h:40
@ XTest
Definition ScreenConfig.h:44
@ ScrollLock
Definition ScreenConfig.h:43
@ CapsLock
Definition ScreenConfig.h:41
@ NumLock
Definition ScreenConfig.h:42
@ NumFixes
Definition ScreenConfig.h:45
Modifier
Definition ScreenConfig.h:21
@ Super
Definition ScreenConfig.h:27
@ NumModifiers
Definition ScreenConfig.h:29
@ Ctrl
Definition ScreenConfig.h:24
@ None
Definition ScreenConfig.h:28
@ Shift
Definition ScreenConfig.h:23
@ Alt
Definition ScreenConfig.h:25
@ Meta
Definition ScreenConfig.h:26
@ DefaultMod
Definition ScreenConfig.h:22
static const char * switchCornerName(int idx)
Definition ScreenConfig.h:97
void writeSettings(QSettingsProxy &settings, const T &array, const QString &arrayName) const
Definition ScreenConfig.h:78
static const char * fixName(int idx)
Definition ScreenConfig.h:93
ScreenConfig()=default
static const char * modifierName(int idx)
Definition ScreenConfig.h:89