diff --git a/ChangeLog b/ChangeLog index c37694482..3ed7735c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -82,6 +82,7 @@ local mode. 52. If cantata-dynamic is started in server mode, then have it create any missing folders. +53. Simpler proxy settings. 1.0.3 ----- diff --git a/network/networkproxyfactory.cpp b/network/networkproxyfactory.cpp index a9f405d20..d77d07e74 100644 --- a/network/networkproxyfactory.cpp +++ b/network/networkproxyfactory.cpp @@ -33,7 +33,6 @@ NetworkProxyFactory::NetworkProxyFactory() : mode(Mode_System) , type(QNetworkProxy::HttpProxy) , port(8080) - , useAuthentication(false) { #ifdef Q_OS_LINUX // Linux uses environment variables to pass proxy configuration information, @@ -79,7 +78,6 @@ void NetworkProxyFactory::reloadSettings() type = QNetworkProxy::ProxyType(s.value("type", QNetworkProxy::HttpProxy).toInt()); hostname = s.value("hostname").toString(); port = s.value("port", 8080).toInt(); - useAuthentication = s.value("use_authentication", false).toBool(); username = s.value("username").toString(); password = s.value("password").toString(); } @@ -114,8 +112,10 @@ QList NetworkProxyFactory::queryProxy(const QNetworkProxyQuery& q ret.setType(type); ret.setHostName(hostname); ret.setPort(port); - if (useAuthentication) { + if (!username.isEmpty()) { ret.setUser(username); + } + if (!password.isEmpty()) { ret.setPassword(password); } break; diff --git a/network/networkproxyfactory.h b/network/networkproxyfactory.h index 02d99507d..9a3ce420a 100644 --- a/network/networkproxyfactory.h +++ b/network/networkproxyfactory.h @@ -54,7 +54,6 @@ private: QNetworkProxy::ProxyType type; QString hostname; int port; - bool useAuthentication; QString username; QString password; #ifdef Q_OS_LINUX diff --git a/network/proxysettings.cpp b/network/proxysettings.cpp index c5fdd634c..b1e2f378d 100644 --- a/network/proxysettings.cpp +++ b/network/proxysettings.cpp @@ -23,12 +23,17 @@ #include "proxysettings.h" #include "networkproxyfactory.h" +#include "localize.h" #include ProxySettings::ProxySettings(QWidget *parent) : QWidget(parent) { setupUi(this); + proxyMode->addItem(i18n("No proxy"), (int)NetworkProxyFactory::Mode_Direct); + proxyMode->addItem(i18n("Use the system proxy settings"), (int)NetworkProxyFactory::Mode_System); + proxyMode->addItem(i18n("Manual proxy configuration"), (int)NetworkProxyFactory::Mode_Manual); + connect(proxyMode, SIGNAL(currentIndexChanged(int)), SLOT(toggleMode())); } ProxySettings::~ProxySettings() @@ -41,16 +46,20 @@ void ProxySettings::load() s.beginGroup(NetworkProxyFactory::constSettingsGroup); int mode=s.value("mode", NetworkProxyFactory::Mode_System).toInt(); - proxySystem->setChecked(NetworkProxyFactory::Mode_System==mode); - proxyDirect->setChecked(NetworkProxyFactory::Mode_Direct==mode); - proxyManual->setChecked(NetworkProxyFactory::Mode_Manual==mode); + for (int i=0; icount(); ++i) { + if (proxyMode->itemData(i).toInt()==mode) { + proxyMode->setCurrentIndex(i); + break; + } + } + proxyType->setCurrentIndex(QNetworkProxy::HttpProxy==s.value("type", QNetworkProxy::HttpProxy).toInt() ? 0 : 1); proxyHost->setText(s.value("hostname").toString()); proxyPort->setValue(s.value("port", 8080).toInt()); - proxyAuth->setChecked(s.value("use_authentication", false).toBool()); proxyUsername->setText(s.value("username").toString()); proxyPassword->setText(s.value("password").toString()); s.endGroup(); + toggleMode(); } void ProxySettings::save() @@ -58,17 +67,27 @@ void ProxySettings::save() QSettings s; s.beginGroup(NetworkProxyFactory::constSettingsGroup); - s.setValue("mode", proxySystem->isChecked() - ? NetworkProxyFactory::Mode_System - : proxyDirect->isChecked() - ? NetworkProxyFactory::Mode_Direct - : NetworkProxyFactory::Mode_Manual); + s.setValue("mode", proxyMode->itemData(proxyMode->currentIndex()).toInt()); s.setValue("type", 0==proxyType->currentIndex() ? QNetworkProxy::HttpProxy : QNetworkProxy::Socks5Proxy); s.setValue("hostname", proxyHost->text()); s.setValue("port", proxyPort->value()); - s.setValue("use_authentication", proxyAuth->isChecked()); s.setValue("username", proxyUsername->text()); s.setValue("password", proxyPassword->text()); s.endGroup(); NetworkProxyFactory::self()->reloadSettings(); } + +void ProxySettings::toggleMode() +{ + bool showManual=NetworkProxyFactory::Mode_Manual==proxyMode->itemData(proxyMode->currentIndex()).toInt(); + proxyType->setVisible(showManual); + proxyTypeLabel->setVisible(showManual); + proxyHost->setVisible(showManual); + proxyHostLabel->setVisible(showManual); + proxyPort->setVisible(showManual); + proxyPortLabel->setVisible(showManual); + proxyUsername->setVisible(showManual); + proxyUsernameLabel->setVisible(showManual); + proxyPassword->setVisible(showManual); + proxyPasswordLabel->setVisible(showManual); +} diff --git a/network/proxysettings.h b/network/proxysettings.h index d029a789e..e07fa5a79 100644 --- a/network/proxysettings.h +++ b/network/proxysettings.h @@ -37,6 +37,9 @@ public: void load(); void save(); + +private Q_SLOTS: + void toggleMode(); }; #endif diff --git a/network/proxysettings.ui b/network/proxysettings.ui index def724550..08879d434 100644 --- a/network/proxysettings.ui +++ b/network/proxysettings.ui @@ -6,161 +6,119 @@ 0 0 - 360 - 204 + 374 + 207 - + + + 0 + 0 + + + 0 - - + + - Use the system proxy settings + Mode: - - true + + proxyMode - - + + + + + - Direct internet connection + Type: + + + proxyType - - - - Manual proxy configuration - - - - - - - false - - - - 24 + + + + + HTTP Proxy - - - - - - - HTTP Proxy - - - - - SOCKS Proxy - - - - - - - - - - - Port - - - - - - - 65535 - - - 8080 - - - - - - - - - false - - - Use authentication - - - true - - - false - - - - - - false - - - Username: - - - proxyUsername - - - - - - - false - - - - - - - false - - - Password: - - - proxyPassword - - - - - - - false - - - QLineEdit::Password - - - - - - - + + + + SOCKS Proxy + + - - - - Qt::Vertical + + + + Host: - - - 20 - 2 - + + proxyHost - + + + + + + + + + Port: + + + proxyPort + + + + + + + 65535 + + + 8080 + + + + + + + Username: + + + proxyUsername + + + + + + + + + + Password: + + + proxyPassword + + + + + + + QLineEdit::Password + + @@ -182,102 +140,5 @@ - - - proxyManual - toggled(bool) - proxy_manual_container - setEnabled(bool) - - - 35 - 61 - - - 10 - 91 - - - - - proxyAuth - toggled(bool) - proxyUsername - setEnabled(bool) - - - 129 - 120 - - - 125 - 148 - - - - - proxyAuth - toggled(bool) - proxyPassword - setEnabled(bool) - - - 142 - 125 - - - 176 - 179 - - - - - proxyAuth - toggled(bool) - label_16 - setEnabled(bool) - - - 204 - 123 - - - 63 - 144 - - - - - proxyAuth - toggled(bool) - label_17 - setEnabled(bool) - - - 230 - 123 - - - 83 - 181 - - - - - proxyManual - toggled(bool) - proxyAuth - setEnabled(bool) - - - 50 - 60 - - - 102 - 118 - - - - +