Browse Source

qml: separate proxy and server controls from wizardcontainer, so we can reuse them in

network settings later
patch-4
Sander van Grieken 3 years ago
parent
commit
c0dc1a9eaa
  1. 85
      electrum/gui/qml/components/controls/ProxyConfig.qml
  2. 37
      electrum/gui/qml/components/controls/ServerConfig.qml
  3. 88
      electrum/gui/qml/components/wizard/WCProxyConfig.qml
  4. 36
      electrum/gui/qml/components/wizard/WCServerConfig.qml

85
electrum/gui/qml/components/controls/ProxyConfig.qml

@ -0,0 +1,85 @@
import QtQuick 2.6
import QtQuick.Layouts 1.0
import QtQuick.Controls 2.1
Item {
property alias proxy_enabled: proxy_enabled_cb.checked
property alias proxy_type: proxytype.currentIndex
property alias proxy_address: address.text
property alias proxy_port: port.text
property alias username: username_tf.text
property alias password: password_tf.text
property var proxy_types: ['TOR', 'SOCKS5', 'SOCKS4']
ColumnLayout {
width: parent.width
Label {
text: qsTr('Proxy settings')
}
CheckBox {
id: proxy_enabled_cb
text: qsTr('Enable Proxy')
}
ComboBox {
id: proxytype
enabled: proxy_enabled_cb.checked
model: proxy_types
onCurrentIndexChanged: {
if (currentIndex == 0) {
address.text = "127.0.0.1"
port.text = "9050"
}
}
}
GridLayout {
columns: 4
Layout.fillWidth: true
Label {
text: qsTr("Address")
enabled: address.enabled
}
TextField {
id: address
enabled: proxytype.enabled && proxytype.currentIndex > 0
}
Label {
text: qsTr("Port")
enabled: port.enabled
}
TextField {
id: port
enabled: proxytype.enabled && proxytype.currentIndex > 0
}
Label {
text: qsTr("Username")
enabled: username_tf.enabled
}
TextField {
id: username_tf
enabled: proxytype.enabled && proxytype.currentIndex > 0
}
Label {
text: qsTr("Password")
enabled: password_tf.enabled
}
TextField {
id: password_tf
enabled: proxytype.enabled && proxytype.currentIndex > 0
echoMode: TextInput.Password
}
}
}
}

37
electrum/gui/qml/components/controls/ServerConfig.qml

@ -0,0 +1,37 @@
import QtQuick 2.6
import QtQuick.Layouts 1.0
import QtQuick.Controls 2.1
Item {
property alias auto_server: auto_server_cb.checked
property alias address: address_tf.text
ColumnLayout {
width: parent.width
Label {
text: qsTr('Server settings')
}
CheckBox {
id: auto_server_cb
text: qsTr('Select server automatically')
checked: true
}
GridLayout {
columns: 2
Layout.fillWidth: true
Label {
text: qsTr("Server")
enabled: address_tf.enabled
}
TextField {
id: address_tf
enabled: !auto_server_cb.checked
}
}
}
}

88
electrum/gui/qml/components/wizard/WCProxyConfig.qml

@ -1,94 +1,26 @@
import QtQuick.Layouts 1.0
import QtQuick.Controls 2.1
import "../controls"
WizardComponent {
valid: true
onAccept: {
var p = {}
p['enabled'] = proxy_enabled.checked
if (proxy_enabled.checked) {
var type = proxytype.currentValue.toLowerCase()
p['enabled'] = pc.proxy_enabled
if (pc.proxy_enabled) {
var type = pc.proxy_types[pc.proxy_type].toLowerCase()
if (type == 'tor')
type = 'socks5'
p['mode'] = type
p['host'] = address.text
p['port'] = port.text
p['user'] = username.text
p['password'] = password.text
p['host'] = pc.proxy_address
p['port'] = pc.proxy_port
p['user'] = pc.username
p['password'] = pc.password
}
wizard_data['proxy'] = p
}
ColumnLayout {
ProxyConfig {
id: pc
width: parent.width
Label {
text: qsTr('Proxy settings')
}
CheckBox {
id: proxy_enabled
text: qsTr('Enable Proxy')
}
ComboBox {
id: proxytype
enabled: proxy_enabled.checked
model: ['TOR', 'SOCKS5', 'SOCKS4']
onCurrentIndexChanged: {
if (currentIndex == 0) {
address.text = "127.0.0.1"
port.text = "9050"
}
}
}
GridLayout {
columns: 4
Layout.fillWidth: true
Label {
text: qsTr("Address")
enabled: address.enabled
}
TextField {
id: address
enabled: proxytype.enabled && proxytype.currentIndex > 0
}
Label {
text: qsTr("Port")
enabled: port.enabled
}
TextField {
id: port
enabled: proxytype.enabled && proxytype.currentIndex > 0
}
Label {
text: qsTr("Username")
enabled: username.enabled
}
TextField {
id: username
enabled: proxytype.enabled && proxytype.currentIndex > 0
}
Label {
text: qsTr("Password")
enabled: password.enabled
}
TextField {
id: password
enabled: proxytype.enabled && proxytype.currentIndex > 0
echoMode: TextInput.Password
}
}
}
}

36
electrum/gui/qml/components/wizard/WCServerConfig.qml

@ -1,42 +1,16 @@
import QtQuick.Layouts 1.0
import QtQuick.Controls 2.1
import "../controls"
WizardComponent {
valid: true
last: true
onAccept: {
wizard_data['oneserver'] = !auto_server.checked
wizard_data['server'] = address.text
wizard_data['oneserver'] = !sc.auto_server
wizard_data['server'] = sc.address
}
ColumnLayout {
ServerConfig {
id: sc
width: parent.width
Label {
text: qsTr('Server settings')
}
CheckBox {
id: auto_server
text: qsTr('Select server automatically')
checked: true
}
GridLayout {
columns: 2
Layout.fillWidth: true
Label {
text: qsTr("Server")
enabled: address.enabled
}
TextField {
id: address
enabled: !auto_server.checked
}
}
}
}

Loading…
Cancel
Save