From 4bf83ee2db6c69d9388ed1ab0d9146fe5ae4e962 Mon Sep 17 00:00:00 2001 From: gregor herrmann Date: Fri, 6 Oct 2017 21:34:23 +0200 Subject: [PATCH] Settings (dialog): add username/password options for proxy server Cf. #59 --- src/app/appsettings.cpp | 22 ++++++++++++++++++++++ src/app/appsettings.h | 4 ++++ src/gui/mainwindow.cpp | 11 ++++------- src/gui/settingsdialog.cpp | 4 ++++ src/gui/settingsdialog.ui | 29 +++++++++++++++++++++++++++++ 5 files changed, 63 insertions(+), 7 deletions(-) diff --git a/src/app/appsettings.cpp b/src/app/appsettings.cpp index f220969..f92c17e 100644 --- a/src/app/appsettings.cpp +++ b/src/app/appsettings.cpp @@ -22,6 +22,8 @@ const QString PROXY_ADDRESS_SETTING ("proxyAddress"); const QString PROXY_PORT_SETTING ("proxyPort"); const QString PROXY_TYPE_SETTING ("proxyType"); +const QString PROXY_USERNAME_SETTING ("proxyUsername"); +const QString PROXY_PASSWORD_SETTING ("proxyPassword"); const QString PROXY_ISDIRECT_SETTING ("proxyIsDirectConnection"); QSettings AppSettings::mSettings("Toastfreeware", "ConfClerk"); @@ -44,6 +46,16 @@ QNetworkProxy::ProxyType AppSettings::proxyType() return QNetworkProxy::ProxyType(proxyType); } +QString AppSettings::proxyUsername() +{ + return mSettings.value(PROXY_USERNAME_SETTING).toString(); +} + +QString AppSettings::proxyPassword() +{ + return mSettings.value(PROXY_PASSWORD_SETTING).toString(); +} + bool AppSettings::isDirectConnection() { return mSettings.value(PROXY_ISDIRECT_SETTING).toBool(); @@ -64,6 +76,16 @@ void AppSettings::setProxyType(QNetworkProxy::ProxyType aProxyType) mSettings.setValue(PROXY_TYPE_SETTING, aProxyType); } +void AppSettings::setProxyUsername(const QString &aUsername) +{ + mSettings.setValue(PROXY_USERNAME_SETTING, aUsername); +} + +void AppSettings::setProxyPassword(const QString &aPassword) +{ + mSettings.setValue(PROXY_PASSWORD_SETTING, aPassword); +} + void AppSettings::setDirectConnection(bool aDirectConnection) { mSettings.setValue(PROXY_ISDIRECT_SETTING, aDirectConnection); diff --git a/src/app/appsettings.h b/src/app/appsettings.h index 1b5a16b..f116f18 100644 --- a/src/app/appsettings.h +++ b/src/app/appsettings.h @@ -37,11 +37,15 @@ class AppSettings static QString proxyAddress(); static quint16 proxyPort(); static QNetworkProxy::ProxyType proxyType(); + static QString proxyUsername(); + static QString proxyPassword(); static bool isDirectConnection(); static void setProxyAddress(const QString &aAddress); static void setProxyPort(const quint16 aPort); static void setProxyType(QNetworkProxy::ProxyType aProxyType); + static void setProxyUsername(const QString &aUsername); + static void setProxyPassword(const QString &aPassword); static void setDirectConnection(bool aDirectConnection); static int preEventAlarmSec() {return 60*15;} ///< seconds that alarm should ring before an event starts }; diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index dbbcb2f..9181343 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -49,9 +49,6 @@ #include "tabcontainer.h" #include "appsettings.h" -const QString PROXY_USERNAME; -const QString PROXY_PASSWD; - MainWindow::MainWindow(QWidget* parent): QMainWindow(parent) { setupUi(this); @@ -85,8 +82,8 @@ MainWindow::MainWindow(QWidget* parent): QMainWindow(parent) { AppSettings::isDirectConnection() ? QNetworkProxy::NoProxy : (QNetworkProxy::ProxyType)AppSettings::proxyType(), AppSettings::proxyAddress(), AppSettings::proxyPort(), - PROXY_USERNAME, - PROXY_PASSWD); + AppSettings::proxyUsername(), + AppSettings::proxyPassword()); QNetworkProxy::setApplicationProxy(proxy); // event details have changed @@ -366,8 +363,8 @@ void MainWindow::on_settingsAction_triggered() AppSettings::isDirectConnection() ? QNetworkProxy::NoProxy : (QNetworkProxy::ProxyType)AppSettings::proxyType(), AppSettings::proxyAddress(), AppSettings::proxyPort(), - PROXY_USERNAME, - PROXY_PASSWD); + AppSettings::proxyUsername(), + AppSettings::proxyPassword()); QNetworkProxy::setApplicationProxy(proxy); } } diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index f00ce94..0262d91 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -38,6 +38,8 @@ void SettingsDialog::loadDialogData() const QNetworkProxy::ProxyType proxyType = AppSettings::proxyType(); proxyTypeHTTP->setChecked(proxyType != QNetworkProxy::Socks5Proxy); // we enable QNetworkProxy::HttpProxy by default unless we have QNetworkProxy::Socks5Proxy proxyTypeSOCKS5->setChecked(proxyType == QNetworkProxy::Socks5Proxy); + username->setText(AppSettings::proxyUsername()); + password->setText(AppSettings::proxyPassword()); directConnection->setChecked(AppSettings::isDirectConnection()); proxyWidget->setDisabled(directConnection->isChecked()); } @@ -49,6 +51,8 @@ void SettingsDialog::saveDialogData() AppSettings::setProxyAddress(address->text()); AppSettings::setProxyPort(port->value()); AppSettings::setProxyType(proxyTypeHTTP->isChecked() ? QNetworkProxy::HttpProxy : proxyTypeSOCKS5->isChecked() ? QNetworkProxy::Socks5Proxy : QNetworkProxy::DefaultProxy); + AppSettings::setProxyUsername(username->text()); + AppSettings::setProxyPassword(password->text()); AppSettings::setDirectConnection(directConnection->isChecked()); } diff --git a/src/gui/settingsdialog.ui b/src/gui/settingsdialog.ui index 579ffd6..7fa6da6 100644 --- a/src/gui/settingsdialog.ui +++ b/src/gui/settingsdialog.ui @@ -107,6 +107,35 @@ + + + + + + Optional: Username: + + + + + + + + + + + Password: + + + + + + + QLineEdit::Password + + + + + -- 2.39.5