bugfix: fixed textFields on PageSetupWizardCredentials

This commit is contained in:
vladimir.kuznetsov 2025-01-24 23:27:01 +07:00
parent 956dd6e37a
commit 52ecd6899b
22 changed files with 196 additions and 218 deletions

View file

@ -135,7 +135,7 @@ DrawerType2 {
backgroundColor: AmneziaStyle.color.slateGray backgroundColor: AmneziaStyle.color.slateGray
textFieldPlaceholderText: qsTr("application name") textField.placeholderText: qsTr("application name")
} }
BasicButtonType { BasicButtonType {

View file

@ -22,11 +22,9 @@ Item {
property var clickedFunc property var clickedFunc
property alias textField: textField property alias textField: textField
property alias textFieldText: textField.text
property string textFieldTextColor: AmneziaStyle.color.paleGray property string textFieldTextColor: AmneziaStyle.color.paleGray
property string textFieldTextDisabledColor: AmneziaStyle.color.mutedGray property string textFieldTextDisabledColor: AmneziaStyle.color.mutedGray
property string textFieldPlaceholderText
property bool textFieldEditable: true property bool textFieldEditable: true
property string borderColor: AmneziaStyle.color.slateGray property string borderColor: AmneziaStyle.color.slateGray
@ -101,7 +99,6 @@ Item {
inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhSensitiveData | Qt.ImhNoPredictiveText inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhSensitiveData | Qt.ImhNoPredictiveText
placeholderText: root.textFieldPlaceholderText
placeholderTextColor: AmneziaStyle.color.charcoalGray placeholderTextColor: AmneziaStyle.color.charcoalGray
selectionColor: AmneziaStyle.color.richBrown selectionColor: AmneziaStyle.color.richBrown
@ -129,8 +126,8 @@ Item {
} }
onActiveFocusChanged: { onActiveFocusChanged: {
if (checkEmptyText && textFieldText === "") { if (root.checkEmptyText && text === "") {
errorText = qsTr("The field can't be empty") root.errorText = qsTr("The field can't be empty")
} }
} }

View file

@ -66,18 +66,18 @@ PageType {
Layout.leftMargin: 16 Layout.leftMargin: 16
headerText: qsTr("Gateway endpoint") headerText: qsTr("Gateway endpoint")
textFieldText: SettingsController.gatewayEndpoint textField.text: SettingsController.gatewayEndpoint
buttonImageSource: textFieldText !== "" ? "qrc:/images/controls/refresh-cw.svg" : "" buttonImageSource: textField.text !== "" ? "qrc:/images/controls/refresh-cw.svg" : ""
clickedFunc: function() { clickedFunc: function() {
SettingsController.resetGatewayEndpoint() SettingsController.resetGatewayEndpoint()
} }
textField.onEditingFinished: { textField.onEditingFinished: {
textFieldText = textField.text.replace(/^\s+|\s+$/g, '') textField.text = textField.text.replace(/^\s+|\s+$/g, '')
if (textFieldText !== SettingsController.gatewayEndpoint) { if (textField.text !== SettingsController.gatewayEndpoint) {
SettingsController.gatewayEndpoint = textFieldText SettingsController.gatewayEndpoint = textField.text
} }
} }
} }

View file

@ -103,12 +103,12 @@ PageType {
Layout.topMargin: 40 Layout.topMargin: 40
headerText: qsTr("MTU") headerText: qsTr("MTU")
textFieldText: clientMtu textField.text: clientMtu
textField.validator: IntValidator { bottom: 576; top: 65535 } textField.validator: IntValidator { bottom: 576; top: 65535 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== clientMtu) { if (textField.text !== clientMtu) {
clientMtu = textFieldText clientMtu = textField.text
} }
} }
checkEmptyText: true checkEmptyText: true
@ -121,12 +121,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: "Jc - Junk packet count" headerText: "Jc - Junk packet count"
textFieldText: clientJunkPacketCount textField.text: clientJunkPacketCount
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== clientJunkPacketCount) { if (textField.text !== clientJunkPacketCount) {
clientJunkPacketCount = textFieldText clientJunkPacketCount = textField.text
} }
} }
@ -141,12 +141,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: "Jmin - Junk packet minimum size" headerText: "Jmin - Junk packet minimum size"
textFieldText: clientJunkPacketMinSize textField.text: clientJunkPacketMinSize
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== clientJunkPacketMinSize) { if (textField.text !== clientJunkPacketMinSize) {
clientJunkPacketMinSize = textFieldText clientJunkPacketMinSize = textField.text
} }
} }
@ -161,12 +161,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: "Jmax - Junk packet maximum size" headerText: "Jmax - Junk packet maximum size"
textFieldText: clientJunkPacketMaxSize textField.text: clientJunkPacketMaxSize
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== clientJunkPacketMaxSize) { if (textField.text !== clientJunkPacketMaxSize) {
clientJunkPacketMaxSize = textFieldText clientJunkPacketMaxSize = textField.text
} }
} }
@ -189,7 +189,7 @@ PageType {
enabled: false enabled: false
headerText: qsTr("Port") headerText: qsTr("Port")
textFieldText: port textField.text: port
} }
TextFieldWithHeaderType { TextFieldWithHeaderType {
@ -200,7 +200,7 @@ PageType {
enabled: false enabled: false
headerText: "S1 - Init packet junk size" headerText: "S1 - Init packet junk size"
textFieldText: serverInitPacketJunkSize textField.text: serverInitPacketJunkSize
} }
TextFieldWithHeaderType { TextFieldWithHeaderType {
@ -211,7 +211,7 @@ PageType {
enabled: false enabled: false
headerText: "S2 - Response packet junk size" headerText: "S2 - Response packet junk size"
textFieldText: serverResponsePacketJunkSize textField.text: serverResponsePacketJunkSize
} }
TextFieldWithHeaderType { TextFieldWithHeaderType {
@ -222,7 +222,7 @@ PageType {
enabled: false enabled: false
headerText: "H1 - Init packet magic header" headerText: "H1 - Init packet magic header"
textFieldText: serverInitPacketMagicHeader textField.text: serverInitPacketMagicHeader
} }
TextFieldWithHeaderType { TextFieldWithHeaderType {
@ -233,7 +233,7 @@ PageType {
enabled: false enabled: false
headerText: "H2 - Response packet magic header" headerText: "H2 - Response packet magic header"
textFieldText: serverResponsePacketMagicHeader textField.text: serverResponsePacketMagicHeader
} }
TextFieldWithHeaderType { TextFieldWithHeaderType {
@ -244,7 +244,7 @@ PageType {
enabled: false enabled: false
headerText: "H3 - Underload packet magic header" headerText: "H3 - Underload packet magic header"
textFieldText: serverUnderloadPacketMagicHeader textField.text: serverUnderloadPacketMagicHeader
} }
TextFieldWithHeaderType { TextFieldWithHeaderType {
@ -255,7 +255,7 @@ PageType {
enabled: false enabled: false
headerText: "H4 - Transport packet magic header" headerText: "H4 - Transport packet magic header"
textFieldText: serverTransportPacketMagicHeader textField.text: serverTransportPacketMagicHeader
} }
} }
} }

View file

@ -106,11 +106,11 @@ PageType {
enabled: delegateItem.isEnabled enabled: delegateItem.isEnabled
headerText: qsTr("VPN address subnet") headerText: qsTr("VPN address subnet")
textFieldText: subnetAddress textField.text: subnetAddress
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== subnetAddress) { if (textField.text !== subnetAddress) {
subnetAddress = textFieldText subnetAddress = textField.text
} }
} }
@ -125,13 +125,13 @@ PageType {
enabled: delegateItem.isEnabled enabled: delegateItem.isEnabled
headerText: qsTr("Port") headerText: qsTr("Port")
textFieldText: port textField.text: port
textField.maximumLength: 5 textField.maximumLength: 5
textField.validator: IntValidator { bottom: 1; top: 65535 } textField.validator: IntValidator { bottom: 1; top: 65535 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== port) { if (textField.text !== port) {
port = textFieldText port = textField.text
} }
} }
@ -144,16 +144,16 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("Jc - Junk packet count") headerText: qsTr("Jc - Junk packet count")
textFieldText: serverJunkPacketCount textField.text: serverJunkPacketCount
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText === "") { if (textField.text === "") {
textFieldText = "0" textField.text = "0"
} }
if (textFieldText !== serverJunkPacketCount) { if (textField.text !== serverJunkPacketCount) {
serverJunkPacketCount = textFieldText serverJunkPacketCount = textField.text
} }
} }
@ -166,12 +166,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("Jmin - Junk packet minimum size") headerText: qsTr("Jmin - Junk packet minimum size")
textFieldText: serverJunkPacketMinSize textField.text: serverJunkPacketMinSize
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== serverJunkPacketMinSize) { if (textField.text !== serverJunkPacketMinSize) {
serverJunkPacketMinSize = textFieldText serverJunkPacketMinSize = textField.text
} }
} }
@ -184,12 +184,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("Jmax - Junk packet maximum size") headerText: qsTr("Jmax - Junk packet maximum size")
textFieldText: serverJunkPacketMaxSize textField.text: serverJunkPacketMaxSize
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== serverJunkPacketMaxSize) { if (textField.text !== serverJunkPacketMaxSize) {
serverJunkPacketMaxSize = textFieldText serverJunkPacketMaxSize = textField.text
} }
} }
@ -202,12 +202,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("S1 - Init packet junk size") headerText: qsTr("S1 - Init packet junk size")
textFieldText: serverInitPacketJunkSize textField.text: serverInitPacketJunkSize
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== serverInitPacketJunkSize) { if (textField.text !== serverInitPacketJunkSize) {
serverInitPacketJunkSize = textFieldText serverInitPacketJunkSize = textField.text
} }
} }
@ -226,12 +226,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("S2 - Response packet junk size") headerText: qsTr("S2 - Response packet junk size")
textFieldText: serverResponsePacketJunkSize textField.text: serverResponsePacketJunkSize
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== serverResponsePacketJunkSize) { if (textField.text !== serverResponsePacketJunkSize) {
serverResponsePacketJunkSize = textFieldText serverResponsePacketJunkSize = textField.text
} }
} }
@ -250,12 +250,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("H1 - Init packet magic header") headerText: qsTr("H1 - Init packet magic header")
textFieldText: serverInitPacketMagicHeader textField.text: serverInitPacketMagicHeader
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== serverInitPacketMagicHeader) { if (textField.text !== serverInitPacketMagicHeader) {
serverInitPacketMagicHeader = textFieldText serverInitPacketMagicHeader = textField.text
} }
} }
@ -268,12 +268,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("H2 - Response packet magic header") headerText: qsTr("H2 - Response packet magic header")
textFieldText: serverResponsePacketMagicHeader textField.text: serverResponsePacketMagicHeader
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== serverResponsePacketMagicHeader) { if (textField.text !== serverResponsePacketMagicHeader) {
serverResponsePacketMagicHeader = textFieldText serverResponsePacketMagicHeader = textField.text
} }
} }
@ -286,12 +286,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("H4 - Transport packet magic header") headerText: qsTr("H4 - Transport packet magic header")
textFieldText: serverTransportPacketMagicHeader textField.text: serverTransportPacketMagicHeader
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== serverTransportPacketMagicHeader) { if (textField.text !== serverTransportPacketMagicHeader) {
serverTransportPacketMagicHeader = textFieldText serverTransportPacketMagicHeader = textField.text
} }
} }
@ -304,12 +304,12 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("H3 - Underload packet magic header") headerText: qsTr("H3 - Underload packet magic header")
textFieldText: serverUnderloadPacketMagicHeader textField.text: serverUnderloadPacketMagicHeader
textField.validator: IntValidator { bottom: 0 } textField.validator: IntValidator { bottom: 0 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== serverUnderloadPacketMagicHeader) { if (textField.text !== serverUnderloadPacketMagicHeader) {
serverUnderloadPacketMagicHeader = textFieldText serverUnderloadPacketMagicHeader = textField.text
} }
} }

