/*SPDX-FileCopyrightText: 2024 Evgeny Chesnokov <echesnokov@astralinux.ru>SPDX-License-Identifier: GPL-2.0-or-later*/import QtQuickimport QtQuick.Layoutsimport QtQuick.Controls as QQC2import org.kde.kquickcontrols as KQuickControlsimport org.kde.kirigami as Kirigamiimport org.kde.plasma.private.kcm_keyboard as KCMKeyboardItem {id: itemDelegateimplicitWidth: ListView.view.widthimplicitHeight: delegate.heightproperty list<Kirigami.Action> actionsproperty bool isLoopingLayoutrequired property var modelrequired property int indexrequired property string layoutNamerequired property string layoutrequired property string variantrequired property string variantNamerequired property string shortcutreadonly property var view: ListView.viewsignal move(int oldIndex, int newIndex)// Make grayed bg for looping layoutsRectangle {anchors.fill: parentKirigami.Theme.colorSet: Kirigami.Theme.WindowKirigami.Theme.inherit: falsecolor: Kirigami.Theme.alternateBackgroundColorvisible: isLoopingLayout}QQC2.ItemDelegate {id: delegateimplicitWidth: itemDelegate.width// There's no need for a list item to ever be selecteddown: falsehighlighted: falsecontentItem: RowLayout {spacing: Kirigami.Units.smallSpacingKirigami.ListItemDragHandle {listItem: delegatelistView: itemDelegate.viewonMoveRequested: (oldIndex, newIndex) => itemDelegate.move(oldIndex, newIndex)visible: itemDelegate.view.count > 1}Kirigami.IconTitleSubtitle {icon.width: Kirigami.Units.iconSizes.smallMediumicon.height: Kirigami.Units.iconSizes.smallMediumicon.source: KCMKeyboard.Flags.getIcon(itemDelegate.layout)title: itemDelegate.layoutNamesubtitle: itemDelegate.variantNameLayout.fillWidth: true}KQuickControls.KeySequenceItem {showCancelButton: truemodifierlessAllowed: falsemodifierOnlyAllowed: truekeySequence: itemDelegate.shortcutonCaptureFinished: itemDelegate.model.shortcut = keySequence}Kirigami.ActionToolBar {Layout.fillWidth: falseactions: itemDelegate.actions}}}}