summaryrefslogtreecommitdiff
path: root/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-port-to-QRegularExpression.patch
blob: e86f97cfaef4e3f59cc2a8893818848a5714df2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
From 9c2f133ee400562ca9813e329f6e2bdae24a5ac5 Mon Sep 17 00:00:00 2001
From: Nicolas Fella <nicolas.fella@gmx.de>
Date: Thu, 4 Aug 2022 22:43:07 +0200
Subject: [PATCH] Port from QRegExp to QRegularExpression

---
 src/common/buttonshortcut.cpp | 33 ++++++++++++++++++++-------------
 src/kded/xsetwacomadaptor.cpp | 17 +++++++++++------
 2 files changed, 31 insertions(+), 19 deletions(-)

diff --git a/src/common/buttonshortcut.cpp b/src/common/buttonshortcut.cpp
index e11784f..32bf842 100644
--- a/src/common/buttonshortcut.cpp
+++ b/src/common/buttonshortcut.cpp
@@ -19,7 +19,7 @@
 
 #include "buttonshortcut.h"
 
-#include <QRegExp>
+#include <QRegularExpression>
 #include <QKeySequence>
 
 #include <KLocalizedString>
@@ -266,8 +266,8 @@ bool ButtonShortcut::set(const QString& sequence)
         return true;
     }
 
