aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/GpgFrontendUIInit.cpp
diff options
context:
space:
mode:
authorSaturn&Eric <[email protected]>2023-03-31 21:27:08 +0000
committerGitHub <[email protected]>2023-03-31 21:27:08 +0000
commit3cb863592a548edc074dde045493e0f83e5d694a (patch)
tree242534c257e723f49080428db22118c75706e233 /src/ui/GpgFrontendUIInit.cpp
parentMerge pull request #91 from saturneric/dev/2.0.10/main (diff)
parentfeat: add project security document (diff)
downloadGpgFrontend-2.1.0.tar.gz
GpgFrontend-2.1.0.zip
Merge pull request #93 from saturneric/dev/2.0.10/mainv2.1.0
Develop 2.1.0.2
Diffstat (limited to 'src/ui/GpgFrontendUIInit.cpp')
-rw-r--r--src/ui/GpgFrontendUIInit.cpp61
1 files changed, 59 insertions, 2 deletions
diff --git a/src/ui/GpgFrontendUIInit.cpp b/src/ui/GpgFrontendUIInit.cpp
index 6e41f81f..b90493a5 100644
--- a/src/ui/GpgFrontendUIInit.cpp
+++ b/src/ui/GpgFrontendUIInit.cpp
@@ -71,6 +71,63 @@ void InitGpgFrontendUI(QApplication* app) {
// init common utils
CommonUtils::GetInstance();
+ // application proxy configure
+
+ auto& settings = GlobalSettingStation::GetInstance().GetUISettings();
+ bool proxy_enable = false;
+ try {
+ proxy_enable = settings.lookup("proxy.enable");
+ } catch (...) {
+ SPDLOG_ERROR("setting operation error: proxy_enable");
+ }
+ SPDLOG_DEBUG("loading proxy configure, proxy_enable: {}", proxy_enable);
+
+ // if enable proxy for application
+ if (proxy_enable) {
+ try {
+ std::string proxy_type = settings.lookup("proxy.proxy_type");
+ std::string proxy_host = settings.lookup("proxy.proxy_host");
+ int proxy_port = settings.lookup("proxy.port");
+ std::string proxy_username = settings.lookup("proxy.username");
+ std::string proxy_password = settings.lookup("proxy.password");
+
+ SPDLOG_DEBUG("proxy settings: type {}, host {}, port: {}", proxy_type,
+ proxy_host, proxy_port);
+
+ QNetworkProxy::ProxyType proxy_type_qt = QNetworkProxy::NoProxy;
+ if (proxy_type == "HTTP") {
+ proxy_type_qt = QNetworkProxy::HttpProxy;
+ } else if (proxy_type == "Socks5") {
+ proxy_type_qt = QNetworkProxy::Socks5Proxy;
+ } else {
+ proxy_type_qt = QNetworkProxy::DefaultProxy;
+ }
+
+ // create proxy object and apply settings
+ QNetworkProxy proxy;
+ if (proxy_type_qt != QNetworkProxy::DefaultProxy) {
+ proxy.setType(proxy_type_qt);
+ proxy.setHostName(QString::fromStdString(proxy_host));
+ proxy.setPort(proxy_port);
+ if (!proxy_username.empty())
+ proxy.setUser(QString::fromStdString(proxy_username));
+ if (!proxy_password.empty())
+ proxy.setPassword(QString::fromStdString(proxy_password));
+ } else {
+ proxy.setType(proxy_type_qt);
+ }
+ QNetworkProxy::setApplicationProxy(proxy);
+
+ } catch (...) {
+ SPDLOG_ERROR("setting operation error: proxy setings");
+ // no proxy by default
+ QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy);
+ }
+ } else {
+ // no proxy by default
+ QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy);
+ }
+
// create the thread to load the gpg context
auto* init_ctx_task = new Thread::CtxCheckTask();
@@ -213,7 +270,7 @@ void init_locale() {
#ifndef WINDOWS
if (!lang.empty()) {
- std::string lc = lang.empty() ? "" : lang + ".UTF-8";
+ std::string lc = lang + ".UTF-8";
// set LC_ALL
auto* locale_name = setlocale(LC_ALL, lc.c_str());
@@ -229,7 +286,7 @@ void init_locale() {
}
#else
if (!lang.empty()) {
- std::string lc = lang.empty() ? "" : lang;
+ std::string lc = lang;
// set LC_ALL
auto* locale_name = setlocale(LC_ALL, lc.c_str());