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 }