summaryrefslogtreecommitdiff
path: root/x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-07-07 18:01:12 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-07-07 18:01:12 +0100
commit4228912d757033314546832f205de123e1bef4e4 (patch)
tree7cddede6374eb6b6d9cdaf06f258b198111b21d3 /x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml
parent96e3eb0a9cefc91f4f4bc2ee5c8a39c98d43d70d (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.qml63
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()
}
}
}