Warning, /plasma/plasma-firewall/kcm/ui/RuleEdit.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0002 // SPDX-FileCopyrightText: 2018 Alexis Lopes Zubeta <contact@azubieta.net> 0003 // SPDX-FileCopyrightText: 2020 Tomaz Canabrava <tcanabrava@kde.org> 0004 0005 import QtQuick 2.12 0006 import QtQuick.Controls 2.0 0007 import QtQuick.Layouts 1.1 0008 0009 import QtQuick.Controls 2.12 as QQC2 0010 import org.kde.kirigami 2.4 as Kirigami 0011 0012 import org.kcm.firewall 1.0 as Firewall 0013 0014 FocusScope { 0015 id: ruleEdit 0016 0017 property bool busy: false 0018 property bool ready: (!advancedRuleEdit.sourceAddress.length || advancedRuleEdit.sourceAddress.acceptableInput) 0019 && (!advancedRuleEdit.destinationAddress.length || advancedRuleEdit.destinationAddress.acceptableInput) 0020 && !(advancedRuleEdit.sourceAddress.text == advancedRuleEdit.destinationAddress.text 0021 && advancedRuleEdit.sourcePort.text == advancedRuleEdit.destinationPort.text) 0022 || simple.index != -1 0023 property alias simple: simpleRuleEdit 0024 0025 property Firewall.FirewallClient client: null 0026 0027 property var defaultOutgoingPolicyRule: null 0028 property var defaultIncomingPolicyRule: null 0029 0030 property var rule: Firewall.Rule { 0031 policy: "deny" 0032 incoming: true 0033 logging: "none" 0034 protocol: 0 0035 } 0036 0037 property var ruleChoices : [ 0038 {text: i18n("None"), data: "none"}, 0039 {text: i18n("New Connections"), data: "log"}, 0040 {text: i18n("All Packets"), data: "log-all"} 0041 ] 0042 property bool newRule: false 0043 0044 enabled: !busy 0045 0046 implicitWidth: formLayout.implicitWidth 0047 implicitHeight: formLayout.implicitHeight 0048 0049 Kirigami.FormLayout { 0050 id: formLayout 0051 width: parent.width 0052 Kirigami.InlineMessage { 0053 Layout.fillWidth: true 0054 type: Kirigami.MessageType.Information 0055 text: rule.incoming ? i18n("The default incoming policy is already '%1'.", advancedRuleEdit.policy.currentText) 0056 : i18n("The default outgoing policy is already '%1'.", advancedRuleEdit.policy.currentText) 0057 visible: rule.policy === (advancedRuleEdit.incoming.checked ? defaultIncomingPolicyRule : defaultOutgoingPolicyRule) && advancedRules.checked 0058 } 0059 Kirigami.InlineMessage { 0060 Layout.fillWidth: true 0061 type: Kirigami.MessageType.Information 0062 text: rule.incoming ? i18n("The default incoming policy is already '%1'.", advancedRuleEdit.policy.currentText) 0063 : i18n("The default outgoing policy is already '%1'.", advancedRuleEdit.policy.currentText) 0064 visible: rule.policy === (simple.incoming.checked ? defaultIncomingPolicyRule : defaultOutgoingPolicyRule) && !advancedRules.checked 0065 } 0066 SimpleRuleEdit { 0067 id: simpleRuleEdit 0068 visible: !advancedRules.checked 0069 } 0070 0071 CheckBox { 0072 id: advancedRules 0073 text:"Advanced" 0074 onClicked: rule.simplified = !rule.simplified 0075 checked: rule.simplified ? false : true // show advanced mode directly if isn't simple ! 0076 } 0077 0078 AdvancedRuleEdit { 0079 id: advancedRuleEdit 0080 rule: ruleEdit.rule 0081 visible: advancedRules.checked 0082 } 0083 } 0084 }