Deskflow 1.27.0.8
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
KeyboardModifier.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-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
5 */
6
7#pragma once
8
9#include "KeyModifierID.h"
10
11#include <QObject>
12#include <QString>
13
14inline static const auto kModifierNameAlt = "alt";
15inline static const auto kModifierNameAltGr = "altgr";
16inline static const auto kModifierNameCtrl = "ctrl";
17inline static const auto kModifierNameMeta = "meta";
18inline static const auto kModifierNameNone = "none";
19inline static const auto kModifierNameShift = "shift";
20inline static const auto kModifierNameSuper = "super";
21
34
35static QString keyboardModifierToOption(const KeyboardModifier modifier)
36{
37 using enum KeyboardModifier;
38 switch (modifier) {
39 case Alt:
40 return kModifierNameAlt;
41 case AltGr:
42 return kModifierNameAltGr;
43 case Ctrl:
44 return kModifierNameCtrl;
45 case Meta:
46 return kModifierNameMeta;
47 case None:
48 return kModifierNameNone;
49 case Shift:
50 return kModifierNameShift;
51 case Super:
52 return kModifierNameSuper;
53 default:
54 return {};
55 }
56}
57
58static QString valueToKeyboardModifierOption(int modifier)
59{
60 return keyboardModifierToOption(static_cast<KeyboardModifier>(modifier));
61}
62
63static KeyboardModifier keyboardModifierFromString(const QString &modifier)
64{
65 using enum KeyboardModifier;
66 if (modifier.compare(kModifierNameShift, Qt::CaseInsensitive) == 0 ||
67 modifier.localeAwareCompare(QObject::tr("Shift")) == 0)
68 return Shift;
69 if (modifier.compare(kModifierNameCtrl, Qt::CaseInsensitive) == 0 ||
70 modifier.localeAwareCompare(QObject::tr("Ctrl")) == 0)
71 return Ctrl;
72 if (modifier.compare(kModifierNameAlt, Qt::CaseInsensitive) == 0 ||
73 modifier.localeAwareCompare(QObject::tr("Alt")) == 0)
74 return Alt;
75 if (modifier.compare(kModifierNameMeta, Qt::CaseInsensitive) == 0 ||
76 modifier.localeAwareCompare(QObject::tr("Meta")) == 0)
77 return Meta;
78 if (modifier.compare(kModifierNameSuper, Qt::CaseInsensitive) == 0 ||
79 modifier.localeAwareCompare(QObject::tr("Super")) == 0)
80 return Super;
81 if (modifier.compare(kModifierNameAltGr, Qt::CaseInsensitive) == 0 ||
82 modifier.localeAwareCompare(QObject::tr("AltGr")) == 0)
83 return AltGr;
84 if (modifier.compare(kModifierNameNone, Qt::CaseInsensitive) == 0 ||
85 modifier.localeAwareCompare(QObject::tr("None")) == 0)
86 return None;
87 return DefaultMod;
88}
89
90static int modifierValueFromString(const QString &modifier)
91{
92 return static_cast<int>(keyboardModifierFromString(modifier));
93}
94
95static int32_t modifierIDValueFromString(const QString &modifier)
96{
98 if (mod == kModifierNameShift)
99 return static_cast<int32_t>(kKeyModifierIDShift);
100 if (mod == kModifierNameCtrl)
101 return static_cast<int32_t>(kKeyModifierIDControl);
102 if (mod == kModifierNameAlt)
103 return static_cast<int32_t>(kKeyModifierIDAlt);
104 if (mod == kModifierNameAltGr)
105 return static_cast<int32_t>(kKeyModifierIDAltGr);
106 if (mod == kModifierNameMeta)
107 return static_cast<int32_t>(kKeyModifierIDMeta);
108 if (mod == kModifierNameSuper)
109 return static_cast<int32_t>(kKeyModifierIDSuper);
110 if (mod == kModifierNameNone)
111 return static_cast<int32_t>(kKeyModifierIDNull);
112 return static_cast<int32_t>(-1);
113}
static const auto kModifierNameMeta
Definition KeyboardModifier.h:17
static const auto kModifierNameNone
Definition KeyboardModifier.h:18
static const auto kModifierNameAlt
Definition KeyboardModifier.h:14
static const auto kModifierNameAltGr
Definition KeyboardModifier.h:15
static const auto kModifierNameSuper
Definition KeyboardModifier.h:20
static int32_t modifierIDValueFromString(const QString &modifier)
Definition KeyboardModifier.h:95
static QString valueToKeyboardModifierOption(int modifier)
Definition KeyboardModifier.h:58
static int modifierValueFromString(const QString &modifier)
Definition KeyboardModifier.h:90
Q_DECLARE_METATYPE(KeyboardModifier)
static const auto kModifierNameCtrl
Definition KeyboardModifier.h:16
KeyboardModifier
Definition KeyboardModifier.h:23
@ Super
Definition KeyboardModifier.h:29
@ Ctrl
Definition KeyboardModifier.h:26
@ AltGr
Definition KeyboardModifier.h:30
@ None
Definition KeyboardModifier.h:31
@ Shift
Definition KeyboardModifier.h:25
@ Alt
Definition KeyboardModifier.h:27
@ Meta
Definition KeyboardModifier.h:28
@ DefaultMod
Definition KeyboardModifier.h:24
static QString keyboardModifierToOption(const KeyboardModifier modifier)
Definition KeyboardModifier.h:35
static const auto kModifierNameShift
Definition KeyboardModifier.h:19
static KeyboardModifier keyboardModifierFromString(const QString &modifier)
Definition KeyboardModifier.h:63