-    QRegExp modifierRx (QLatin1String("^(?:key )?(?:\\s*\\+?(?:alt|ctrl|meta|shift|super))+$"), Qt::CaseInsensitive);
-    QRegExp buttonRx (QLatin1String ("^(?:button\\s+)?\\+?\\d+$"), Qt::CaseInsensitive);
+    static const QRegularExpression modifierRx (QLatin1String("^(?:key )?(?:\\s*\\+?(?:alt|ctrl|meta|shift|super))+$"), QRegularExpression::CaseInsensitiveOption);
+    static const QRegularExpression buttonRx (QLatin1String ("^(?:button\\s+)?\\+?\\d+$"), QRegularExpression::CaseInsensitiveOption);
 
     if (seq.contains(buttonRx)) {
         // this is a button
@@ -388,7 +388,8 @@ void ButtonShortcut::convertToNormalizedKeySequence(QString& sequence, bool from
 {
     normalizeKeySequence(sequence);
 
-    QStringList keyList    = sequence.split (QRegExp (QLatin1String ("\\s+")), Qt::SkipEmptyParts);
+    static const QRegularExpression rx(QStringLiteral("\\s+"));
+    QStringList keyList    = sequence.split (rx, Qt::SkipEmptyParts);
     bool        isFirstKey = true;
 
     sequence.clear();
@@ -460,28 +461,33 @@ void ButtonShortcut::normalizeKeySequence(QString& sequence) const
 {
     // When setting a shortcut like "ctrl+x", xsetwacom will convert it to "key +ctrl +x -x"
     // therefore we just truncate the string on the first "-key" we find.
-    QRegExp minusKeyRx (QLatin1String ("(^|\\s)-\\S"));
-    int     pos = 0;
+    static const QRegularExpression minusKeyRx (QLatin1String ("(^|\\s)-\\S"));
 
-    if ((pos = minusKeyRx.indexIn(sequence, 0)) != -1) {
-        sequence = sequence.left(pos);
+    const QRegularExpressionMatch minusKeyRxMatch = minusKeyRx.match(sequence);
+
+    if (minusKeyRxMatch.hasMatch()) {
+        sequence = sequence.left(minusKeyRxMatch.capturedStart());
     }
 
     // cleanup leading "key " identifier from xsetwacom sequences
-    sequence.remove(QRegExp (QLatin1String ("^\\s*key\\s+"), Qt::CaseInsensitive));
+    static const QRegularExpression leadingKey(QStringLiteral("^\\s*key\\s+"), QRegularExpression::CaseInsensitiveOption);
+    sequence.remove(leadingKey);
 
     // Remove all '+' prefixes from keys.
     // This will convert shortcuts like "+ctrl +alt" to "ctrl alt", but not
     // shortcuts like "ctrl +" which is required to keep compatibility to older
     // (buggy) configuration files.
-    sequence.replace(QRegExp (QLatin1String ("(^|\\s)\\+(\\S)")), QLatin1String ("\\1\\2"));
+    static const QRegularExpression plusPrefixes(QStringLiteral("(^|\\s)\\+(\\S)"), QRegularExpression::CaseInsensitiveOption);
+    sequence.replace(plusPrefixes, QLatin1String ("\\1\\2"));
 
     // Cleanup plus signs between keys.
     // This will convert shortcuts like "ctrl+alt+shift" or "Ctrl++" to "ctrl alt shift" or "Ctrl +".
-    sequence.replace (QRegExp (QLatin1String ("(\\S)\\+(\\S)")), QLatin1String ("\\1 \\2"));
+    static const QRegularExpression cleanupPlus(QStringLiteral("(\\S)\\+(\\S)"), QRegularExpression::CaseInsensitiveOption);
+    sequence.replace (cleanupPlus, QLatin1String ("\\1 \\2"));
 
     // replace multiple whitespaces with one
-    sequence.replace (QRegExp (QLatin1String ("\\s{2,}")), QLatin1String (" "));
+    static const QRegularExpression whitespaces(QStringLiteral("\\s{2,}"), QRegularExpression::CaseInsensitiveOption);
+    sequence.replace (whitespaces, QLatin1String (" "));
 
     // trim the string
     sequence = sequence.trimmed();
@@ -500,7 +506,8 @@ void ButtonShortcut::prettifyKey(QString& key) const
 bool ButtonShortcut::setButtonSequence(const QString& buttonSequence)
 {
     QString buttonNumber = buttonSequence;
-    buttonNumber.remove(QRegExp (QLatin1String ("^\\s*button\\s+"), Qt::CaseInsensitive));
+    static const QRegularExpression rx(QStringLiteral("^\\s*button\\s+"), QRegularExpression::CaseInsensitiveOption);
+    buttonNumber.remove(rx);
 
     bool ok     = false;
     int  button = buttonNumber.toInt(&ok);
diff --git a/src/kded/xsetwacomadaptor.cpp b/src/kded/xsetwacomadaptor.cpp
index a39f307..934fa8b 100644
--- a/src/kded/xsetwacomadaptor.cpp
+++ b/src/kded/xsetwacomadaptor.cpp
@@ -27,7 +27,7 @@
 #include "tabletarea.h"
 
 #include <QProcess>
-#include <QRegExp>
+#include <QRegularExpression>
 
 using namespace Wacom;
 
@@ -142,10 +142,13 @@ const QString XsetwacomAdaptor::convertParameter(const XsetwacomProperty& param)
     QString modifiedParam = param.key();
 
     // convert tablet button number to hardware button number
-    QRegExp rx(QLatin1String("^Button\\s*([0-9]+)$"), Qt::CaseInsensitive);
+    static const QRegularExpression rx(QLatin1String("^Button\\s*([0-9]+)$"), QRegularExpression::CaseInsensitiveOption);
+
+    const QRegularExpressionMatch match = rx.match(modifiedParam);
+
+    if (match.hasMatch()) {
+        QString hwButtonNumber = match.captured(1);
 
-    if (rx.indexIn(modifiedParam, 0) != -1) {
-        QString hwButtonNumber = rx.cap(1);
         QString kernelButtonNumber;
 
         if (!d->buttonMap.isEmpty()) {
@@ -167,9 +170,11 @@ const QString XsetwacomAdaptor::convertParameter(const XsetwacomProperty& param)
 
 void XsetwacomAdaptor::convertButtonShortcut (const XsetwacomProperty& property, QString& value) const
 {
-    QRegExp rx (QLatin1String("^Button\\s*[0-9]+$"), Qt::CaseInsensitive);
+    static const QRegularExpression rx(QLatin1String("^Button\\s*[0-9]+$"), QRegularExpression::CaseInsensitiveOption);
+
+    const QRegularExpressionMatch match = rx.match(property.key());
 
-    if (rx.indexIn(property.key(), 0) != -1) {
+    if (match.hasMatch()) {
         ButtonShortcut buttonshortcut(value);
         value = buttonshortcut.toString();
     }
-- 
GitLab