View file

@ -89,18 +89,18 @@ PageType {
Layout.topMargin: 32 Layout.topMargin: 32
headerText: qsTr("Disguised as traffic from") headerText: qsTr("Disguised as traffic from")
textFieldText: site textField.text: site
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== site) { if (textField.text !== site) {
var tmpText = textFieldText var tmpText = textField.text
tmpText = tmpText.toLocaleLowerCase() tmpText = tmpText.toLocaleLowerCase()
var indexHttps = tmpText.indexOf("https://") var indexHttps = tmpText.indexOf("https://")
if (indexHttps === 0) { if (indexHttps === 0) {
tmpText = textFieldText.substring(8) tmpText = textField.text.substring(8)
} else { } else {
site = textFieldText site = textField.text
} }
} }
} }
@ -113,13 +113,13 @@ PageType {
Layout.topMargin: 16 Layout.topMargin: 16
headerText: qsTr("Port") headerText: qsTr("Port")
textFieldText: port textField.text: port
textField.maximumLength: 5 textField.maximumLength: 5
textField.validator: IntValidator { bottom: 1; top: 65535 } textField.validator: IntValidator { bottom: 1; top: 65535 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== port) { if (textField.text !== port) {
port = textFieldText port = textField.text
} }
} }
} }

View file

@ -88,13 +88,13 @@ PageType {
Layout.topMargin: 32 Layout.topMargin: 32
headerText: qsTr("VPN address subnet") headerText: qsTr("VPN address subnet")
textFieldText: subnetAddress textField.text: subnetAddress
parentFlickable: fl parentFlickable: fl
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== subnetAddress) { if (textField.text !== subnetAddress) {
subnetAddress = textFieldText subnetAddress = textField.text
} }
} }
} }
@ -137,13 +137,13 @@ PageType {
enabled: isPortEditable enabled: isPortEditable
headerText: qsTr("Port") headerText: qsTr("Port")
textFieldText: port textField.text: port
textField.maximumLength: 5 textField.maximumLength: 5
textField.validator: IntValidator { bottom: 1; top: 65535 } textField.validator: IntValidator { bottom: 1; top: 65535 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== port) { if (textField.text !== port) {
port = textFieldText port = textField.text
} }
} }
} }

