Warning, /plasma/plasma-workspace/applets/clipboard/contents/ui/EditPage.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2021 Bharadwaj Raju <bharadwaj.raju777@protonmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 2.15 0008 import QtQuick.Controls 2.15 as QQC2 // For StackView 0009 import QtQuick.Layouts 1.1 0010 import org.kde.plasma.components 3.0 as PlasmaComponents3 0011 import org.kde.kirigami 2.20 as Kirigami 0012 import org.kde.kquickcontrolsaddons 2.0 0013 0014 ColumnLayout { 0015 spacing: 0 0016 property alias text: textArea.text 0017 property string uuid 0018 0019 property var header: Item {} 0020 0021 Keys.onPressed: event => { 0022 if (event.key === Qt.Key_Escape) { 0023 stack.pop() 0024 event.accepted = true; 0025 } 0026 } 0027 0028 function saveAndExit() { 0029 clipboardSource.edit(uuid, text); 0030 stack.pop(); 0031 done(); 0032 } 0033 0034 function done() { 0035 // The modified item will be pushed to the top, and we would like to highlight the real first item 0036 Qt.callLater(() => {stack.initialItem.view.currentIndex = 0;}); 0037 } 0038 0039 QQC2.StackView.onStatusChanged: { 0040 if (QQC2.StackView.status === QQC2.StackView.Active) { 0041 textArea.forceActiveFocus(Qt.ActiveWindowFocusReason); 0042 textArea.cursorPosition = textArea.text.length; 0043 main.editing = true; 0044 } else { 0045 main.editing = false; 0046 } 0047 } 0048 0049 Shortcut { 0050 sequence: StandardKey.Save 0051 onActivated: saveAndExit() 0052 } 0053 0054 PlasmaComponents3.ScrollView { 0055 Layout.fillWidth: true 0056 Layout.fillHeight: true 0057 Layout.leftMargin: Kirigami.Units.smallSpacing * 2 0058 Layout.rightMargin: PlasmaComponents3.ScrollBar.vertical.visible ? 0 : Kirigami.Units.smallSpacing * 2 0059 Layout.topMargin: Kirigami.Units.smallSpacing * 2 0060 0061 PlasmaComponents3.TextArea { 0062 id: textArea 0063 wrapMode: TextEdit.Wrap 0064 textFormat: TextEdit.PlainText 0065 0066 KeyNavigation.up: dialogItem.KeyNavigation.up 0067 Keys.onPressed: event => { 0068 if ((event.key === Qt.Key_Return || event.key === Qt.Key_Enter) && !(event.modifiers & Qt.ShiftModifier)) { 0069 saveAndExit(); 0070 event.accepted = true; 0071 } else { 0072 event.accepted = false; 0073 } 0074 } 0075 } 0076 } 0077 0078 RowLayout { 0079 Layout.alignment: Qt.AlignRight 0080 Layout.margins: Kirigami.Units.smallSpacing * 2 0081 PlasmaComponents3.Button { 0082 text: i18nc("@action:button", "Save") 0083 icon.name: "document-save" 0084 KeyNavigation.up: textArea 0085 KeyNavigation.right: cancelButton 0086 onClicked: saveAndExit() 0087 } 0088 PlasmaComponents3.Button { 0089 id: cancelButton 0090 text: i18nc("@action:button", "Cancel") 0091 icon.name: "dialog-cancel" 0092 KeyNavigation.up: textArea 0093 onClicked: stack.pop() 0094 } 0095 } 0096 }