Warning, /plasma-mobile/qmlkonsole/src/contents/ui/SavedCommandsDialog.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2021-2022 Devin Lin <espidev@gmail.com>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-or-later
0004 
0005 import QtQuick
0006 import QtQuick.Layouts
0007 import QtQuick.Controls
0008 
0009 import org.kde.konsoleqml
0010 import org.kde.kirigami as Kirigami
0011 
0012 import org.kde.qmlkonsole
0013 
0014 Kirigami.Dialog {
0015     id: savedCommandsDialog
0016     
0017     property var terminal
0018     
0019     title: i18nc("@title:window", "Saved Commands")
0020     preferredHeight: Kirigami.Units.gridUnit * 25
0021     preferredWidth: Kirigami.Units.gridUnit * 16
0022     standardButtons: Kirigami.Dialog.NoButton
0023     
0024     customFooterActions: [
0025         Kirigami.Action {
0026             text: i18n("Configure")
0027             icon.name: "settings-configure"
0028             onTriggered: {
0029                 pageStack.push("qrc:/SavedCommandsSettings.qml");
0030                 savedCommandsDialog.close();
0031             }
0032         },
0033         Kirigami.Action {
0034             text: i18n("Close")
0035             icon.name: "dialog-close"
0036             onTriggered: savedCommandsDialog.close()
0037         }
0038     ]
0039     
0040     ListView {
0041         id: listView
0042         model: SavedCommandsModel
0043         
0044         Kirigami.PlaceholderMessage {
0045             anchors.verticalCenter: parent.verticalCenter
0046             anchors.left: parent.left
0047             anchors.right: parent.right
0048             anchors.leftMargin: Kirigami.Units.largeSpacing
0049             anchors.rightMargin: Kirigami.Units.largeSpacing
0050             
0051             visible: listView.count === 0
0052             icon.name: "dialog-scripts"
0053             text: i18n("No saved commands")
0054             explanation: i18n("Save commands to quickly run them without typing them out.")
0055         }
0056         
0057         delegate: ItemDelegate {
0058             width: tabListView.width
0059             
0060             onClicked: {
0061                 terminal.simulateKeyPress(0, 0, 0, 0, model.display);
0062                 savedCommandsDialog.close();
0063                 terminal.forceActiveFocus()
0064             }
0065         
0066             contentItem: RowLayout {
0067                 Kirigami.Icon {
0068                     source: "dialog-scripts"
0069                 }
0070                 Label {
0071                     id: label
0072                     text: model.display
0073                     font.family: "Monospace"
0074                 }
0075                 Item {
0076                     Layout.fillWidth: true
0077                 }
0078             }
0079         }
0080     }
0081 }