View file

@ -93,13 +93,13 @@ PageType {
enabled: isPortEditable enabled: isPortEditable
headerText: qsTr("Port") headerText: qsTr("Port")
textFieldText: port textField.text: port
textField.maximumLength: 5 textField.maximumLength: 5
textField.validator: IntValidator { bottom: 1; top: 65535 } textField.validator: IntValidator { bottom: 1; top: 65535 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== port) { if (textField.text !== port) {
port = textFieldText port = textField.text
} }
} }
} }

View file

@ -97,12 +97,12 @@ PageType {
Layout.topMargin: 40 Layout.topMargin: 40
headerText: qsTr("MTU") headerText: qsTr("MTU")
textFieldText: clientMtu textField.text: clientMtu
textField.validator: IntValidator { bottom: 576; top: 65535 } textField.validator: IntValidator { bottom: 576; top: 65535 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== clientMtu) { if (textField.text !== clientMtu) {
clientMtu = textFieldText clientMtu = textField.text
} }
} }
checkEmptyText: true checkEmptyText: true
@ -124,7 +124,7 @@ PageType {
enabled: false enabled: false
headerText: qsTr("Port") headerText: qsTr("Port")
textFieldText: port textField.text: port
} }
} }
} }

View file

@ -90,11 +90,11 @@ PageType {
enabled: delegateItem.isEnabled enabled: delegateItem.isEnabled
headerText: qsTr("VPN address subnet") headerText: qsTr("VPN address subnet")
textFieldText: subnetAddress textField.text: subnetAddress
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== subnetAddress) { if (textField.text !== subnetAddress) {
subnetAddress = textFieldText subnetAddress = textField.text
} }
} }
@ -109,13 +109,13 @@ PageType {
enabled: delegateItem.isEnabled enabled: delegateItem.isEnabled
headerText: qsTr("Port") headerText: qsTr("Port")
textFieldText: port textField.text: port
textField.maximumLength: 5 textField.maximumLength: 5
textField.validator: IntValidator { bottom: 1; top: 65535 } textField.validator: IntValidator { bottom: 1; top: 65535 }
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== port) { if (textField.text !== port) {
port = textFieldText port = textField.text
} }
} }

