summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-plasma/wacomtablet')
-rw-r--r--kde-plasma/wacomtablet/Manifest3
-rw-r--r--kde-plasma/wacomtablet/files/wacomtablet-3.2.0-fix-incorrect-xsetwacom-call.patch41
-rw-r--r--kde-plasma/wacomtablet/files/wacomtablet-3.2.0-missing-include.patch24
-rw-r--r--kde-plasma/wacomtablet/files/wacomtablet-3.2.0-port-to-QRegularExpression.patch143
-rw-r--r--kde-plasma/wacomtablet/metadata.xml12
-rw-r--r--kde-plasma/wacomtablet/wacomtablet-3.2.0-r3.ebuild72
-rw-r--r--kde-plasma/wacomtablet/wacomtablet-6.1.0.ebuild56
7 files changed, 351 insertions, 0 deletions
diff --git a/kde-plasma/wacomtablet/Manifest b/kde-plasma/wacomtablet/Manifest
new file mode 100644
index 000000000000..409752201bdb
--- /dev/null
+++ b/kde-plasma/wacomtablet/Manifest
@@ -0,0 +1,3 @@
+DIST wacomtablet-3.2.0-patchset-1.tar.xz 7796 BLAKE2B 4fa998a0f4376579d1e0d06a8aa9edababedca22d579dbdae651eee3699decc880a7a1d277f04c2bc24adba87908c07ab711989a5985b68af5b295d3b3260d33 SHA512 ff96f05831e4760ce99920061f0dc927aa6a2d5ef4b7443c3129bb1431262cb4bc1434097595976672393e3b611438014ccb528fc948e7c0407fc9a2d52ade8d
+DIST wacomtablet-3.2.0.tar.xz 728468 BLAKE2B f741c8989f94cdc5b4839df5d91a6728c48308880c489e031d4615a58e82dddda75dcd1cd04b941035c1aece3ed4f7889508629100852cbcaafc063d7e0f8d1e SHA512 acbabd6d6546bc85f0ed4e245668dc89b1c2ecaedd3754bf7ad8027b90f3ae81e5312395376de272dcbd416a9a1115bff2481351bd3f418bef7fa06d0db0c5a6
+DIST wacomtablet-6.1.0.tar.xz 830556 BLAKE2B bb522d935529d3404a0cf7e14061940c96101b01510214dd6bb7b47df1bf330c97438a05f4e885f09d6db9557207e8bf4ae20b2dab22550a5ad5ef1b323e2f0a SHA512 089bef42864294c5efdd5cc70cf2f8ebd9c1d77160f26efa57d49444fa0899a821e6f4f908ed91565928ea31bb70a0178c9f480a775c953555985dc570e9fd78
diff --git a/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-fix-incorrect-xsetwacom-call.patch b/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-fix-incorrect-xsetwacom-call.patch
new file mode 100644
index 000000000000..9434b0082569
--- /dev/null
+++ b/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-fix-incorrect-xsetwacom-call.patch
@@ -0,0 +1,41 @@
+From 32c78782b3061bab2a3b1457133faf77b6d9ed2a Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+Date: Mon, 14 Nov 2022 02:57:07 +0100
+Subject: [PATCH] Fix incorrect xsetwacom call
+
+When param is e.g. 'Button 1' the 'Button' and '1' need to be passed as separate arguments
+
+BUG: 454947
+---
+ src/kded/xsetwacomadaptor.cpp | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/src/kded/xsetwacomadaptor.cpp b/src/kded/xsetwacomadaptor.cpp
+index 934fa8b..fc1bcac 100644
+--- a/src/kded/xsetwacomadaptor.cpp
++++ b/src/kded/xsetwacomadaptor.cpp
+@@ -245,10 +245,18 @@ bool XsetwacomAdaptor::setRotation(const QString& value)
+ bool XsetwacomAdaptor::setParameter(const QString &device, const QString &param, const QString &value) const
+ {
+ QProcess setConf;
+- if (!value.isEmpty()) {
+- setConf.start(QString::fromLatin1("xsetwacom"), QStringList() << QString::fromLatin1("set") << device << param << value);
++
++ // https://bugs.kde.org/show_bug.cgi?id=454947
++ static const QRegularExpression buttonWithNumber(QStringLiteral("^Button \\d+$"));
++ if (param.contains(buttonWithNumber)) {
++ const QStringList splitted = param.split(QLatin1Char(' '));
++ setConf.start(QString::fromLatin1("xsetwacom"), QStringList() << QString::fromLatin1("set") << device << splitted[0] << splitted[1] << value);
+ } else {
+- setConf.start(QString::fromLatin1("xsetwacom"), QStringList() << QString::fromLatin1("set") << device << param);
++ if (!value.isEmpty()) {
++ setConf.start(QString::fromLatin1("xsetwacom"), QStringList() << QString::fromLatin1("set") << device << param << value);
++ } else {
++ setConf.start(QString::fromLatin1("xsetwacom"), QStringList() << QString::fromLatin1("set") << device << param);
++ }
+ }
+
+ if (!setConf.waitForStarted() || !setConf.waitForFinished()) {
+--
+GitLab
+
diff --git a/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-missing-include.patch b/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-missing-include.patch
new file mode 100644
index 000000000000..4ab144beabd4
--- /dev/null
+++ b/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-missing-include.patch
@@ -0,0 +1,24 @@
+From c6bdd5a15c2e200aae6a7fe3597bbf11691e7e5f Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+Date: Tue, 6 Jun 2023 23:24:07 +0200
+Subject: [PATCH] Add missing include
+
+---
+ autotests/faketablet/faketablet.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/autotests/faketablet/faketablet.cpp b/autotests/faketablet/faketablet.cpp
+index 076a8d18..bf9e4904 100644
+--- a/autotests/faketablet/faketablet.cpp
++++ b/autotests/faketablet/faketablet.cpp
+@@ -20,6 +20,7 @@
+ #include <iostream>
+ #include <cstring>
+ #include <cstdio>
++#include <cstdint>
+ #include <cstdlib>
+ #include <csignal>
+ #include <unistd.h>
+--
+GitLab
+
diff --git a/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-port-to-QRegularExpression.patch b/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-port-to-QRegularExpression.patch
new file mode 100644
index 000000000000..e86f97cfaef4
--- /dev/null
+++ b/kde-plasma/wacomtablet/files/wacomtablet-3.2.0-port-to-QRegularExpression.patch
@@ -0,0 +1,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
+
diff --git a/kde-plasma/wacomtablet/metadata.xml b/kde-plasma/wacomtablet/metadata.xml
new file mode 100644
index 000000000000..ee58c0107562
--- /dev/null
+++ b/kde-plasma/wacomtablet/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://bugs.kde.org/</bugs-to>
+ <remote-id type="kde-invent">plasma/wacomtablet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/kde-plasma/wacomtablet/wacomtablet-3.2.0-r3.ebuild b/kde-plasma/wacomtablet/wacomtablet-3.2.0-r3.ebuild
new file mode 100644
index 000000000000..dcfe0a4c9d08
--- /dev/null
+++ b/kde-plasma/wacomtablet/wacomtablet-3.2.0-r3.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.82.0
+QTMIN=5.15.2
+VIRTUALX_REQUIRED="test"
+inherit ecm kde.org
+
+DESCRIPTION="Wacom system settings module that supports different button/pen layout profiles"
+HOMEPAGE="https://userbase.kde.org/Wacomtablet"
+SRC_URI="mirror://kde/stable/${PN}/${PV}/${P}.tar.xz
+https://dev.gentoo.org/~asturm/distfiles/${P}-patchset-1.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="5"
+KEYWORDS="amd64 x86"
+
+RDEPEND="
+ >=dev-libs/libwacom-0.30:=
+ >=dev-qt/qtdbus-${QTMIN}:5
+ >=dev-qt/qtdeclarative-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=dev-qt/qtx11extras-${QTMIN}:5
+ >=kde-frameworks/kconfig-${KFMIN}:5
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+ >=kde-frameworks/kcoreaddons-${KFMIN}:5
+ >=kde-frameworks/kdbusaddons-${KFMIN}:5
+ >=kde-frameworks/kglobalaccel-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ >=kde-frameworks/knotifications-${KFMIN}:5
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+ >=kde-frameworks/kwindowsystem-${KFMIN}:5
+ >=kde-frameworks/kxmlgui-${KFMIN}:5
+ >=kde-plasma/libplasma-${KFMIN}:5
+ >=x11-drivers/xf86-input-wacom-0.20.0
+ x11-libs/libXi
+ x11-libs/libxcb
+"
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+ x11-libs/libX11
+"
+BDEPEND="sys-devel/gettext"
+
+PATCHES=(
+ "${WORKDIR}/${P}-qt-5.15.patch"
+ "${WORKDIR}/${P}-qt-5.15-obsoletions.patch"
+ "${WORKDIR}/${P}-no-override-screenspace-w-missing-screen.patch" # KDE-bug 419392
+ "${WORKDIR}/${P}-fix-xsetwacom-adapter.patch"
+ "${WORKDIR}/${P}-Intuos-M-bluetooth.patch" # KDE-bug 418827
+ "${WORKDIR}/${P}-correct-icons.patch"
+ "${WORKDIR}/${P}-drop-empty-X-KDE-PluginInfo-Depends.patch"
+ "${WORKDIR}/${P}-fix-QProcess-invocation.patch"
+ "${WORKDIR}/${P}-turn-off-gesture-support-by-default.patch" # KDE-bug 440556
+ "${WORKDIR}/${P}-only-show-on-X11.patch"
+ "${FILESDIR}/${P}-port-to-QRegularExpression.patch" # pre-requisite for below:
+ "${FILESDIR}/${P}-fix-incorrect-xsetwacom-call.patch" # bug 850652, KDE-bug 454947
+ "${FILESDIR}/${P}-missing-include.patch" # bug 920043
+)
+
+src_test() {
+ # test needs DBus, bug 675548
+ local myctestargs=(
+ -E "(Test.KDED.DBusTabletService)"
+ )
+
+ ecm_src_test
+}
diff --git a/kde-plasma/wacomtablet/wacomtablet-6.1.0.ebuild b/kde-plasma/wacomtablet/wacomtablet-6.1.0.ebuild
new file mode 100644
index 000000000000..463273dd2458
--- /dev/null
+++ b/kde-plasma/wacomtablet/wacomtablet-6.1.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="forceoptional"
+KFMIN=6.3.0
+PVCUT=$(ver_cut 1-3)
+QTMIN=6.7.1
+inherit ecm plasma.kde.org
+
+DESCRIPTION="Wacom system settings module that supports different button/pen layout profiles"
+HOMEPAGE="https://userbase.kde.org/Wacomtablet"
+
+LICENSE="GPL-2"
+SLOT="6"
+KEYWORDS="~amd64"
+IUSE=""
+
+# slot op: Uses Qt6::GuiPrivate for qtx11extras_p.h
+RDEPEND="
+ >=dev-libs/libwacom-0.30:=
+ >=dev-qt/qtbase-${QTMIN}:6=[dbus,gui,widgets]
+ >=dev-qt/qtdeclarative-${QTMIN}:6
+ >=kde-frameworks/kcmutils-${KFMIN}:6
+ >=kde-frameworks/kconfig-${KFMIN}:6
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:6
+ >=kde-frameworks/kcoreaddons-${KFMIN}:6
+ >=kde-frameworks/kdbusaddons-${KFMIN}:6
+ >=kde-frameworks/kglobalaccel-${KFMIN}:6
+ >=kde-frameworks/ki18n-${KFMIN}:6
+ >=kde-frameworks/kio-${KFMIN}:6
+ >=kde-frameworks/knotifications-${KFMIN}:6
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:6
+ >=kde-frameworks/kwindowsystem-${KFMIN}:6
+ >=kde-frameworks/kxmlgui-${KFMIN}:6
+ >=kde-plasma/libplasma-${PVCUT}:6
+ >=kde-plasma/plasma5support-${PVCUT}:6
+ >=x11-drivers/xf86-input-wacom-0.20.0
+ x11-libs/libXi
+ x11-libs/libxcb
+"
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+ x11-libs/libX11
+"
+BDEPEND="sys-devel/gettext"
+
+src_test() {
+ # test needs DBus, bug 675548
+ local myctestargs=(
+ -E "(Test.KDED.DBusTabletService)"
+ )
+
+ ecm_src_test
+}