diff options
Diffstat (limited to 'kde-frameworks/kwidgetsaddons')
-rw-r--r-- | kde-frameworks/kwidgetsaddons/Manifest | 5 | ||||
-rw-r--r-- | kde-frameworks/kwidgetsaddons/files/kwidgetsaddons-5.88.0-kacceleratormanager-alt-x-shortcuts.patch | 149 | ||||
-rw-r--r-- | kde-frameworks/kwidgetsaddons/kwidgetsaddons-5.88.0-r1.ebuild (renamed from kde-frameworks/kwidgetsaddons/kwidgetsaddons-5.87.0.ebuild) | 8 |
3 files changed, 157 insertions, 5 deletions
diff --git a/kde-frameworks/kwidgetsaddons/Manifest b/kde-frameworks/kwidgetsaddons/Manifest index 29a4d6f297a3..3ebd89c9e293 100644 --- a/kde-frameworks/kwidgetsaddons/Manifest +++ b/kde-frameworks/kwidgetsaddons/Manifest @@ -1,5 +1,6 @@ +AUX kwidgetsaddons-5.88.0-kacceleratormanager-alt-x-shortcuts.patch 5226 BLAKE2B 16922dc0aba2824e5b66b1d8bbbb1d80f8608beaf87bfb5e23c05b5d62d8bf0a807737264f2d547f5393a39f11e0f76d4087e1bb3de97f0171ffa6b98a59721d SHA512 9a97ae97c628848ce8c30beb402b950e30ce276ef6feb1f02ded75c17c4c5d49b6393a4aabaeb3b3226290693b58bc181e06d458db97ed80f7c17994a42af2c3 DIST kwidgetsaddons-5.85.0.tar.xz 2306380 BLAKE2B c2fe7d9fc1680b90aa32fc3d5c9d88b1bb0b94094065f0c666da35bead3ff6dc76a6b943a0f814dbc322ce1493af414044b1a7fefc9d6d316db5a6fd9a61d974 SHA512 973ccc1f77f092384e0933972ecea8ed7fcc4f7891e7393f4ebf860ebd4155b7b7e6229b92d308844c8f3c31f720d150c3afc5573c85d9b6d34e1ac70ad3d315 -DIST kwidgetsaddons-5.87.0.tar.xz 2309804 BLAKE2B 1f3ff2ff340923d126ddbccea117a3b81ce71956f90a9757469b24a7a9fda764aa54cd4af50292d8c0f4d7f797144e77fc48c807955ee60c63e16d3eecab45b7 SHA512 91a6100cb6f0075b8fd9dcc176f25c42bf65df62b6c328985ff4278869a62f0e11d64f38071647b8664a55fce3a766bd79b83d0e2802b67716ccfb74d3dc0aec +DIST kwidgetsaddons-5.88.0.tar.xz 2306968 BLAKE2B dd90673cac33f878186c003cc66fced723ed1d87845535da3ee87315fdbdae285b284cd52b776e354f104cd89640176aabe534fae9ecc310ae7dc447f66237e5 SHA512 722c55dad25fc3f7b516c7822ba2f0a2b87c6124435fc376f42bbba84aff28a0abf1791e8bb39c16a7708c91961c2fba4f6174ae704348a1a2058c65c4182bc8 EBUILD kwidgetsaddons-5.85.0.ebuild 804 BLAKE2B be4f67608c6835072a29d464558957304fb1eb7907f8e6d342f60daac9fcb57f9bd8f6c671eb8489482fe1fe5be88a3f311eba02c3cb6638f8817130caee8583 SHA512 a2acbb9097fca4eb8e6a00f19a726b28cddde2a9e02ae166624c383e596c337d5ecde33918c7c4926c83dc3a54780d25083d8a679d5c7873dc8135405eed7f77 -EBUILD kwidgetsaddons-5.87.0.ebuild 807 BLAKE2B a942307ce2978ce311708c4bbf40db9d8176129ff9db5ba5f6b703a26d7c1f99f893ae675975847e13f77567ddbac4ac8d7db865e84803b12e4be4f7814db30e SHA512 2fad85065756a5eebf0308c81db2686a14381701e7031dc476f3232e3105b4b96aa9e3e803c4e3e4a9f976337ec889ab6f0275c9853d75de7dbb0741308f0367 +EBUILD kwidgetsaddons-5.88.0-r1.ebuild 898 BLAKE2B 00454e3ba6e9a96fffa3c5301a86e11929abed4770c44b02fb69964e8f2e655f7f17e9903d7fdbe031b0cb933b7b1199d492bde6a374931df184c0609870115f SHA512 372b24902958cb6236a922cd3b1a6b48a5ab0c5e1ecc16f00bc1f00dfc89e03634b0942c314cccc5fa2a6d054bcfae4dc5f3924aad1a2e9b1d1750e7dda87ace MISC metadata.xml 547 BLAKE2B 127ee4110b748cd3e3c26b63248d35f78b233b00cf4466ccc0145a613062a5aa9cc2e9ebd91d0e7482c67f6e265938176b169a9c52eda30bfcddf02549ec8f06 SHA512 2d36585b1af6205dc1bfcff7c3cb24c85376716159317b5c105c866143d49e89e91e501c9a4cf2d63265c30a09e8df71bca841319bd3f2b551e79fde90b1d96e diff --git a/kde-frameworks/kwidgetsaddons/files/kwidgetsaddons-5.88.0-kacceleratormanager-alt-x-shortcuts.patch b/kde-frameworks/kwidgetsaddons/files/kwidgetsaddons-5.88.0-kacceleratormanager-alt-x-shortcuts.patch new file mode 100644 index 000000000000..6e7ca9e47298 --- /dev/null +++ b/kde-frameworks/kwidgetsaddons/files/kwidgetsaddons-5.88.0-kacceleratormanager-alt-x-shortcuts.patch @@ -0,0 +1,149 @@ +From 294fe8ddc2f10d0a783bf9b80769c31ecc5922b1 Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid <aacid@kde.org> +Date: Fri, 5 Nov 2021 23:23:59 +0100 +Subject: [PATCH] KAcceleratorManager: Take into account actions with Alt+X + shortcuts + +We need to mark those X labels as used, otherwise the accelerator +manager may decide to use X for an accelerator and when pressing Alt+X +we will have a conflict + +BUGS: 444990 +--- + autotests/kacceleratormanagertest.cpp | 21 +++++++++++++++++++ + src/kacceleratormanager.cpp | 30 ++++++++++++++++++++------- + src/kacceleratormanager_p.h | 4 ++-- + 3 files changed, 46 insertions(+), 9 deletions(-) + +diff --git a/autotests/kacceleratormanagertest.cpp b/autotests/kacceleratormanagertest.cpp +index 3fc07928..2bdc4f74 100644 +--- a/autotests/kacceleratormanagertest.cpp ++++ b/autotests/kacceleratormanagertest.cpp +@@ -8,6 +8,7 @@ + #include <kacceleratormanager.h> + + #include <QMenu> ++#include <QPushButton> + #include <QTest> + + #define QSL QStringLiteral +@@ -75,6 +76,26 @@ private Q_SLOTS: + QCOMPARE(texts, expectedTexts); + } + ++ void testExistingActionsShortcutsAreTakenIntoAccount() ++ { ++ std::unique_ptr<QWidget> w(new QWidget()); ++ ++ QPushButton *pb = new QPushButton(QSL("Open"), w.get()); ++ ++ KAcceleratorManager::manage(w.get()); ++ QCOMPARE(pb->text(), QSL("&Open")); ++ ++ delete pb; ++ pb = new QPushButton(QSL("Open"), w.get()); ++ ++ QAction *a = new QAction(); ++ a->setShortcut(QSL("Alt+O")); ++ w->addAction(a); ++ ++ KAcceleratorManager::manage(w.get()); ++ QCOMPARE(pb->text(), QSL("O&pen")); ++ } ++ + void testActionIconTexts_data() + { + QTest::addColumn<QStringList>("initialTexts"); +diff --git a/src/kacceleratormanager.cpp b/src/kacceleratormanager.cpp +index 66d596d3..2f7b1879 100644 +--- a/src/kacceleratormanager.cpp ++++ b/src/kacceleratormanager.cpp +@@ -94,9 +94,8 @@ void KAcceleratorManagerPrivate::manage(QWidget *widget) + + Item *root = new Item; + +- manageWidget(widget, root); +- + QString used; ++ manageWidget(widget, root, used); + calculateAccelerators(root, used); + delete root; + } +@@ -175,7 +174,7 @@ void KAcceleratorManagerPrivate::calculateAccelerators(Item *item, QString &used + } + } + +-void KAcceleratorManagerPrivate::traverseChildren(QWidget *widget, Item *item) ++void KAcceleratorManagerPrivate::traverseChildren(QWidget *widget, Item *item, QString &used) + { + const QList<QWidget *> childList = widget->findChildren<QWidget *>(); + for (QWidget *w : childList) { +@@ -192,12 +191,29 @@ void KAcceleratorManagerPrivate::traverseChildren(QWidget *widget, Item *item) + continue; + } + +- manageWidget(w, item); ++ manageWidget(w, item, used); + } + } + +-void KAcceleratorManagerPrivate::manageWidget(QWidget *w, Item *item) ++void KAcceleratorManagerPrivate::manageWidget(QWidget *w, Item *item, QString &used) + { ++ // If the widget has any action whose shortcuts contain keystrokes in the ++ // form of Alt+X we need to mark X as used, otherwise we may assign it as accelerator ++ // and there will be a conflict when trying to use it ++ const QList<QAction *> widgetActions = w->actions(); ++ for (QAction *action : widgetActions) { ++ const QList<QKeySequence> actionShortcuts = action->shortcuts(); ++ for (const QKeySequence &sequence : actionShortcuts) { ++ const QString sequenceAsText = sequence.toString(QKeySequence::PortableText); ++ const QStringList splitSequence = sequenceAsText.split(QStringLiteral(", ")); ++ for (const QString &shortcut : splitSequence) { ++ if (shortcut.length() == 5 && shortcut.startsWith(QStringLiteral("Alt+"))) { ++ used.append(shortcut.right(1)); ++ } ++ } ++ } ++ } ++ + // first treat the special cases + + QTabBar *tabBar = qobject_cast<QTabBar *>(w); +@@ -247,7 +263,7 @@ void KAcceleratorManagerPrivate::manageWidget(QWidget *w, Item *item) + } + + if (w->inherits("KUrlRequester")) { +- traverseChildren(w, item); ++ traverseChildren(w, item, used); + return; + } + +@@ -316,7 +332,7 @@ void KAcceleratorManagerPrivate::manageWidget(QWidget *w, Item *item) + item->addChild(i); + } + } +- traverseChildren(w, item); ++ traverseChildren(w, item, used); + } + + void KAcceleratorManagerPrivate::manageTabBar(QTabBar *bar, Item *item) +diff --git a/src/kacceleratormanager_p.h b/src/kacceleratormanager_p.h +index a92d04ab..04926476 100644 +--- a/src/kacceleratormanager_p.h ++++ b/src/kacceleratormanager_p.h +@@ -227,9 +227,9 @@ public: + typedef QList<Item *> ItemList; + + private: +- static void traverseChildren(QWidget *widget, Item *item); ++ static void traverseChildren(QWidget *widget, Item *item, QString &used); + +- static void manageWidget(QWidget *widget, Item *item); ++ static void manageWidget(QWidget *widget, Item *item, QString &used); + static void manageMenuBar(QMenuBar *mbar, Item *item); + static void manageTabBar(QTabBar *bar, Item *item); + static void manageDockWidget(QDockWidget *dock, Item *item); +-- +GitLab + diff --git a/kde-frameworks/kwidgetsaddons/kwidgetsaddons-5.87.0.ebuild b/kde-frameworks/kwidgetsaddons/kwidgetsaddons-5.88.0-r1.ebuild index 2df9cc25d47a..cb0733f838d6 100644 --- a/kde-frameworks/kwidgetsaddons/kwidgetsaddons-5.87.0.ebuild +++ b/kde-frameworks/kwidgetsaddons/kwidgetsaddons-5.88.0-r1.ebuild @@ -13,14 +13,16 @@ LICENSE="LGPL-2.1+" KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" IUSE="nls" -BDEPEND=" - nls? ( >=dev-qt/linguist-tools-${QTMIN}:5 ) -" DEPEND=" >=dev-qt/qtgui-${QTMIN}:5 >=dev-qt/qtwidgets-${QTMIN}:5 " RDEPEND="${DEPEND}" +BDEPEND=" + nls? ( >=dev-qt/linguist-tools-${QTMIN}:5 ) +" + +PATCHES=( "${FILESDIR}/${P}-kacceleratormanager-alt-x-shortcuts.patch" ) # KDE-bug 444990 src_configure() { local mycmakeargs=( |