From df6c5f414faa2668c6ea969d6209b9f92c32d526 Mon Sep 17 00:00:00 2001 From: Dominik Wenger Date: Wed, 23 Jan 2008 21:54:40 +0000 Subject: rbutil: introduce a util function to get the systemproxy, for better reuse. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16150 a1c6a512-1295-4272-9138-f99709370657 --- rbutil/rbutilqt/configure.cpp | 35 +++------------------------------- rbutil/rbutilqt/rbutilqt.cpp | 32 +++---------------------------- rbutil/rbutilqt/utils.cpp | 44 +++++++++++++++++++++++++++++++++++++++++++ rbutil/rbutilqt/utils.h | 3 +++ 4 files changed, 53 insertions(+), 61 deletions(-) diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp index e74dc6e30d..c155cd230c 100644 --- a/rbutil/rbutilqt/configure.cpp +++ b/rbutil/rbutilqt/configure.cpp @@ -25,6 +25,7 @@ #include "browsedirtree.h" #include "encoders.h" #include "tts.h" +#include "utils.h" #include #if defined(Q_OS_WIN32) @@ -384,40 +385,10 @@ void Config::setSystemProxy(bool checked) proxy.setHost(ui.proxyHost->text()); proxy.setPort(ui.proxyPort->text().toInt()); // show system values in input box - QUrl envproxy; -#if defined(Q_OS_LINUX) - envproxy = QUrl(getenv("http_proxy")); + QUrl envproxy = systemProxy(); 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); - if(ret != ERROR_SUCCESS) return; - - 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; - if(enable != 0) { - ui.proxyHost->setText(envproxy.host()); - } - else { - ui.proxyHost->setText(envproxy.host() + " " + tr("(system proxy is disabled)")); - } -#endif + 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 bbba56e2e8..bec87c79b2 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp @@ -969,36 +969,10 @@ QUrl RbUtilQt::proxy() { if(userSettings->value("proxytype", "system").toString() == "manual") return QUrl(userSettings->value("proxy").toString()); -#if defined(Q_OS_LINUX) else if(userSettings->value("proxytype", "system").toString() == "system") - return QUrl(getenv("http_proxy")); -#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); - if(ret != ERROR_SUCCESS) return QUrl(""); - - 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) << QString("%1").arg(enable); - if(enable != 0) - return QUrl("http://" + QString::fromWCharArray(proxyval)); - -#endif + { + systemProxy(); + } return QUrl(""); } diff --git a/rbutil/rbutilqt/utils.cpp b/rbutil/rbutilqt/utils.cpp index 7458223e73..529298530e 100644 --- a/rbutil/rbutilqt/utils.cpp +++ b/rbutil/rbutilqt/utils.cpp @@ -21,6 +21,14 @@ #include +#if defined(Q_OS_WIN32) +#if defined(UNICODE) +#define _UNICODE +#endif +#include +#include +#endif + // recursive function to delete a dir with files bool recRmdir( const QString &dirName ) { @@ -42,3 +50,39 @@ bool recRmdir( const QString &dirName ) dir.cdUp(); return dir.rmdir(dirN); // delete empty dir and return if (now empty) dir-removing was successfull } + + +//Function to get the system proxy +QUrl systemProxy(void) +{ +#if defined(Q_OS_LINUX) + return QUrl(getenv("http_proxy")); +#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); + if(ret != ERROR_SUCCESS) return QUrl(""); + + 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) << QString("%1").arg(enable); + if(enable != 0) + return QUrl("http://" + QString::fromWCharArray(proxyval)); + else + return QUrl(""); +#endif +} diff --git a/rbutil/rbutilqt/utils.h b/rbutil/rbutilqt/utils.h index 2c2ae97079..c7dbf58f76 100644 --- a/rbutil/rbutilqt/utils.h +++ b/rbutil/rbutilqt/utils.h @@ -22,8 +22,11 @@ #define UTILS_H #include +#include bool recRmdir( const QString &dirName ); +QUrl systemProxy(void); + #endif -- cgit v1.2.3