From 9d482ebb6c21df7cc593b9860e76088987889bb5 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sun, 23 Dec 2007 10:11:51 +0000 Subject: w32: when utilizing IE values for system proxy also honor the ProxyEnable value. In the configuration dialog, display a note when system proxy is disabled. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15962 a1c6a512-1295-4272-9138-f99709370657 --- rbutil/rbutilqt/configure.cpp | 18 +++++++++++++----- rbutil/rbutilqt/rbutilqt.cpp | 11 +++++++++-- 2 files changed, 22 insertions(+), 7 deletions(-) (limited to 'rbutil/rbutilqt') diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp index 337f5bc210..993757ed5a 100644 --- a/rbutil/rbutilqt/configure.cpp +++ b/rbutil/rbutilqt/configure.cpp @@ -380,12 +380,16 @@ void Config::setSystemProxy(bool checked) QUrl envproxy; #if defined(Q_OS_LINUX) envproxy = QUrl(getenv("http_proxy")); + + ui.proxyHost->setText(envproxy.host()); #endif #if defined(Q_OS_WIN32) HKEY hk; wchar_t proxyval[80]; DWORD buflen = 80; long ret; + DWORD enable; + DWORD enalen = sizeof(DWORD); ret = RegOpenKeyEx(HKEY_CURRENT_USER, _TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"), 0, KEY_QUERY_VALUE, &hk); @@ -394,15 +398,19 @@ void Config::setSystemProxy(bool checked) ret = RegQueryValueEx(hk, _TEXT("ProxyServer"), NULL, NULL, (LPBYTE)proxyval, &buflen); if(ret != ERROR_SUCCESS) return; + ret = RegQueryValueEx(hk, _TEXT("ProxyEnable"), NULL, NULL, (LPBYTE)&enable, &enalen); + if(ret != ERROR_SUCCESS) return; + RegCloseKey(hk); envproxy = QUrl("http://" + QString::fromWCharArray(proxyval)); qDebug() << envproxy; - ui.proxyHost->setText(envproxy.host()); - ui.proxyPort->setText(QString("%1").arg(envproxy.port())); - ui.proxyUser->setText(envproxy.userName()); - ui.proxyPass->setText(envproxy.password()); + if(enable != 0) { + ui.proxyHost->setText(envproxy.host()); + } + else { + ui.proxyHost->setText(envproxy.host() + " " + tr("(system proxy is disabled)")); + } #endif - ui.proxyHost->setText(envproxy.host()); ui.proxyPort->setText(QString("%1").arg(envproxy.port())); ui.proxyUser->setText(envproxy.userName()); ui.proxyPass->setText(envproxy.password()); diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp index 62a7fee4c4..7d0a887849 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp @@ -965,6 +965,8 @@ QUrl RbUtilQt::proxy() wchar_t proxyval[80]; DWORD buflen = 80; long ret; + DWORD enable; + DWORD enalen = sizeof(DWORD); ret = RegOpenKeyEx(HKEY_CURRENT_USER, _TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"), @@ -973,10 +975,15 @@ QUrl RbUtilQt::proxy() ret = RegQueryValueEx(hk, _TEXT("ProxyServer"), NULL, NULL, (LPBYTE)proxyval, &buflen); if(ret != ERROR_SUCCESS) return QUrl(""); + + ret = RegQueryValueEx(hk, _TEXT("ProxyEnable"), NULL, NULL, (LPBYTE)&enable, &enalen); + if(ret != ERROR_SUCCESS) return QUrl(""); RegCloseKey(hk); - qDebug() << QString::fromWCharArray(proxyval); - return QUrl("http://" + QString::fromWCharArray(proxyval)); + + qDebug() << QString::fromWCharArray(proxyval) << QString("%1").arg(enable); + if(enable != 0) + return QUrl("http://" + QString::fromWCharArray(proxyval)); #endif return QUrl(""); -- cgit v1.2.3