Warning, /plasma-mobile/qmlkonsole/src/contents/ui/SavedCommandsSettings.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2020 Han Young <hanyoung@protonmail.com> 0002 // SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org> 0003 // 0004 // SPDX-License-Identifier: GPL-2.0-or-later 0005 0006 import QtQuick 0007 import QtQuick.Controls 0008 import QtQuick.Layouts 0009 0010 import org.kde.kirigami as Kirigami 0011 0012 import org.kde.konsoleqml 0013 0014 import org.kde.qmlkonsole 0015 0016 Kirigami.ScrollablePage { 0017 id: root 0018 title: i18n("Saved Commands") 0019 0020 property TerminalEmulator terminal 0021 property bool editMode: false 0022 0023 actions: [ 0024 Kirigami.Action { 0025 text: i18n("Add Command") 0026 icon.name: "contact-new" 0027 onTriggered: actionDialog.open() 0028 }, 0029 Kirigami.Action { 0030 text: i18n("Edit") 0031 icon.name: 'entry-edit' 0032 checkable: true 0033 onCheckedChanged: root.editMode = checked 0034 visible: listView.count > 0 0035 } 0036 ] 0037 0038 ListView { 0039 id: listView 0040 model: SavedCommandsModel 0041 0042 Kirigami.PlaceholderMessage { 0043 anchors.verticalCenter: parent.verticalCenter 0044 anchors.left: parent.left 0045 anchors.right: parent.right 0046 anchors.leftMargin: Kirigami.Units.largeSpacing 0047 anchors.rightMargin: Kirigami.Units.largeSpacing 0048 0049 visible: listView.count === 0 0050 icon.name: "dialog-scripts" 0051 text: i18n("No saved commands") 0052 explanation: i18n("Save commands to quickly run them without typing them out.") 0053 0054 helpfulAction: Kirigami.Action { 0055 icon.name: "list-add" 0056 text: i18n("Add command") 0057 onTriggered: actionDialog.open() 0058 } 0059 } 0060 0061 delegate: Control { 0062 leftPadding: Kirigami.Units.largeSpacing 0063 rightPadding: Kirigami.Units.largeSpacing 0064 topPadding: Kirigami.Units.largeSpacing 0065 bottomPadding: Kirigami.Units.largeSpacing 0066 width: ListView.view.width 0067 0068 contentItem: RowLayout { 0069 id: row 0070 0071 Kirigami.Icon { 0072 source: "dialog-scripts" 0073 } 0074 Label { 0075 id: label 0076 text: model.display 0077 font.family: "Monospace" 0078 } 0079 Item { 0080 Layout.fillWidth: true 0081 } 0082 ToolButton { 0083 visible: root.editMode 0084 icon.name: 'delete' 0085 onClicked: { 0086 SavedCommandsModel.removeRow(index); 0087 showPassiveNotification(i18n("Command %1 removed", label.text)); 0088 } 0089 } 0090 } 0091 } 0092 } 0093 0094 Kirigami.PromptDialog { 0095 id: actionDialog 0096 title: i18n("Add Command") 0097 preferredWidth: Kirigami.Units.gridUnit * 30 0098 padding: Kirigami.Units.largeSpacing 0099 standardButtons: Dialog.Save | Dialog.Cancel 0100 0101 onAccepted: { 0102 if (textField.text != "") { 0103 SavedCommandsModel.addAction(textField.text); 0104 textField.text = "" 0105 } 0106 0107 actionDialog.close(); 0108 } 0109 0110 contentItem: RowLayout { 0111 TextField { 0112 id: textField 0113 font.family: "Monospace" 0114 Layout.fillWidth: true 0115 } 0116 } 0117 } 0118 }