View file

@ -86,18 +86,18 @@ PageType {
Layout.topMargin: 32 Layout.topMargin: 32
headerText: qsTr("Disguised as traffic from") headerText: qsTr("Disguised as traffic from")
textFieldText: site textField.text: site
textField.onEditingFinished: { textField.onEditingFinished: {
if (textFieldText !== site) { if (textField.text !== site) {
var tmpText = textFieldText var tmpText = textField.text
tmpText = tmpText.toLocaleLowerCase() tmpText = tmpText.toLocaleLowerCase()
var indexHttps = tmpText.indexOf("https://") var indexHttps = tmpText.indexOf("https://")
if (indexHttps === 0) { if (indexHttps === 0) {
tmpText = textFieldText.substring(8) tmpText = textField.text.substring(8)
} else { } else {
site = textFieldText site = textField.text
} }
} }
} }

View file

@ -211,9 +211,9 @@ PageType {
port = tempPort port = tempPort
username = tempUsername username = tempUsername
password = tempPassword password = tempPassword
portTextField.textFieldText = port portTextField.textField.text = port
usernameTextField.textFieldText = username usernameTextField.textField.text = username
passwordTextField.textFieldText = password passwordTextField.textField.text = password
} }
} }
@ -231,14 +231,14 @@ PageType {
parentFlickable: fl parentFlickable: fl
headerText: qsTr("Port") headerText: qsTr("Port")
textFieldText: port textField.text: port
textField.maximumLength: 5 textField.maximumLength: 5
textField.validator: IntValidator { bottom: 1; top: 65535 } textField.validator: IntValidator { bottom: 1; top: 65535 }
textField.onEditingFinished: { textField.onEditingFinished: {
textFieldText = textField.text.replace(/^\s+|\s+$/g, '') textField.text = textField.text.replace(/^\s+|\s+$/g, '')
if (textFieldText !== port) { if (textField.text !== port) {
port = textFieldText port = textField.text
} }
} }
} }
@ -251,14 +251,14 @@ PageType {
parentFlickable: fl parentFlickable: fl
headerText: qsTr("Username") headerText: qsTr("Username")
textFieldPlaceholderText: "username" textField.placeholderText: "username"
textFieldText: username textField.text: username
textField.maximumLength: 32 textField.maximumLength: 32
textField.onEditingFinished: { textField.onEditingFinished: {
textFieldText = textField.text.replace(/^\s+|\s+$/g, '') textField.text = textField.text.replace(/^\s+|\s+$/g, '')
if (textFieldText !== username) { if (textField.text !== username) {
username = textFieldText username = textField.text
} }
} }
} }
@ -273,12 +273,12 @@ PageType {
parentFlickable: fl parentFlickable: fl
headerText: qsTr("Password") headerText: qsTr("Password")
textFieldPlaceholderText: "password" textField.placeholderText: "password"
textFieldText: password textField.text: password
textField.maximumLength: 32 textField.maximumLength: 32
textField.echoMode: hidePassword ? TextInput.Password : TextInput.Normal textField.echoMode: hidePassword ? TextInput.Password : TextInput.Normal
buttonImageSource: textFieldText !== "" ? (hidePassword ? "qrc:/images/controls/eye.svg" : "qrc:/images/controls/eye-off.svg") buttonImageSource: textField.text !== "" ? (hidePassword ? "qrc:/images/controls/eye.svg" : "qrc:/images/controls/eye-off.svg")
: "" : ""
clickedFunc: function() { clickedFunc: function() {
@ -286,9 +286,9 @@ PageType {
} }
textField.onFocusChanged: { textField.onFocusChanged: {
textFieldText = textField.text.replace(/^\s+|\s+$/g, '') textField.text = textField.text.replace(/^\s+|\s+$/g, '')
if (textFieldText !== password) { if (textField.text !== password) {
password = textFieldText password = textField.text
} }
} }
} }
@ -309,19 +309,19 @@ PageType {
portTextField.errorText = qsTr("The port must be in the range of 1 to 65535") portTextField.errorText = qsTr("The port must be in the range of 1 to 65535")
return return
} }
if (usernameTextField.textFieldText && passwordTextField.textFieldText === "") { if (usernameTextField.textField.text && passwordTextField.textField.text === "") {
passwordTextField.errorText = qsTr("Password cannot be empty") passwordTextField.errorText = qsTr("Password cannot be empty")
return return
} else if (usernameTextField.textFieldText === "" && passwordTextField.textFieldText) { } else if (usernameTextField.textField.text === "" && passwordTextField.textField.text) {
usernameTextField.errorText = qsTr("Username cannot be empty") usernameTextField.errorText = qsTr("Username cannot be empty")
return return
} }
PageController.goToPage(PageEnum.PageSetupWizardInstalling) PageController.goToPage(PageEnum.PageSetupWizardInstalling)
InstallController.updateContainer(Socks5ProxyConfigModel.getConfig()) InstallController.updateContainer(Socks5ProxyConfigModel.getConfig())
tempPort = portTextField.textFieldText tempPort = portTextField.textField.text
tempUsername = usernameTextField.textFieldText tempUsername = usernameTextField.textField.text
tempPassword = passwordTextField.textFieldText tempPassword = passwordTextField.textField.text
changeSettingsDrawer.closeTriggered() changeSettingsDrawer.closeTriggered()
} }
} }

