summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2008-01-23 21:54:40 +0000
committerDominik Wenger <domonoky@googlemail.com>2008-01-23 21:54:40 +0000
commitdf6c5f414faa2668c6ea969d6209b9f92c32d526 (patch)
tree82fd286c2d120a88bc2b935daee18d29611d593e
parent9759c035f40e67015762effc9a0a0a29b45e3bf2 (diff)
downloadrockbox-df6c5f414faa2668c6ea969d6209b9f92c32d526.tar.gz
rockbox-df6c5f414faa2668c6ea969d6209b9f92c32d526.zip
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
-rw-r--r--rbutil/rbutilqt/configure.cpp35
-rw-r--r--rbutil/rbutilqt/rbutilqt.cpp32
-rw-r--r--rbutil/rbutilqt/utils.cpp44
-rw-r--r--rbutil/rbutilqt/utils.h3
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 @@
25#include "browsedirtree.h" 25#include "browsedirtree.h"
26#include "encoders.h" 26#include "encoders.h"
27#include "tts.h" 27#include "tts.h"
28#include "utils.h"
28 29
29#include <stdio.h> 30#include <stdio.h>
30#if defined(Q_OS_WIN32) 31#if defined(Q_OS_WIN32)
@@ -384,40 +385,10 @@ void Config::setSystemProxy(bool checked)
384 proxy.setHost(ui.proxyHost->text()); 385 proxy.setHost(ui.proxyHost->text());
385 proxy.setPort(ui.proxyPort->text().toInt()); 386 proxy.setPort(ui.proxyPort->text().toInt());
386 // show system values in input box 387 // show system values in input box
387 QUrl envproxy; 388 QUrl envproxy = systemProxy();
388#if defined(Q_OS_LINUX)
389 envproxy = QUrl(getenv("http_proxy"));
390 389
391 ui.proxyHost->setText(envproxy.host()); 390 ui.proxyHost->setText(envproxy.host());
392#endif 391
393#if defined(Q_OS_WIN32)
394 HKEY hk;
395 wchar_t proxyval[80];
396 DWORD buflen = 80;
397 long ret;
398 DWORD enable;
399 DWORD enalen = sizeof(DWORD);
400
401 ret = RegOpenKeyEx(HKEY_CURRENT_USER, _TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"),
402 0, KEY_QUERY_VALUE, &hk);
403 if(ret != ERROR_SUCCESS) return;
404
405 ret = RegQueryValueEx(hk, _TEXT("ProxyServer"), NULL, NULL, (LPBYTE)proxyval, &buflen);
406 if(ret != ERROR_SUCCESS) return;
407
408 ret = RegQueryValueEx(hk, _TEXT("ProxyEnable"), NULL, NULL, (LPBYTE)&enable, &enalen);
409 if(ret != ERROR_SUCCESS) return;
410
411 RegCloseKey(hk);
412 envproxy = QUrl("http://" + QString::fromWCharArray(proxyval));
413 qDebug() << envproxy;
414 if(enable != 0) {
415 ui.proxyHost->setText(envproxy.host());
416 }
417 else {
418 ui.proxyHost->setText(envproxy.host() + " " + tr("(system proxy is disabled)"));
419 }
420#endif
421 ui.proxyPort->setText(QString("%1").arg(envproxy.port())); 392 ui.proxyPort->setText(QString("%1").arg(envproxy.port()));
422 ui.proxyUser->setText(envproxy.userName()); 393 ui.proxyUser->setText(envproxy.userName());
423 ui.proxyPass->setText(envproxy.password()); 394 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()
969{ 969{
970 if(userSettings->value("proxytype", "system").toString() == "manual") 970 if(userSettings->value("proxytype", "system").toString() == "manual")
971 return QUrl(userSettings->value("proxy").toString()); 971 return QUrl(userSettings->value("proxy").toString());
972#if defined(Q_OS_LINUX)
973 else if(userSettings->value("proxytype", "system").toString() == "system") 972 else if(userSettings->value("proxytype", "system").toString() == "system")
974 return QUrl(getenv("http_proxy")); 973 {
975#endif 974 systemProxy();
976#if defined(Q_OS_WIN32) 975 }
977 HKEY hk;
978 wchar_t proxyval[80];
979 DWORD buflen = 80;
980 long ret;
981 DWORD enable;
982 DWORD enalen = sizeof(DWORD);
983
984 ret = RegOpenKeyEx(HKEY_CURRENT_USER,
985 _TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"),
986 0, KEY_QUERY_VALUE, &hk);
987 if(ret != ERROR_SUCCESS) return QUrl("");
988
989 ret = RegQueryValueEx(hk, _TEXT("ProxyServer"), NULL, NULL, (LPBYTE)proxyval, &buflen);
990 if(ret != ERROR_SUCCESS) return QUrl("");
991
992 ret = RegQueryValueEx(hk, _TEXT("ProxyEnable"), NULL, NULL, (LPBYTE)&enable, &enalen);
993 if(ret != ERROR_SUCCESS) return QUrl("");
994
995 RegCloseKey(hk);
996
997 qDebug() << QString::fromWCharArray(proxyval) << QString("%1").arg(enable);
998 if(enable != 0)
999 return QUrl("http://" + QString::fromWCharArray(proxyval));
1000
1001#endif
1002 return QUrl(""); 976 return QUrl("");
1003} 977}
1004 978
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 @@
21 21
22#include <QDir> 22#include <QDir>
23 23
24#if defined(Q_OS_WIN32)
25#if defined(UNICODE)
26#define _UNICODE
27#endif
28#include <windows.h>
29#include <tchar.h>
30#endif
31
24// recursive function to delete a dir with files 32// recursive function to delete a dir with files
25bool recRmdir( const QString &dirName ) 33bool recRmdir( const QString &dirName )
26{ 34{
@@ -42,3 +50,39 @@ bool recRmdir( const QString &dirName )
42 dir.cdUp(); 50 dir.cdUp();
43 return dir.rmdir(dirN); // delete empty dir and return if (now empty) dir-removing was successfull 51 return dir.rmdir(dirN); // delete empty dir and return if (now empty) dir-removing was successfull
44} 52}
53
54
55//Function to get the system proxy
56QUrl systemProxy(void)
57{
58#if defined(Q_OS_LINUX)
59 return QUrl(getenv("http_proxy"));
60#endif
61#if defined(Q_OS_WIN32)
62 HKEY hk;
63 wchar_t proxyval[80];
64 DWORD buflen = 80;
65 long ret;
66 DWORD enable;
67 DWORD enalen = sizeof(DWORD);
68
69 ret = RegOpenKeyEx(HKEY_CURRENT_USER,
70 _TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"),
71 0, KEY_QUERY_VALUE, &hk);
72 if(ret != ERROR_SUCCESS) return QUrl("");
73
74 ret = RegQueryValueEx(hk, _TEXT("ProxyServer"), NULL, NULL, (LPBYTE)proxyval, &buflen);
75 if(ret != ERROR_SUCCESS) return QUrl("");
76
77 ret = RegQueryValueEx(hk, _TEXT("ProxyEnable"), NULL, NULL, (LPBYTE)&enable, &enalen);
78 if(ret != ERROR_SUCCESS) return QUrl("");
79
80 RegCloseKey(hk);
81
82 //qDebug() << QString::fromWCharArray(proxyval) << QString("%1").arg(enable);
83 if(enable != 0)
84 return QUrl("http://" + QString::fromWCharArray(proxyval));
85 else
86 return QUrl("");
87#endif
88}
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 @@
22#define UTILS_H 22#define UTILS_H
23 23
24#include <QString> 24#include <QString>
25#include <QUrl>
25 26
26bool recRmdir( const QString &dirName ); 27bool recRmdir( const QString &dirName );
27 28
29QUrl systemProxy(void);
30
28#endif 31#endif
29 32