Deskflow 1.26.0.207
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:
40 enum class Fix : int8_t
41 {
47 };
48
49protected:
50 explicit ScreenConfig() = default;
51 ~ScreenConfig() = default;
52
53 template <typename T1, typename T2>
54 void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue)
55 {
56 int entries = settings.beginReadArray(arrayName + "Array");
57 array.clear();
58 for (int i = 0; i < entries; i++) {
59 settings.setArrayIndex(i);
60 QVariant v = settings.value(arrayName, defaultValue);
61 array.append(v.value<T2>());
62 }
63 settings.endArray();
64 }
65
66 template <typename T1, typename T2>
67 void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue, int entries)
68 {
69 Q_ASSERT(array.size() >= entries);
70 settings.beginReadArray(arrayName + "Array");
71 for (int i = 0; i < entries; i++) {
72 settings.setArrayIndex(i);
73 QVariant v = settings.value(arrayName, defaultValue);
74 array[i] = v.value<T2>();
75 }
76 settings.endArray();
77 }
78
79 template <typename T> void writeSettings(QSettingsProxy &settings, const T &array, const QString &arrayName) const
80 {
81 settings.beginWriteArray(arrayName + "Array");
82 for (int i = 0; i < array.size(); i++) {
83 settings.setArrayIndex(i);
84 settings.setValue(arrayName, array[i]);
85 }
86 settings.endArray();
87 }
88
89public:
90 static const char *modifierName(int idx)
91 {
92 return m_ModifierNames[idx];
93 }
94 static const char *fixName(int idx)
95 {
96 return m_FixNames[idx];
97 }
98 static const char *switchCornerName(int idx)
99 {
100 return m_SwitchCornerNames[idx];
101 }
102
103private:
104 static const char *m_ModifierNames[];
105 static const char *m_FixNames[];
106 static const char *m_SwitchCornerNames[];
107};
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:54
~ScreenConfig()=default
void readSettings(QSettingsProxy &settings, T1 &array, const QString &arrayName, const T2 &defaultValue, int entries)
Definition ScreenConfig.h:67
SwitchCorner
Definition ScreenConfig.h:33
@ TopRight
Definition ScreenConfig.h:35
@ NumSwitchCorners
Definition ScreenConfig.h:38
@ BottomRight
Definition ScreenConfig.h:37
@ BottomLeft
Definition ScreenConfig.h:36
@ TopLeft
Definition ScreenConfig.h:34
Fix
Definition ScreenConfig.h:41
@ XTest
Definition ScreenConfig.h:45
@ ScrollLock
Definition ScreenConfig.h:44
@ CapsLock
Definition ScreenConfig.h:42
@ NumLock
Definition ScreenConfig.h:43
@ NumFixes
Definition ScreenConfig.h:46
Modifier
Definition ScreenConfig.h:21
@ Super
Definition ScreenConfig.h:27
@ NumModifiers
Definition ScreenConfig.h:30
@ Ctrl
Definition ScreenConfig.h:24
@ AltGr
Definition ScreenConfig.h:28
@ None
Definition ScreenConfig.h:29
@ 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:98
void writeSettings(QSettingsProxy &settings, const T &array, const QString &arrayName) const
Definition ScreenConfig.h:79
static const char * fixName(int idx)
Definition ScreenConfig.h:94
ScreenConfig()=default
static const char * modifierName(int idx)
Definition ScreenConfig.h:90