You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
2.6 KiB
110 lines
2.6 KiB
import QtQuick |
|
import QtQuick.Layouts |
|
import QtQuick.Controls |
|
|
|
Item { |
|
id: pc |
|
|
|
implicitHeight: rootLayout.height |
|
|
|
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_type_map: [ |
|
{ text: qsTr('SOCKS5/TOR'), value: 'socks5' }, |
|
{ text: qsTr('SOCKS4'), value: 'socks4' } |
|
] |
|
|
|
function toProxyDict() { |
|
var p = {} |
|
p['enabled'] = pc.proxy_enabled |
|
if (pc.proxy_enabled) { |
|
var type = proxy_type_map[pc.proxy_type]['value'] |
|
p['mode'] = type |
|
p['host'] = pc.proxy_address |
|
p['port'] = pc.proxy_port |
|
p['user'] = pc.username |
|
p['password'] = pc.password |
|
} |
|
return p |
|
} |
|
|
|
ColumnLayout { |
|
id: rootLayout |
|
|
|
width: parent.width |
|
spacing: constants.paddingLarge |
|
|
|
CheckBox { |
|
id: proxy_enabled_cb |
|
text: qsTr('Enable Proxy') |
|
} |
|
|
|
ElComboBox { |
|
id: proxytype |
|
enabled: proxy_enabled_cb.checked |
|
|
|
textRole: 'text' |
|
valueRole: 'value' |
|
model: proxy_type_map |
|
|
|
onCurrentIndexChanged: { |
|
if (currentIndex == 0) { |
|
if (address.text == '' || port.text == '') { |
|
address.text = "127.0.0.1" |
|
port.text = "9050" |
|
} |
|
} |
|
} |
|
} |
|
|
|
GridLayout { |
|
columns: 2 |
|
Layout.fillWidth: true |
|
|
|
Label { |
|
text: qsTr("Address") |
|
enabled: address.enabled |
|
} |
|
|
|
TextField { |
|
id: address |
|
enabled: proxy_enabled_cb.checked |
|
} |
|
|
|
Label { |
|
text: qsTr("Port") |
|
enabled: port.enabled |
|
} |
|
|
|
TextField { |
|
id: port |
|
enabled: proxy_enabled_cb.checked |
|
} |
|
|
|
Label { |
|
text: qsTr("Username") |
|
enabled: username_tf.enabled |
|
} |
|
|
|
TextField { |
|
id: username_tf |
|
enabled: proxy_enabled_cb.checked |
|
} |
|
|
|
Label { |
|
text: qsTr("Password") |
|
enabled: password_tf.enabled |
|
} |
|
|
|
PasswordField { |
|
id: password_tf |
|
enabled: proxy_enabled_cb.checked |
|
} |
|
} |
|
} |
|
}
|
|
|