From e924c85895820045b5646f2aa4a98c0674101302 Mon Sep 17 00:00:00 2001 From: Oleg Yakovenko Date: Fri, 7 May 2021 01:45:40 +0300 Subject: [PATCH] Fix KeyboardLayoutButton in LockScreen --- .../components/KeyboardLayoutButton.qml | 22 ++++++--- kde/sddm/components/KeyboardLayoutButton.qml | 48 ------------------- 2 files changed, 16 insertions(+), 54 deletions(-) delete mode 100644 kde/sddm/components/KeyboardLayoutButton.qml diff --git a/kde/look-and-feel/contents/components/KeyboardLayoutButton.qml b/kde/look-and-feel/contents/components/KeyboardLayoutButton.qml index 32edb52..2af2325 100644 --- a/kde/look-and-feel/contents/components/KeyboardLayoutButton.qml +++ b/kde/look-and-feel/contents/components/KeyboardLayoutButton.qml @@ -32,21 +32,31 @@ PlasmaComponents.ToolButton { iconName: "input-keyboard" implicitWidth: minimumWidth - text: layout.currentLayoutDisplayName + text: layout.layoutName() font.pointSize: Math.max(fontSize,theme.defaultFont.pointSize) Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to change keyboard layout", "Switch layout") - visible: layout.layouts.length > 1 + visible: layout.shouldBeVisible() onClicked: layout.nextLayout() KeyboardLayout { id: layout - function nextLayout() { - var layouts = layout.layouts; - var index = (layouts.indexOf(layout.currentLayout)+1) % layouts.length; - layout.currentLayout = layouts[index]; + function nextLayout() { + layout.layout = (layout.layout + 1) % layout.layoutsList.length; + } + + function shouldBeVisible() { + return layout.layoutsList.length > 1; + } + + function layoutName() { + return (layout.isInitialized() && layout.layoutsList[layout.layout].displayName) || ''; + } + + function isInitialized() { + return layout.layoutsList.length > 0; } } } diff --git a/kde/sddm/components/KeyboardLayoutButton.qml b/kde/sddm/components/KeyboardLayoutButton.qml deleted file mode 100644 index ad65e75..0000000 --- a/kde/sddm/components/KeyboardLayoutButton.qml +++ /dev/null @@ -1,48 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2014 by Daniel Vrátil * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - -import QtQuick 2.1 -import QtQuick.Controls 1.1 as QQC - -import org.kde.plasma.components 2.0 as PlasmaComponents - -import org.kde.plasma.workspace.keyboardlayout 1.0 - -PlasmaComponents.ToolButton { - id: kbLayoutButton - - iconName: "input-keyboard" - implicitWidth: minimumWidth - text: layout.currentLayoutDisplayName - - Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to change keyboard layout", "Switch layout") - - visible: layout.layouts.length > 1 - - onClicked: layout.nextLayout() - - KeyboardLayout { - id: layout - function nextLayout() { - var layouts = layout.layouts; - var index = (layouts.indexOf(layout.currentLayout)+1) % layouts.length; - layout.currentLayout = layouts[index]; - } - } -}