diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-07-07 18:01:12 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-07-07 18:01:12 +0100 |
commit | 4228912d757033314546832f205de123e1bef4e4 (patch) | |
tree | 7cddede6374eb6b6d9cdaf06f258b198111b21d3 /x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml | |
parent | 96e3eb0a9cefc91f4f4bc2ee5c8a39c98d43d70d (diff) |
x11-themes/redcore-theme-sddm : revision bump
Diffstat (limited to 'x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml')
-rw-r--r-- | x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml | 63 |
1 files changed, 43 insertions, 20 deletions
diff --git a/x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml b/x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml index 9989d93e..cd9f97bd 100644 --- a/x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml +++ b/x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml @@ -1,36 +1,59 @@ -import QtQuick 2.2 +/* + SPDX-FileCopyrightText: 2016 David Edmundson <davidedmundson@kde.org> + SPDX-FileCopyrightText: 2022 Aleix Pol Gonzalez <aleixpol@kde.org> -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents + SPDX-License-Identifier: LGPL-2.0-or-later +*/ -import QtQuick.Controls 1.3 as QQC +import QtQuick 2.15 + +import org.kde.plasma.components 3.0 as PlasmaComponents +import org.kde.kirigami 2.20 as Kirigami PlasmaComponents.ToolButton { - id: keyboardButton + id: root + + property int currentIndex: keyboard.currentLayout + onCurrentIndexChanged: keyboard.currentLayout = currentIndex - property int currentIndex: -1 + text: i18nd("plasma-desktop-sddm-theme", "Keyboard Layout: %1", keyboard.layouts[currentIndex].longName) + visible: keyboard.layouts.length > 1 - text: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Keyboard Layout: %1", instantiator.objectAt(currentIndex).shortName) - implicitWidth: minimumWidth - font.pointSize: config.fontSize + checkable: true + checked: menu.opened + onToggled: { + if (checked) { + menu.popup(root, 0, 0) + } else { + menu.dismiss() + } + } - visible: menu.items.length > 1 + signal keyboardLayoutChanged() - Component.onCompleted: currentIndex = Qt.binding(function() {return keyboard.currentLayout}); + PlasmaComponents.Menu { + id: menu + Kirigami.Theme.colorSet: Kirigami.Theme.Window + Kirigami.Theme.inherit: false + + onAboutToShow: { + if (instantiator.model === null) { + let layouts = keyboard.layouts; + layouts.sort((a, b) => a.longName.localeCompare(b.longName)); + instantiator.model = layouts; + } + } - menu: QQC.Menu { - id: keyboardMenu - style: BreezeMenuStyle {} Instantiator { id: instantiator - model: keyboard.layouts - onObjectAdded: keyboardMenu.insertItem(index, object) - onObjectRemoved: keyboardMenu.removeItem( object ) - delegate: QQC.MenuItem { + model: null + onObjectAdded: (index, object) => menu.insertItem(index, object) + onObjectRemoved: (index, object) => menu.removeItem(object) + delegate: PlasmaComponents.MenuItem { text: modelData.longName - property string shortName: modelData.shortName onTriggered: { - keyboard.currentLayout = model.index + keyboard.currentLayout = keyboard.layouts.indexOf(modelData) + root.keyboardLayoutChanged() } } } |