Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
Action.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 - 2016 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 "KeySequence.h"
11
12#include <QList>
13#include <QString>
14#include <QStringList>
15
16class ActionDialog;
17class QSettings;
18class QTextStream;
19
20namespace SettingsKeys {
21inline static const QString ActionType = QStringLiteral("type");
22inline static const QString ScreenNames = QStringLiteral("typeScreenNames");
23inline static const QString ScreenName = QStringLiteral("typeScreenName");
24inline static const QString SwitchToScreen = QStringLiteral("switchScreenName");
25inline static const QString SwitchDirection = QStringLiteral("switchInDirection");
26inline static const QString LockToScreen = QStringLiteral("lockCursorToScreen");
27inline static const QString ActiveOnRelease = QStringLiteral("activeOnRelease");
28inline static const QString HasScreens = QStringLiteral("hasScreens");
29inline static const QString RestartServer = QStringLiteral("restartServer");
30}; // namespace SettingsKeys
31
32class Action
33{
34 friend class ActionDialog;
35 friend QTextStream &operator<<(QTextStream &outStream, const Action &action);
36
37public:
64
65public:
66 Action() = default;
67
68 QString text() const;
69 const KeySequence &keySequence() const
70 {
71 return m_keySequence;
72 }
73 void loadSettings(QSettings &settings);
74 void saveSettings(QSettings &settings) const;
75 int type() const
76 {
77 return m_type;
78 }
79 const QStringList &typeScreenNames() const
80 {
81 return m_typeScreenNames;
82 }
83 const QString &switchScreenName() const
84 {
85 return m_switchScreenName;
86 }
87 int switchDirection() const
88 {
89 return m_switchDirection;
90 }
91 int lockCursorMode() const
92 {
93 return m_lockCursorMode;
94 }
95 bool activeOnRelease() const
96 {
97 return m_activeOnRelease;
98 }
99 bool haveScreens() const
100 {
101 return m_hasScreens;
102 }
103 bool restartServer() const
104 {
105 return m_restartServer;
106 }
107
108 bool operator==(const Action &a) const;
109
110protected:
112 {
113 return m_keySequence;
114 }
116 {
117 m_keySequence = seq;
118 }
119 void setType(int t)
120 {
121 m_type = t;
122 }
123 QStringList &typeScreenNames()
124 {
125 return m_typeScreenNames;
126 }
127 void setSwitchScreenName(const QString &n)
128 {
129 m_switchScreenName = n;
130 }
132 {
133 m_switchDirection = d;
134 }
136 {
137 m_lockCursorMode = m;
138 }
140 {
141 m_activeOnRelease = b;
142 }
143 void setHaveScreens(bool b)
144 {
145 m_hasScreens = b;
146 }
147 void setRestartServer(bool b)
148 {
149 m_restartServer = b;
150 }
151
152private:
153 KeySequence m_keySequence;
154 int m_type = keystroke;
155 QStringList m_typeScreenNames = QStringList();
156 QString m_switchScreenName = QString();
157 int m_switchDirection = switchLeft;
158 int m_lockCursorMode = lockCursorToggle;
159 bool m_activeOnRelease = false;
160 bool m_hasScreens = false;
161 bool m_restartServer;
162
163 inline static const QString m_commandTemplate = QStringLiteral("(%1)");
164 inline static const QStringList m_actionTypeNames{
165 QStringLiteral("keyDown"), QStringLiteral("keyUp"),
166 QStringLiteral("keystroke"), QStringLiteral("switchToScreen"),
167 QStringLiteral("switchInDirection"), QStringLiteral("lockCursorToScreen"),
168 QStringLiteral("restartServer"), QStringLiteral("mouseDown"),
169 QStringLiteral("mouseUp"), QStringLiteral("mousebutton")
170 };
171
172 inline static const QStringList m_switchDirectionNames{
173 QStringLiteral("left"), QStringLiteral("right"), QStringLiteral("up"), QStringLiteral("down")
174 };
175
176 inline static const QStringList m_lockCursorModeNames{
177 QStringLiteral("toggle"), QStringLiteral("on"), QStringLiteral("off")
178 };
179};
180
181using ActionList = QList<Action>;
182
183QTextStream &operator<<(QTextStream &outStream, const Action &action);
QList< Action > ActionList
Definition Action.h:181
QTextStream & operator<<(QTextStream &outStream, const Action &action)
Definition Action.cpp:107
Definition ActionDialog.h:23
Definition Action.h:33
bool haveScreens() const
Definition Action.h:99
bool activeOnRelease() const
Definition Action.h:95
void setSwitchScreenName(const QString &n)
Definition Action.h:127
LockCursorMode
Definition Action.h:59
@ lockCursorOff
Definition Action.h:62
@ lockCursonOn
Definition Action.h:61
@ lockCursorToggle
Definition Action.h:60
const QStringList & typeScreenNames() const
Definition Action.h:79
void setActiveOnRelease(bool b)
Definition Action.h:139
SwitchDirection
Definition Action.h:52
@ switchRight
Definition Action.h:54
@ switchUp
Definition Action.h:55
@ switchDown
Definition Action.h:56
@ switchLeft
Definition Action.h:53
void setHaveScreens(bool b)
Definition Action.h:143
void loadSettings(QSettings &settings)
Definition Action.cpp:58
void setLockCursorMode(int m)
Definition Action.h:135
QStringList & typeScreenNames()
Definition Action.h:123
const QString & switchScreenName() const
Definition Action.h:83
friend class ActionDialog
Definition Action.h:34
int lockCursorMode() const
Definition Action.h:91
void setType(int t)
Definition Action.h:119
void setKeySequence(const KeySequence &seq)
Definition Action.h:115
KeySequence & keySequence()
Definition Action.h:111
void saveSettings(QSettings &settings) const
Definition Action.cpp:79
int switchDirection() const
Definition Action.h:87
friend QTextStream & operator<<(QTextStream &outStream, const Action &action)
Definition Action.cpp:107
ActionType
Definition Action.h:39
@ switchToScreen
Definition Action.h:43
@ mousebutton
Definition Action.h:49
@ mouseDown
Definition Action.h:47
@ restartAllConnections
Definition Action.h:46
@ switchInDirection
Definition Action.h:44
@ keystroke
Definition Action.h:42
@ mouseUp
Definition Action.h:48
@ keyUp
Definition Action.h:41
@ lockCursorToScreen
Definition Action.h:45
@ keyDown
Definition Action.h:40
bool operator==(const Action &a) const
Definition Action.cpp:99
int type() const
Definition Action.h:75
QString text() const
Definition Action.cpp:13
void setSwitchDirection(int d)
Definition Action.h:131
const KeySequence & keySequence() const
Definition Action.h:69
Action()=default
void setRestartServer(bool b)
Definition Action.h:147
bool restartServer() const
Definition Action.h:103
Definition KeySequence.h:16
Definition Action.h:20
static const QString SwitchToScreen
Definition Action.h:24
static const QString HasScreens
Definition Action.h:28
static const QString ActiveOnRelease
Definition Action.h:27
static const QString LockToScreen
Definition Action.h:26
static const QString ActionType
Definition Action.h:21
static const QString RestartServer
Definition Action.h:29
static const QString ScreenName
Definition Action.h:23
static const QString SwitchDirection
Definition Action.h:25
static const QString ScreenNames
Definition Action.h:22