import QtQuick import QtQuick.Controls import QtQuick.Layouts import PageEnum 1.0 import Style 1.0 import "./" import "../Controls2" import "../Config" PageType { id: root BackButtonType { id: backButton anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right anchors.topMargin: 20 } FlickableType { id: fl anchors.top: backButton.bottom anchors.bottom: parent.bottom contentHeight: content.height ColumnLayout { id: content anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right HeaderType { Layout.fillWidth: true Layout.leftMargin: 16 Layout.rightMargin: 16 headerText: qsTr("Kill Switch") descriptionText: qsTr("Enable to ensure network traffic goes through a secure VPN tunnel, preventing accidental exposure of your IP and DNS queries if the connection drops") showSwitcher: true switcher { checked: SettingsController.isKillSwitchEnabled enabled: !ConnectionController.isConnected } switcherFunction: function(checked) { if (!ConnectionController.isConnected) { SettingsController.isKillSwitchEnabled = checked } else { PageController.showNotificationMessage(qsTr("Cannot change killSwitch settings during active connection")) switcher.checked = SettingsController.isKillSwitchEnabled } } } VerticalRadioButton { id: softKillSwitch Layout.fillWidth: true Layout.topMargin: 32 Layout.leftMargin: 16 Layout.rightMargin: 16 selectedTextColor: AmneziaStyle.color.paleGray selectedTextDisabledColor: AmneziaStyle.color.mutedGray radioButtonPressedSource: "qrc:/images/controls/radio-button.svg" enabled: SettingsController.isKillSwitchEnabled && !ConnectionController.isConnected checked: !SettingsController.strictKillSwitchEnabled text: qsTr("Soft Kill Switch") descriptionText: qsTr("Internet connection is blocked if VPN connection drops accidentally") onClicked: { SettingsController.strictKillSwitchEnabled = false } } DividerType {} VerticalRadioButton { id: strictKillSwitch Layout.fillWidth: true Layout.leftMargin: 16 Layout.rightMargin: 16 selectedTextColor: AmneziaStyle.color.paleGray selectedTextDisabledColor: AmneziaStyle.color.mutedGray radioButtonPressedSource: "qrc:/images/controls/radio-button.svg" enabled: SettingsController.isKillSwitchEnabled && !ConnectionController.isConnected checked: SettingsController.strictKillSwitchEnabled text: qsTr("Strict Kill Switch") descriptionText: qsTr("Internet connection is blocked even if VPN was turned off manually or not started") onClicked: { SettingsController.strictKillSwitchEnabled = true } } DividerType {} } } }