feat: Keyboard Layout applet: switch layout by mouse wheel

In parity with legacy layout Widget

FEATURE:
CCBUG: 390079
wilder-5.22
Andrey Butirsky 5 years ago
parent 48a088382e
commit bc0b0adb01
  1. 5
      components/keyboardlayout/keyboardlayout.cpp
  2. 1
      components/keyboardlayout/keyboardlayout.h
  3. 2
      components/keyboardlayout/org.kde.KeyboardLayouts.xml
  4. 12
      components/workspace/KeyboardLayoutButton.qml

@ -63,6 +63,11 @@ void KeyboardLayout::switchToNextLayout()
if (mIface) mIface->switchToNextLayout(); if (mIface) mIface->switchToNextLayout();
} }
void KeyboardLayout::switchToPreviousLayout()
{
if (mIface) mIface->switchToPreviousLayout();
}
template<class T> template<class T>
void KeyboardLayout::requestDBusData(QDBusPendingReply<T> pendingReply, T &out, void (KeyboardLayout::*notify)()) void KeyboardLayout::requestDBusData(QDBusPendingReply<T> pendingReply, T &out, void (KeyboardLayout::*notify)())
{ {

@ -41,6 +41,7 @@ Q_SIGNALS:
protected Q_SLOTS: protected Q_SLOTS:
void switchToNextLayout(); void switchToNextLayout();
void switchToPreviousLayout();
private: private:
enum DBusData {LayoutDisplayName, LayoutLongName, Layouts}; enum DBusData {LayoutDisplayName, LayoutLongName, Layouts};

@ -9,6 +9,8 @@
</signal> </signal>
<method name="switchToNextLayout"> <method name="switchToNextLayout">
</method> </method>
<method name="switchToPreviousLayout">
</method>
<method name="setLayout"> <method name="setLayout">
<arg type="b" direction="out"/> <arg type="b" direction="out"/>
<arg name="layout" type="s" direction="in"/> <arg name="layout" type="s" direction="in"/>

@ -23,6 +23,18 @@ PlasmaComponents3.ToolButton {
onClicked: layout.switchToNextLayout() onClicked: layout.switchToNextLayout()
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton
onWheel: {
if (wheel.angleDelta.y > 0) {
layout.switchToNextLayout()
} else {
layout.switchToPreviousLayout()
}
}
}
KeyboardLayout { KeyboardLayout {
id: layout id: layout
} }

Loading…
Cancel
Save