Warning, /plasma/plasma-workspace/components/workspace/KeyboardLayoutSwitcher.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2014 Daniel Vrátil <dvratil@redhat.com>
0003 SPDX-FileCopyrightText: 2020 Andrey Butirsky <butirsky@gmail.com>
0004 SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006
0007 import QtQuick 2.12
0008 import org.kde.plasma.workspace.keyboardlayout 1.0
0009
0010 MouseArea {
0011 property alias keyboardLayout: keyboardLayout
0012 readonly property bool hasMultipleKeyboardLayouts: keyboardLayout.layoutsList.length > 1
0013 readonly property var layoutNames: keyboardLayout.layoutsList.length ? keyboardLayout.layoutsList[keyboardLayout.layout]
0014 : { shortName: "", displayName: "", longName: "" }
0015
0016 onClicked: keyboardLayout.switchToNextLayout()
0017
0018 property int wheelDelta: 0
0019
0020 onWheel: wheel => {
0021 // Magic number 120 for common "one click"
0022 // See: https://qt-project.org/doc/qt-5/qml-qtquick-wheelevent.html#angleDelta-prop
0023 wheelDelta += (wheel.inverted ? -1 : 1) * (wheel.angleDelta.y ? wheel.angleDelta.y : wheel.angleDelta.x);
0024 while (wheelDelta >= 120) {
0025 wheelDelta -= 120;
0026 keyboardLayout.switchToPreviousLayout();
0027 }
0028 while (wheelDelta <= -120) {
0029 wheelDelta += 120;
0030 keyboardLayout.switchToNextLayout();
0031 }
0032 }
0033
0034 KeyboardLayout {
0035 id: keyboardLayout
0036 }
0037 }