From f398404e047cfee5fb8e02f248bccbfad316844d Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Thu, 25 Aug 2022 11:13:42 +0200 Subject: [PATCH] qml: add server and proxy config dialogs, forgot new files --- .../gui/qml/components/ProxyConfigDialog.qml | 69 +++++++++++++++++++ .../gui/qml/components/ServerConfigDialog.qml | 53 ++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 electrum/gui/qml/components/ProxyConfigDialog.qml create mode 100644 electrum/gui/qml/components/ServerConfigDialog.qml diff --git a/electrum/gui/qml/components/ProxyConfigDialog.qml b/electrum/gui/qml/components/ProxyConfigDialog.qml new file mode 100644 index 000000000..b4689034d --- /dev/null +++ b/electrum/gui/qml/components/ProxyConfigDialog.qml @@ -0,0 +1,69 @@ +import QtQuick 2.6 +import QtQuick.Layouts 1.0 +import QtQuick.Controls 2.14 +import QtQuick.Controls.Material 2.0 + +import org.electrum 1.0 + +import "controls" + +ElDialog { + id: rootItem + + title: qsTr('Proxy settings') + + parent: Overlay.overlay + modal: true + standardButtons: Dialog.Close + + width: parent.width + height: parent.height + + Overlay.modal: Rectangle { + color: "#aa000000" + } + + ColumnLayout { + id: layout + width: parent.width + + ProxyConfig { + id: proxyconfig + } + + RowLayout { + Layout.alignment: Qt.AlignHCenter + Button { + text: qsTr('Ok') + onClicked: { + var proxy = proxyconfig.toProxyDict() + if (proxy && proxy['enabled'] == true) { + Network.proxy = proxy + } else { + Network.proxy = {'enabled': false} + } + rootItem.close() + } + } + } + } + + Component.onCompleted: { + var p = Network.proxy + console.log(JSON.stringify(p)) + + if ('mode' in p) { + proxyconfig.proxy_enabled = true + proxyconfig.proxy_address = p['host'] + proxyconfig.proxy_port = p['port'] + proxyconfig.username = p['user'] + proxyconfig.password = p['password'] + if (p['mode'] == 'socks5' && p['port'] == 9050) + p['mode'] = 'tor' + proxyconfig.proxy_type = proxyconfig.proxy_types.indexOf(p['mode'].toUpperCase()) + console.log('proxy type: ' + proxyconfig.proxy_type) + } else { + proxyconfig.proxy_enabled = false + } + } +} diff --git a/electrum/gui/qml/components/ServerConfigDialog.qml b/electrum/gui/qml/components/ServerConfigDialog.qml new file mode 100644 index 000000000..02749085f --- /dev/null +++ b/electrum/gui/qml/components/ServerConfigDialog.qml @@ -0,0 +1,53 @@ +import QtQuick 2.6 +import QtQuick.Layouts 1.0 +import QtQuick.Controls 2.14 +import QtQuick.Controls.Material 2.0 + +import org.electrum 1.0 + +import "controls" + +ElDialog { + id: rootItem + + title: qsTr('Server settings') + + parent: Overlay.overlay + modal: true + standardButtons: Dialog.Close + + width: parent.width + height: parent.height + + Overlay.modal: Rectangle { + color: "#aa000000" + } + + ColumnLayout { + id: layout + width: parent.width + + ServerConfig { + id: serverconfig + } + + RowLayout { + Layout.alignment: Qt.AlignHCenter + Button { + text: qsTr('Ok') + onClicked: { + Config.autoConnect = serverconfig.auto_server + if (!serverconfig.auto_server) { + Network.server = serverconfig.address + } + rootItem.close() + } + } + } + } + + Component.onCompleted: { + serverconfig.auto_server = Config.autoConnect + serverconfig.address = Network.server + } +}