View file

@ -252,7 +252,7 @@ PageType {
Layout.fillWidth: true Layout.fillWidth: true
textFieldPlaceholderText: qsTr("application name") textField.placeholderText: qsTr("application name")
buttonImageSource: "qrc:/images/controls/plus.svg" buttonImageSource: "qrc:/images/controls/plus.svg"
rightButtonClickedOnEnter: true rightButtonClickedOnEnter: true

View file

@ -67,7 +67,7 @@ PageType {
Layout.fillWidth: true Layout.fillWidth: true
headerText: qsTr("Primary DNS") headerText: qsTr("Primary DNS")
textFieldText: SettingsController.primaryDns textField.text: SettingsController.primaryDns
textField.validator: RegularExpressionValidator { textField.validator: RegularExpressionValidator {
regularExpression: InstallController.ipAddressRegExp() regularExpression: InstallController.ipAddressRegExp()
} }
@ -79,7 +79,7 @@ PageType {
Layout.fillWidth: true Layout.fillWidth: true
headerText: qsTr("Secondary DNS") headerText: qsTr("Secondary DNS")
textFieldText: SettingsController.secondaryDns textField.text: SettingsController.secondaryDns
textField.validator: RegularExpressionValidator { textField.validator: RegularExpressionValidator {
regularExpression: InstallController.ipAddressRegExp() regularExpression: InstallController.ipAddressRegExp()
} }
@ -105,9 +105,9 @@ PageType {
var yesButtonFunction = function() { var yesButtonFunction = function() {
SettingsController.primaryDns = "1.1.1.1" SettingsController.primaryDns = "1.1.1.1"
primaryDns.textFieldText = SettingsController.primaryDns primaryDns.textField.text = SettingsController.primaryDns
SettingsController.secondaryDns = "1.0.0.1" SettingsController.secondaryDns = "1.0.0.1"
secondaryDns.textFieldText = SettingsController.secondaryDns secondaryDns.textField.text = SettingsController.secondaryDns
PageController.showNotificationMessage(qsTr("Settings have been reset")) PageController.showNotificationMessage(qsTr("Settings have been reset"))
} }
var noButtonFunction = function() { var noButtonFunction = function() {
@ -125,11 +125,11 @@ PageType {
text: qsTr("Save") text: qsTr("Save")
clickedFunc: function() { clickedFunc: function() {
if (primaryDns.textFieldText !== SettingsController.primaryDns) { if (primaryDns.textField.text !== SettingsController.primaryDns) {
SettingsController.primaryDns = primaryDns.textFieldText SettingsController.primaryDns = primaryDns.textField.text
} }
if (secondaryDns.textFieldText !== SettingsController.secondaryDns) { if (secondaryDns.textField.text !== SettingsController.secondaryDns) {
SettingsController.secondaryDns = secondaryDns.textFieldText SettingsController.secondaryDns = secondaryDns.textField.text
} }
PageController.showNotificationMessage(qsTr("Settings saved")) PageController.showNotificationMessage(qsTr("Settings saved"))
} }

View file

@ -142,7 +142,7 @@ PageType {
Layout.fillWidth: true Layout.fillWidth: true
headerText: qsTr("Server name") headerText: qsTr("Server name")
textFieldText: root.processedServer.name textField.text: root.processedServer.name
textField.maximumLength: 30 textField.maximumLength: 30
checkEmptyText: true checkEmptyText: true
} }
@ -155,12 +155,12 @@ PageType {
text: qsTr("Save") text: qsTr("Save")
clickedFunc: function() { clickedFunc: function() {
if (serverName.textFieldText === "") { if (serverName.textField.text === "") {
return return
} }
if (serverName.textFieldText !== root.processedServer.name) { if (serverName.textField.text !== root.processedServer.name) {
ServersModel.setProcessedServerData("name", serverName.textFieldText); ServersModel.setProcessedServerData("name", serverName.textField.text);
} }
serverNameEditDrawer.closeTriggered() serverNameEditDrawer.closeTriggered()
} }

View file

@ -274,13 +274,13 @@ PageType {
Layout.fillWidth: true Layout.fillWidth: true
rightButtonClickedOnEnter: true rightButtonClickedOnEnter: true
textFieldPlaceholderText: qsTr("website or IP") textField.placeholderText: qsTr("website or IP")
buttonImageSource: "qrc:/images/controls/plus.svg" buttonImageSource: "qrc:/images/controls/plus.svg"
clickedFunc: function() { clickedFunc: function() {
PageController.showBusyIndicator(true) PageController.showBusyIndicator(true)
SitesController.addSite(textFieldText) SitesController.addSite(textField.text)
textFieldText = "" textField.text = ""
PageController.showBusyIndicator(false) PageController.showBusyIndicator(false)
} }
} }

View file

@ -163,12 +163,12 @@ PageType {
Layout.rightMargin: 16 Layout.rightMargin: 16
Layout.leftMargin: 16 Layout.leftMargin: 16
visible: textKey.textFieldText !== "" visible: textKey.textField.text !== ""
text: qsTr("Continue") text: qsTr("Continue")
clickedFunc: function() { clickedFunc: function() {
if (ImportController.extractConfigFromData(textKey.textFieldText)) { if (ImportController.extractConfigFromData(textKey.textField.text)) {
PageController.goToPage(PageEnum.PageSetupWizardViewConfig) PageController.goToPage(PageEnum.PageSetupWizardViewConfig)
} }
} }

View file

@ -82,24 +82,19 @@ PageType {
reuseItems: true reuseItems: true
delegate: ColumnLayout { delegate: ColumnLayout {
property alias textField: _textField.textField
width: listView.width width: listView.width
TextFieldWithHeaderType { TextFieldWithHeaderType {
id: _textField id: delegate
Layout.fillWidth: true Layout.fillWidth: true
Layout.leftMargin: 16 Layout.leftMargin: 16
Layout.rightMargin: 16 Layout.rightMargin: 16
property bool hidePassword: hideText
headerText: title headerText: title
textField.echoMode: hideText ? TextInput.Password : TextInput.Normal textField.echoMode: hideContent ? TextInput.Password : TextInput.Normal
buttonImageSource: imageSource textField.placeholderText: placeholderContent
textFieldPlaceholderText: placeholderText textField.text: textField.text
textField.text: textFieldText
rightButtonClickedOnEnter: true rightButtonClickedOnEnter: true
@ -108,17 +103,12 @@ PageType {
} }
textField.onFocusChanged: { textField.onFocusChanged: {
var _currentIndex = listView.currentIndex textField.text = textField.text.replace(/^\s+|\s+$/g, '')
var _currentItem = listView.itemAtIndex(_currentIndex).children[0]
listView.model[_currentIndex].textFieldText = _currentItem.textFieldText.replace(/^\s+|\s+$/g, '')
} }
textField.onTextChanged: { textField.onTextChanged: {
var _currentIndex = listView.currentIndex if (hideContent) {
textFieldText = textField.text buttonImageSource = textField.text !== "" ? (hideContent ? "qrc:/images/controls/eye.svg" : "qrc:/images/controls/eye-off.svg") : ""
if (_currentIndex === vars.secretDataIndex) {
buttonImageSource = textFieldText !== "" ? (hideText ? "qrc:/images/controls/eye.svg" : "qrc:/images/controls/eye-off.svg") : ""
} }
} }
} }
@ -143,9 +133,9 @@ PageType {
} }
InstallController.setShouldCreateServer(true) InstallController.setShouldCreateServer(true)
var _hostname = listView.itemAtIndex(vars.hostnameIndex).children[0].textFieldText var _hostname = listView.itemAtIndex(vars.hostnameIndex).children[0].textField.text
var _username = listView.itemAtIndex(vars.usernameIndex).children[0].textFieldText var _username = listView.itemAtIndex(vars.usernameIndex).children[0].textField.text
var _secretData = listView.itemAtIndex(vars.secretDataIndex).children[0].textFieldText var _secretData = listView.itemAtIndex(vars.secretDataIndex).children[0].textField.text
InstallController.setProcessedServerCredentials(_hostname, _username, _secretData) InstallController.setProcessedServerCredentials(_hostname, _username, _secretData)
@ -194,23 +184,23 @@ PageType {
function isCredentialsFilled() { function isCredentialsFilled() {
var hasEmptyField = false var hasEmptyField = false
var _hostname = listView.itemAtIndex(vars.hostnameIndex).children[0] var hostnameItem = listView.itemAtIndex(vars.hostnameIndex).children[0]
if (_hostname.textFieldText === "") { if (hostnameItem.textField.text === "") {
_hostname.errorText = qsTr("Ip address cannot be empty") hostnameItem.errorText = qsTr("Ip address cannot be empty")
hasEmptyField = true hasEmptyField = true
} else if (!_hostname.textField.acceptableInput) { } else if (!hostnameItem.textField.acceptableInput) {
_hostname.errorText = qsTr("Enter the address in the format 255.255.255.255:88") hostnameItem.errorText = qsTr("Enter the address in the format 255.255.255.255:88")
} }
var _username = listView.itemAtIndex(vars.usernameIndex).children[0] var usernameItem = listView.itemAtIndex(vars.usernameIndex).children[0]
if (_username.textFieldText === "") { if (usernameItem.textField.text === "") {
_username.errorText = qsTr("Login cannot be empty") usernameItem.errorText = qsTr("Login cannot be empty")
hasEmptyField = true hasEmptyField = true
} }
var _secretData = listView.itemAtIndex(vars.secretDataIndex).children[0] var secretDataItem = listView.itemAtIndex(vars.secretDataIndex).children[0]
if (_secretData.textFieldText === "") { if (secretDataItem.textField.text === "") {
_secretData.errorText = qsTr("Password/private key cannot be empty") secretDataItem.errorText = qsTr("Password/private key cannot be empty")
hasEmptyField = true hasEmptyField = true
} }
@ -218,46 +208,37 @@ PageType {
} }
property list<QtObject> inputFields: [ property list<QtObject> inputFields: [
hostname, hostnameObject,
username, usernameObject,
secretData secretDataObject
] ]
QtObject { QtObject {
id: hostname id: hostnameObject
property string title: qsTr("Server IP address [:port]") property string title: qsTr("Server IP address [:port]")
readonly property string placeholderText: qsTr("255.255.255.255:22") readonly property string placeholderContent: qsTr("255.255.255.255:22")
property string textFieldText: "" property bool hideContent: false
property bool hideText: false
property string imageSource: ""
readonly property var clickedHandler: function() {
console.debug(">>> Server IP address text field was clicked!!!")
clicked()
}
}
QtObject {
id: username
property string title: qsTr("SSH Username")
readonly property string placeholderText: "root"
property string textFieldText: ""
property bool hideText: false
property string imageSource: ""
readonly property var clickedHandler: undefined readonly property var clickedHandler: undefined
} }
QtObject { QtObject {
id: secretData id: usernameObject
property string title: qsTr("SSH Username")
readonly property string placeholderContent: "root"
property bool hideContent: false
readonly property var clickedHandler: undefined
}
QtObject {
id: secretDataObject
property string title: qsTr("Password or SSH private key") property string title: qsTr("Password or SSH private key")
readonly property string placeholderText: "" readonly property string placeholderContent: ""
property string textFieldText: "" property bool hideContent: true
property bool hideText: true
property string imageSource: textFieldText !== "" ? (hideText ? "qrc:/images/controls/eye.svg" : "qrc:/images/controls/eye-off.svg") : ""
readonly property var clickedHandler: function() { readonly property var clickedHandler: function() {
hideText = !hideText hideContent = !hideContent
} }
} }

View file

@ -257,7 +257,7 @@ PageType {
} }
PageController.goToPage(PageEnum.PageSetupWizardInstalling); PageController.goToPage(PageEnum.PageSetupWizardInstalling);
InstallController.install(dockerContainer, port.textFieldText, transportProtoSelector.currentIndex) InstallController.install(dockerContainer, port.textField.text, transportProtoSelector.currentIndex)
} }
} }
@ -267,7 +267,7 @@ PageType {
if (ProtocolProps.defaultPort(defaultContainerProto) < 0) { if (ProtocolProps.defaultPort(defaultContainerProto) < 0) {
port.visible = false port.visible = false
} else { } else {
port.textFieldText = ProtocolProps.getPortForInstall(defaultContainerProto) port.textField.text = ProtocolProps.getPortForInstall(defaultContainerProto)
} }
transportProtoSelector.currentIndex = ProtocolProps.defaultTransportProto(defaultContainerProto) transportProtoSelector.currentIndex = ProtocolProps.defaultTransportProto(defaultContainerProto)

View file

@ -51,7 +51,7 @@ PageType {
Layout.leftMargin: 16 Layout.leftMargin: 16
headerText: qsTr("Key") headerText: qsTr("Key")
textFieldPlaceholderText: "vpn://" textField.placeholderText: "vpn://"
buttonText: qsTr("Insert") buttonText: qsTr("Insert")
clickedFunc: function() { clickedFunc: function() {
@ -75,7 +75,7 @@ PageType {
text: qsTr("Continue") text: qsTr("Continue")
clickedFunc: function() { clickedFunc: function() {
if (ImportController.extractConfigFromData(textKey.textFieldText)) { if (ImportController.extractConfigFromData(textKey.textField.text)) {
PageController.goToPage(PageEnum.PageSetupWizardViewConfig) PageController.goToPage(PageEnum.PageSetupWizardViewConfig)
} }
} }

View file

@ -51,25 +51,25 @@ PageType {
switch (type) { switch (type) {
case PageShare.ConfigType.AmneziaConnection: { case PageShare.ConfigType.AmneziaConnection: {
ExportController.generateConnectionConfig(clientNameTextField.textFieldText); ExportController.generateConnectionConfig(clientNameTextField.textField.text);
break; break;
} }
case PageShare.ConfigType.OpenVpn: { case PageShare.ConfigType.OpenVpn: {
ExportController.generateOpenVpnConfig(clientNameTextField.textFieldText) ExportController.generateOpenVpnConfig(clientNameTextField.textField.text)
shareConnectionDrawer.configCaption = qsTr("Save OpenVPN config") shareConnectionDrawer.configCaption = qsTr("Save OpenVPN config")
shareConnectionDrawer.configExtension = ".ovpn" shareConnectionDrawer.configExtension = ".ovpn"
shareConnectionDrawer.configFileName = "amnezia_for_openvpn" shareConnectionDrawer.configFileName = "amnezia_for_openvpn"
break break
} }
case PageShare.ConfigType.WireGuard: { case PageShare.ConfigType.WireGuard: {
ExportController.generateWireGuardConfig(clientNameTextField.textFieldText) ExportController.generateWireGuardConfig(clientNameTextField.textField.text)
shareConnectionDrawer.configCaption = qsTr("Save WireGuard config") shareConnectionDrawer.configCaption = qsTr("Save WireGuard config")
shareConnectionDrawer.configExtension = ".conf" shareConnectionDrawer.configExtension = ".conf"
shareConnectionDrawer.configFileName = "amnezia_for_wireguard" shareConnectionDrawer.configFileName = "amnezia_for_wireguard"
break break
} }
case PageShare.ConfigType.Awg: { case PageShare.ConfigType.Awg: {
ExportController.generateAwgConfig(clientNameTextField.textFieldText) ExportController.generateAwgConfig(clientNameTextField.textField.text)
shareConnectionDrawer.configCaption = qsTr("Save AmneziaWG config") shareConnectionDrawer.configCaption = qsTr("Save AmneziaWG config")
shareConnectionDrawer.configExtension = ".conf" shareConnectionDrawer.configExtension = ".conf"
shareConnectionDrawer.configFileName = "amnezia_for_awg" shareConnectionDrawer.configFileName = "amnezia_for_awg"
@ -90,7 +90,7 @@ PageType {
break break
} }
case PageShare.ConfigType.Xray: { case PageShare.ConfigType.Xray: {
ExportController.generateXrayConfig(clientNameTextField.textFieldText) ExportController.generateXrayConfig(clientNameTextField.textField.text)
shareConnectionDrawer.configCaption = qsTr("Save XRay config") shareConnectionDrawer.configCaption = qsTr("Save XRay config")
shareConnectionDrawer.configExtension = ".json" shareConnectionDrawer.configExtension = ".json"
shareConnectionDrawer.configFileName = "amnezia_for_xray" shareConnectionDrawer.configFileName = "amnezia_for_xray"
@ -296,7 +296,7 @@ PageType {
visible: accessTypeSelector.currentIndex === 0 visible: accessTypeSelector.currentIndex === 0
headerText: qsTr("User name") headerText: qsTr("User name")
textFieldText: "New client" textField.text: "New client"
textField.maximumLength: 20 textField.maximumLength: 20
checkEmptyText: true checkEmptyText: true
@ -525,7 +525,7 @@ PageType {
parentFlickable: a parentFlickable: a
clickedFunc: function(){ clickedFunc: function(){
if (clientNameTextField.textFieldText !== "") { if (clientNameTextField.textField.text !== "") {
ExportController.generateConfig(root.connectionTypesModel[exportTypeSelector.currentIndex].type) ExportController.generateConfig(root.connectionTypesModel[exportTypeSelector.currentIndex].type)
} }
} }
@ -555,14 +555,14 @@ PageType {
id: searchTextField id: searchTextField
Layout.fillWidth: true Layout.fillWidth: true
textFieldPlaceholderText: qsTr("Search") textField.placeholderText: qsTr("Search")
Keys.onEscapePressed: { Keys.onEscapePressed: {
root.isSearchBarVisible = false root.isSearchBarVisible = false
} }
function navigateTo() { function navigateTo() {
if (searchTextField.textFieldText === "") { if (searchTextField.textField.text === "") {
root.isSearchBarVisible = false root.isSearchBarVisible = false
} }
} }
@ -601,7 +601,7 @@ PageType {
sourceModel: ClientManagementModel sourceModel: ClientManagementModel
filters: RegExpFilter { filters: RegExpFilter {
roleName: "clientName" roleName: "clientName"
pattern: ".*" + searchTextField.textFieldText + ".*" pattern: ".*" + searchTextField.textField.text + ".*"
caseSensitivity: Qt.CaseInsensitive caseSensitivity: Qt.CaseInsensitive
} }
} }
@ -765,7 +765,7 @@ PageType {
id: clientNameEditor id: clientNameEditor
Layout.fillWidth: true Layout.fillWidth: true
headerText: qsTr("Client name") headerText: qsTr("Client name")
textFieldText: clientName textField.text: clientName
textField.maximumLength: 20 textField.maximumLength: 20
checkEmptyText: true checkEmptyText: true
} }
@ -778,14 +778,14 @@ PageType {
text: qsTr("Save") text: qsTr("Save")
clickedFunc: function() { clickedFunc: function() {
if (clientNameEditor.textFieldText === "") { if (clientNameEditor.textField.text === "") {
return return
} }
if (clientNameEditor.textFieldText !== clientName) { if (clientNameEditor.textField.text !== clientName) {
PageController.showBusyIndicator(true) PageController.showBusyIndicator(true)
ExportController.renameClient(index, ExportController.renameClient(index,
clientNameEditor.textFieldText, clientNameEditor.textField.text,
ContainersModel.getProcessedContainerIndex(), ContainersModel.getProcessedContainerIndex(),
ServersModel.getProcessedServerCredentials()) ServersModel.getProcessedServerCredentials())
PageController.showBusyIndicator(false) PageController.showBusyIndicator(false)

View file

@ -176,12 +176,12 @@ Window {
Connections { Connections {
target: privateKeyPassphraseDrawer target: privateKeyPassphraseDrawer
function onOpened() { function onOpened() {
passphrase.textFieldText = "" passphrase.textField.text = ""
passphrase.textField.forceActiveFocus() passphrase.textField.forceActiveFocus()
} }
function onAboutToHide() { function onAboutToHide() {
if (passphrase.textFieldText !== "") { if (passphrase.textField.text !== "") {
PageController.showBusyIndicator(true) PageController.showBusyIndicator(true)
} }
} }
@ -222,7 +222,7 @@ Window {
clickedFunc: function() { clickedFunc: function() {
privateKeyPassphraseDrawer.closeTriggered() privateKeyPassphraseDrawer.closeTriggered()
PageController.passphraseRequestDrawerClosed(passphrase.textFieldText) PageController.passphraseRequestDrawerClosed(passphrase.textField.text)
} }
} }
} }