Warning, /plasma/plasma-firewall/kcm/ui/ConnectionsView.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 // SPDX-FileCopyrightText: 2020 Kai Uwe Broulik <kde@broulik.de> 0005 0006 import QtQuick 2.12 0007 0008 import org.kde.kirigami 2.14 as Kirigami 0009 0010 import org.kcm.firewall 1.0 0011 0012 ViewBase { 0013 id: base 0014 title: i18n("Connections") 0015 0016 model: netStatClient.connectionsModel 0017 columns: [ 0018 {column: ConnectionsModel.ProtocolColumn, width: Kirigami.Units.gridUnit * 4}, 0019 {column: ConnectionsModel.LocalAddressColumn, width: Kirigami.Units.gridUnit * 10}, 0020 {column: ConnectionsModel.ForeignAddressColumn, width: Kirigami.Units.gridUnit * 10}, 0021 {column: ConnectionsModel.StatusColumn, width: Kirigami.Units.gridUnit * 5}, 0022 {column: ConnectionsModel.PidColumn, width: Kirigami.Units.gridUnit * 3}, 0023 {column: ConnectionsModel.ProgramColumn, width: Kirigami.Units.gridUnit * 7} 0024 ] 0025 sortColumn: ConnectionsModel.ProgramColumn 0026 emptyListText: i18n("There are currently no open connections") 0027 0028 blacklistRuleFactory: kcm.client.createRuleFromConnection 0029 blacklistColumns: [ 0030 ConnectionsModel.ProtocolColumn, 0031 ConnectionsModel.LocalAddressColumn, 0032 ConnectionsModel.ForeignAddressColumn, 0033 ConnectionsModel.StatusColumn 0034 ] 0035 blacklistRuleSuccessMessage: i18n("Created a blacklist rule from this connection."); 0036 0037 filterColumns: [ConnectionsModel.PidColumn, ConnectionsModel.ProgramColumn] 0038 0039 NetstatClient { 0040 id: netStatClient 0041 property bool active: base.Kirigami.ColumnView.inViewport 0042 0043 function updateRunning() { 0044 if (!active) { 0045 console.log("Stopping Connections data fetch"); 0046 netStatClient.connectionsModel.stop(); 0047 return; 0048 } 0049 0050 if (!netStatClient.hasSS) { 0051 console.log("Netstat client without ss"); 0052 base.errorMessage.text = i18n("could not find iproute2 or net-tools packages installed."); 0053 base.errorMessage.visible = true; 0054 return; 0055 } 0056 0057 console.log("Start connections data fetch"); 0058 netStatClient.connectionsModel.start(); 0059 } 0060 onActiveChanged: updateRunning() 0061 0062 Component.onCompleted : { 0063 console.log("Netstat client completed."); 0064 if (netStatClient.hasSS) { 0065 console.log("Starting netstat client"); 0066 } 0067 netStatClient.updateRunning(); 0068 } 0069 } 0070 }