From bc0b0adb0187b2bc174822cf9faf32ed2db0fb36 Mon Sep 17 00:00:00 2001 From: Andrey Butirsky Date: Wed, 25 Nov 2020 17:37:00 +0300 Subject: [PATCH] feat: Keyboard Layout applet: switch layout by mouse wheel In parity with legacy layout Widget FEATURE: CCBUG: 390079 --- components/keyboardlayout/keyboardlayout.cpp | 5 +++++ components/keyboardlayout/keyboardlayout.h | 1 + .../keyboardlayout/org.kde.KeyboardLayouts.xml | 2 ++ components/workspace/KeyboardLayoutButton.qml | 12 ++++++++++++ 4 files changed, 20 insertions(+) diff --git a/components/keyboardlayout/keyboardlayout.cpp b/components/keyboardlayout/keyboardlayout.cpp index 542d0371b..8b7377b9e 100644 --- a/components/keyboardlayout/keyboardlayout.cpp +++ b/components/keyboardlayout/keyboardlayout.cpp @@ -63,6 +63,11 @@ void KeyboardLayout::switchToNextLayout() if (mIface) mIface->switchToNextLayout(); } +void KeyboardLayout::switchToPreviousLayout() +{ + if (mIface) mIface->switchToPreviousLayout(); +} + template void KeyboardLayout::requestDBusData(QDBusPendingReply pendingReply, T &out, void (KeyboardLayout::*notify)()) { diff --git a/components/keyboardlayout/keyboardlayout.h b/components/keyboardlayout/keyboardlayout.h index 3f368816b..74b210a46 100644 --- a/components/keyboardlayout/keyboardlayout.h +++ b/components/keyboardlayout/keyboardlayout.h @@ -41,6 +41,7 @@ Q_SIGNALS: protected Q_SLOTS: void switchToNextLayout(); + void switchToPreviousLayout(); private: enum DBusData {LayoutDisplayName, LayoutLongName, Layouts}; diff --git a/components/keyboardlayout/org.kde.KeyboardLayouts.xml b/components/keyboardlayout/org.kde.KeyboardLayouts.xml index e802757cf..dd7eac09d 100644 --- a/components/keyboardlayout/org.kde.KeyboardLayouts.xml +++ b/components/keyboardlayout/org.kde.KeyboardLayouts.xml @@ -9,6 +9,8 @@ + + diff --git a/components/workspace/KeyboardLayoutButton.qml b/components/workspace/KeyboardLayoutButton.qml index 32d32d489..b56f5583a 100644 --- a/components/workspace/KeyboardLayoutButton.qml +++ b/components/workspace/KeyboardLayoutButton.qml @@ -23,6 +23,18 @@ PlasmaComponents3.ToolButton { onClicked: layout.switchToNextLayout() + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.NoButton + onWheel: { + if (wheel.angleDelta.y > 0) { + layout.switchToNextLayout() + } else { + layout.switchToPreviousLayout() + } + } + } + KeyboardLayout { id: layout }