From 0fcaadae530167df5be37712f2a0972618c6fbc5 Mon Sep 17 00:00:00 2001 From: selsta Date: Sat, 29 Aug 2020 23:21:32 +0200 Subject: [PATCH] main: command line option for socks5 proxy --- main.qml | 7 ++++--- pages/settings/SettingsLayout.qml | 8 +++++--- src/main/main.cpp | 4 ++++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/main.qml b/main.qml index 9e8e1a84..1acab8f2 100644 --- a/main.qml +++ b/main.qml @@ -1423,13 +1423,14 @@ ApplicationWindow { property string proxyAddress: "127.0.0.1:9050" property bool proxyEnabled: false function getProxyAddress() { - if (!proxyEnabled) { + if ((socksProxyFlagSet && socksProxyFlag == "") || !proxyEnabled) { return ""; } - if (proxyAddress == "") { + var proxyAddressSetOrForced = socksProxyFlagSet ? socksProxyFlag : proxyAddress; + if (proxyAddressSetOrForced == "") { return "127.0.0.1:0"; } - return proxyAddress; + return proxyAddressSetOrForced; } function getWalletProxyAddress() { if (!useRemoteNode) { diff --git a/pages/settings/SettingsLayout.qml b/pages/settings/SettingsLayout.qml index f65b3747..9db3874f 100644 --- a/pages/settings/SettingsLayout.qml +++ b/pages/settings/SettingsLayout.qml @@ -254,7 +254,8 @@ Rectangle { MoneroComponents.CheckBox { id: proxyCheckbox Layout.topMargin: 6 - checked: persistentSettings.proxyEnabled + enabled: !socksProxyFlagSet + checked: socksProxyFlagSet ? socksProxyFlag : persistentSettings.proxyEnabled onClicked: { persistentSettings.proxyEnabled = !persistentSettings.proxyEnabled; } @@ -265,16 +266,17 @@ Rectangle { MoneroComponents.RemoteNodeEdit { id: proxyEdit + enabled: proxyCheckbox.enabled Layout.leftMargin: 36 Layout.topMargin: 6 Layout.minimumWidth: 100 placeholderFontSize: 15 - visible: persistentSettings.proxyEnabled + visible: proxyCheckbox.checked daemonAddrLabelText: qsTr("IP address") + translationManager.emptyString daemonPortLabelText: qsTr("Port") + translationManager.emptyString - initialAddress: persistentSettings.proxyAddress + initialAddress: socksProxyFlagSet ? socksProxyFlag : persistentSettings.proxyAddress onEditingFinished: { persistentSettings.proxyAddress = proxyEdit.getAddress(); } diff --git a/src/main/main.cpp b/src/main/main.cpp index 25cb5296..a738c78a 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -256,6 +256,8 @@ Verify update binary using 'shasum'-compatible (SHA256 algo) output signed by tw QCommandLineOption disableCheckUpdatesOption("disable-check-updates", "Disable automatic check for updates."); parser.addOption(disableCheckUpdatesOption); + QCommandLineOption socksProxyOption("socks5-proxy", "Enable socks5 proxy. Used for remote node connection (advanced mode), updates downloading and fetching price sources.", "address:port"); + parser.addOption(socksProxyOption); QCommandLineOption testQmlOption("test-qml"); testQmlOption.setFlags(QCommandLineOption::HiddenFromHelp); parser.addOption(logPathOption); @@ -483,6 +485,8 @@ Verify update binary using 'shasum'-compatible (SHA256 algo) output signed by tw engine.rootContext()->setContextProperty("applicationDirectory", QApplication::applicationDirPath()); engine.rootContext()->setContextProperty("idealThreadCount", QThread::idealThreadCount()); engine.rootContext()->setContextProperty("disableCheckUpdatesFlag", parser.isSet(disableCheckUpdatesOption)); + engine.rootContext()->setContextProperty("socksProxyFlag", parser.value(socksProxyOption)); + engine.rootContext()->setContextProperty("socksProxyFlagSet", parser.isSet(socksProxyOption)); bool builtWithScanner = false; #ifdef WITH_SCANNER