/*SPDX-FileCopyrightText: 2021 Andrey Butirsky <butirsky@gmail.com>SPDX-FileCopyrightText: 2022 Nate Graham <nate@kde.org>SPDX-License-Identifier: GPL-2.0-or-later*/import QtQuickimport QtQuick.Layoutsimport QtQuick.Controlsimport org.kde.kirigami as Kirigamiimport org.kde.plasma.workspace.keyboardlayoutimport org.kde.plasma.workspace.components as WorkspaceComponentsimport org.kde.plasma.private.kcm_keyboard as KCMKeyboardimport org.kde.kcmutilsSimpleKCM {id: rootproperty int cfg_displayStylereadonly property string layoutShortName: keyboardLayout.layoutsList.length ? keyboardLayout.layoutsList[keyboardLayout.layout].shortName: ""readonly property string displayName: keyboardLayout.layoutsList.length ? keyboardLayout.layoutsList[keyboardLayout.layout].displayName: ""KeyboardLayout { id: keyboardLayout }Kirigami.FormLayout {RadioButton {id: showLabelKirigami.FormData.label: i18nc("@title:group of radio buttons, options are language codes or images", "Display style:")text: root.displayName.length > 0 ? root.displayName: root.layoutShortNamechecked: root.cfg_displayStyle === 0onToggled: root.cfg_displayStyle = 0;}RadioButton {id: showFlagchecked: root.cfg_displayStyle === 1onToggled: root.cfg_displayStyle = 1;contentItem: RowLayout {id: flagMissingspacing: Kirigami.Units.smallSpacinganchors.left: parent.leftanchors.leftMargin: showFlag.indicator.width + showFlag.spacing// Deliberately using this instead of Image to preserve visual fidelity// with what the widget will showKirigami.Icon {id: flagImageimplicitWidth: Kirigami.Units.iconSizes.mediumimplicitHeight: Kirigami.Units.iconSizes.mediumsource: KCMKeyboard.Flags.getIcon(root.layoutShortName)visible: valid}Kirigami.Icon {implicitWidth: Kirigami.Units.iconSizes.smallMediumimplicitHeight: Kirigami.Units.iconSizes.smallMediumsource: "emblem-warning"visible: !flagImage.visible}Label {text: i18nc("@info:placeholder Make this translation as short as possible", "No flag available")visible: !flagImage.visible}}}RadioButton {id: showLabelOverFlagchecked: root.cfg_displayStyle === 2onToggled: root.cfg_displayStyle = 2;contentItem: Kirigami.Icon {// Deliberately using this instead of Image to preserve visual fidelity// with what the widget will showid: labelOverFlagImagewidth: Kirigami.Units.iconSizes.mediumheight: Kirigami.Units.iconSizes.mediumanchors.left: parent.leftanchors.leftMargin: showLabelOverFlag.indicator.width + showLabelOverFlag.spacingsource: KCMKeyboard.Flags.getIcon(root.layoutShortName)visible: validWorkspaceComponents.BadgeOverlay {anchors.bottom: parent.bottomanchors.right: parent.righttext: showLabel.texticon: parent}}}Kirigami.Separator {Kirigami.FormData.isSection: true}Button {Kirigami.FormData.label: i18nc("@label prefixed to button, as in 'keyboard layouts'", "Layouts:")text: i18nc("@action:button opens kcm_keyboard", "Configureβ¦")icon.name: "configure"onClicked: KCMLauncher.openSystemSettings("kcm_keyboard", "--tab=layouts")}}}