From 9e01c9647681ee0d823712a83e9da93ea4bf4f8c Mon Sep 17 00:00:00 2001 From: Zhang Dingyuan Date: Wed, 7 Dec 2022 10:52:49 +0800 Subject: [PATCH] feat: support proxy user and password --- src/controller.cpp | 4 ++++ src/neochatconfig.kcfg | 8 ++++++++ src/qml/Settings/NetworkProxyPage.qml | 21 +++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/src/controller.cpp b/src/controller.cpp index f6746ecb9..0e5ca69c8 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -743,11 +743,15 @@ void Controller::setApplicationProxy() proxy.setType(QNetworkProxy::HttpProxy); proxy.setHostName(cfg->proxyHost()); proxy.setPort(cfg->proxyPort()); + proxy.setUser(cfg->proxyUser()); + proxy.setPassword(cfg->proxyPassword()); break; case 2: // SOCKS 5 proxy.setType(QNetworkProxy::Socks5Proxy); proxy.setHostName(cfg->proxyHost()); proxy.setPort(cfg->proxyPort()); + proxy.setUser(cfg->proxyUser()); + proxy.setPassword(cfg->proxyPassword()); break; case 0: // System Default default: diff --git a/src/neochatconfig.kcfg b/src/neochatconfig.kcfg index 1d6db884a..3f6f101a6 100644 --- a/src/neochatconfig.kcfg +++ b/src/neochatconfig.kcfg @@ -133,6 +133,14 @@ 1080 + + + + + + + + diff --git a/src/qml/Settings/NetworkProxyPage.qml b/src/qml/Settings/NetworkProxyPage.qml index 7b117a038..4f7b9b691 100644 --- a/src/qml/Settings/NetworkProxyPage.qml +++ b/src/qml/Settings/NetworkProxyPage.qml @@ -93,6 +93,25 @@ Kirigami.ScrollablePage { } } } + MobileForm.FormTextFieldDelegate { + id: userField + label: i18n("User") + text: Config.proxyUser + inputMethodHints: Qt.ImhUrlCharactersOnly + onEditingFinished: { + proxyConfigChanged = true + } + } + MobileForm.FormTextFieldDelegate { + id: passwordField + label: i18n("Password") + text: Config.proxyPassword + echoMode: TextInput.Password + inputMethodHints: Qt.ImhUrlCharactersOnly + onEditingFinished: { + proxyConfigChanged = true + } + } } } } @@ -111,6 +130,8 @@ Kirigami.ScrollablePage { Config.proxyType = currentType Config.proxyHost = hostField.text Config.proxyPort = portField.value + Config.proxyUser = userField.text + Config.proxyPassword = passwordField.text Config.save() proxyConfigChanged = false Controller.setApplicationProxy()