Warning, /plasma/flatpak-kcm/ui/AddEnvironmentVariableDialog.qml is written in an unsupported language. File is not indexed.
0001 /** 0002 * SPDX-FileCopyrightText: 2023 ivan tkachenko <me@ratijas.tk> 0003 * SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 import QtQuick 0007 import QtQuick.Controls as QQC2 0008 import QtQuick.Layouts 0009 0010 import org.kde.kirigami as Kirigami 0011 import org.kde.plasma.kcm.flatpakpermissions 0012 0013 Kirigami.PromptDialog { 0014 id: root 0015 0016 required property FlatpakPermissionModel model 0017 0018 title: i18n("Set Environment Variable") 0019 standardButtons: QQC2.Dialog.Ok | QQC2.Dialog.Discard 0020 closePolicy: QQC2.Popup.CloseOnEscape 0021 0022 QQC2.Overlay.modal: KcmPopupModal {} 0023 0024 Kirigami.FormLayout { 0025 QQC2.TextField { 0026 id: nameField 0027 0028 Layout.fillWidth: true 0029 0030 Keys.onEnterPressed: valueField.forceActiveFocus(Qt.TabFocusReason) 0031 Keys.onReturnPressed: valueField.forceActiveFocus(Qt.TabFocusReason) 0032 KeyNavigation.down: valueField 0033 0034 Kirigami.FormData.label: i18nc("@label:textbox name of environment variable", "Name:") 0035 } 0036 0037 QQC2.TextField { 0038 id: valueField 0039 0040 Layout.fillWidth: true 0041 0042 Keys.onEnterPressed: root.accepted() 0043 Keys.onReturnPressed: root.accepted() 0044 0045 Kirigami.FormData.label: i18nc("@label:textbox value of environment variable", "Value:") 0046 // No validation needed, empty value is also acceptable. 0047 } 0048 } 0049 0050 function acceptableInput() { 0051 const name = nameField.text; 0052 0053 if (permsModel.permissionExists(FlatpakPermissionsSectionType.Environment, name)) { 0054 return false; 0055 } 0056 0057 return permsModel.isEnvironmentVariableNameValid(name); 0058 } 0059 0060 onOpened: { 0061 const ok = standardButton(QQC2.Dialog.Ok); 0062 ok.enabled = Qt.binding(() => acceptableInput()); 0063 ok.KeyNavigation.up = valueField; 0064 0065 const discard = standardButton(QQC2.Dialog.Discard); 0066 discard.KeyNavigation.up = valueField; 0067 0068 nameField.forceActiveFocus(Qt.PopupFocusReason); 0069 } 0070 0071 onAccepted: { 0072 if (acceptableInput()) { 0073 const name = nameField.text; 0074 const value = valueField.text; 0075 model.addUserEnteredPermission(FlatpakPermissionsSectionType.Environment, name, value); 0076 close(); 0077 } 0078 } 0079 0080 onDiscarded: { 0081 close(); 0082 } 0083 }