123 lines
4.4 KiB
QML
123 lines
4.4 KiB
QML
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
|
|
|
|
HeaderTypeWithSwitcher {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: 16
|
|
Layout.rightMargin: 16
|
|
|
|
headerText: qsTr("KillSwitch")
|
|
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
|
|
|
|
enabled: SettingsController.isKillSwitchEnabled && !ConnectionController.isConnected
|
|
checked: !SettingsController.strictKillSwitchEnabled
|
|
|
|
text: qsTr("Soft KillSwitch")
|
|
descriptionText: qsTr("Internet connection is blocked if VPN connection drops accidentally")
|
|
|
|
onClicked: function() {
|
|
SettingsController.strictKillSwitchEnabled = false
|
|
}
|
|
}
|
|
|
|
DividerType {}
|
|
|
|
VerticalRadioButton {
|
|
id: strictKillSwitch
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: 16
|
|
Layout.rightMargin: 16
|
|
|
|
enabled: SettingsController.isKillSwitchEnabled && !ConnectionController.isConnected
|
|
checked: SettingsController.strictKillSwitchEnabled
|
|
|
|
text: qsTr("Strict KillSwitch")
|
|
descriptionText: qsTr("Internet connection is blocked even if VPN was turned off manually or not started")
|
|
|
|
onClicked: function() {
|
|
var headerText = qsTr("Just a little heads-up")
|
|
var descriptionText = qsTr("If you disconnect from VPN or the VPN connection drops while the Strict Kill Switch is turned on, your internet access will be disabled. To restore it, connect to VPN, change the Kill Switch mode or turn the Kill Switch off.")
|
|
var yesButtonText = qsTr("Continue")
|
|
var noButtonText = qsTr("Cancel")
|
|
|
|
var yesButtonFunction = function() {
|
|
SettingsController.strictKillSwitchEnabled = true
|
|
}
|
|
var noButtonFunction = function() {
|
|
}
|
|
|
|
showQuestionDrawer(headerText, descriptionText, yesButtonText, noButtonText, yesButtonFunction, noButtonFunction)
|
|
}
|
|
}
|
|
|
|
DividerType {}
|
|
|
|
LabelWithButtonType {
|
|
Layout.topMargin: 32
|
|
Layout.fillWidth: true
|
|
|
|
enabled: true
|
|
text: qsTr("DNS Exceptions")
|
|
descriptionText: qsTr("DNS servers from the list will remain accessible when Kill Switch is triggered")
|
|
rightImageSource: "qrc:/images/controls/chevron-right.svg"
|
|
|
|
clickedFunction: function() {
|
|
PageController.goToPage(PageEnum.PageSettingsKillSwitchExceptions)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|