linux: respect http_proxy value for "system" proxy settings.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14062 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2007-07-29 18:41:15 +00:00
parent 82373b246e
commit d77a7eaaac
4 changed files with 90 additions and 26 deletions

View file

@ -22,6 +22,10 @@
#include "configure.h" #include "configure.h"
#include "ui_configurefrm.h" #include "ui_configurefrm.h"
#ifdef __linux
#include <stdio.h>
#endif
#define DEFAULT_LANG "English (builtin)" #define DEFAULT_LANG "English (builtin)"
Config::Config(QWidget *parent) : QDialog(parent) Config::Config(QWidget *parent) : QDialog(parent)
@ -33,9 +37,9 @@ Config::Config(QWidget *parent) : QDialog(parent)
QRegExp validate("[0-9]*"); QRegExp validate("[0-9]*");
proxyValidator->setRegExp(validate); proxyValidator->setRegExp(validate);
ui.proxyPort->setValidator(proxyValidator); ui.proxyPort->setValidator(proxyValidator);
#ifndef __linux
ui.radioSystemProxy->setEnabled(false); // not implemented yet ui.radioSystemProxy->setEnabled(false); // only on linux for now
#endif
// build language list and sort alphabetically // build language list and sort alphabetically
QStringList langs = findLanguageFiles(); QStringList langs = findLanguageFiles();
for(int i = 0; i < langs.size(); ++i) for(int i = 0; i < langs.size(); ++i)
@ -52,6 +56,7 @@ Config::Config(QWidget *parent) : QDialog(parent)
connect(ui.buttonOk, SIGNAL(clicked()), this, SLOT(accept())); connect(ui.buttonOk, SIGNAL(clicked()), this, SLOT(accept()));
connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(abort())); connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(abort()));
connect(ui.radioNoProxy, SIGNAL(toggled(bool)), this, SLOT(setNoProxy(bool))); connect(ui.radioNoProxy, SIGNAL(toggled(bool)), this, SLOT(setNoProxy(bool)));
connect(ui.radioSystemProxy, SIGNAL(toggled(bool)), this, SLOT(setSystemProxy(bool)));
} }
@ -59,13 +64,13 @@ void Config::accept()
{ {
qDebug() << "Config::accept()"; qDebug() << "Config::accept()";
// proxy: save entered proxy values, not displayed. // proxy: save entered proxy values, not displayed.
QUrl proxy; if(ui.radioManualProxy->isChecked()) {
proxy.setScheme("http"); proxy.setScheme("http");
proxy.setUserName(ui.proxyUser->text()); proxy.setUserName(ui.proxyUser->text());
proxy.setPassword(ui.proxyPass->text()); proxy.setPassword(ui.proxyPass->text());
proxy.setHost(ui.proxyHost->text()); proxy.setHost(ui.proxyHost->text());
proxy.setPort(ui.proxyPort->text().toInt()); proxy.setPort(ui.proxyPort->text().toInt());
}
userSettings->setValue("defaults/proxy", proxy.toString()); userSettings->setValue("defaults/proxy", proxy.toString());
qDebug() << "new proxy:" << proxy; qDebug() << "new proxy:" << proxy;
// proxy type // proxy type
@ -141,6 +146,39 @@ void Config::setNoProxy(bool checked)
} }
void Config::setSystemProxy(bool checked)
{
bool i = !checked;
ui.proxyPort->setEnabled(i);
ui.proxyHost->setEnabled(i);
ui.proxyUser->setEnabled(i);
ui.proxyPass->setEnabled(i);
if(checked) {
// save values in input box
proxy.setScheme("http");
proxy.setUserName(ui.proxyUser->text());
proxy.setPassword(ui.proxyPass->text());
proxy.setHost(ui.proxyHost->text());
proxy.setPort(ui.proxyPort->text().toInt());
// show system values in input box
#ifdef __linux
QUrl envproxy = QUrl(getenv("http_proxy"));
ui.proxyHost->setText(envproxy.host());
ui.proxyPort->setText(QString("%1").arg(envproxy.port()));
ui.proxyUser->setText(envproxy.userName());
ui.proxyPass->setText(envproxy.password());
#endif
}
else {
ui.proxyHost->setText(proxy.host());
ui.proxyPort->setText(QString("%1").arg(proxy.port()));
ui.proxyUser->setText(proxy.userName());
ui.proxyPass->setText(proxy.password());
}
}
QStringList Config::findLanguageFiles() QStringList Config::findLanguageFiles()
{ {
QDir dir(programPath + "/"); QDir dir(programPath + "/");

View file

@ -45,9 +45,11 @@ class Config : public QDialog
QMap<QString, QString> lang; QMap<QString, QString> lang;
QString language; QString language;
QString programPath; QString programPath;
QUrl proxy;
private slots: private slots:
void setNoProxy(bool); void setNoProxy(bool);
void setSystemProxy(bool);
void updateLanguage(void); void updateLanguage(void);
}; };

View file

@ -30,6 +30,10 @@
#include "installbootloader.h" #include "installbootloader.h"
#include "installzipwindow.h" #include "installzipwindow.h"
#ifdef __linux
#include <stdio.h>
#endif
RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent) RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent)
{ {
QString programPath = qApp->arguments().at(0); QString programPath = qApp->arguments().at(0);
@ -100,6 +104,10 @@ void RbUtilQt::downloadInfo()
connect(daily, SIGNAL(requestFinished(int, bool)), this, SLOT(downloadDone(int, bool))); connect(daily, SIGNAL(requestFinished(int, bool)), this, SLOT(downloadDone(int, bool)));
if(userSettings->value("defaults/proxytype") == "manual") if(userSettings->value("defaults/proxytype") == "manual")
daily->setProxy(QUrl(userSettings->value("defaults/proxy").toString())); daily->setProxy(QUrl(userSettings->value("defaults/proxy").toString()));
#ifdef __linux
else if(userSettings->value("defaults/proxytype") == "system")
daily->setProxy(QUrl(getenv("http_proxy")));
#endif
qDebug() << "downloading build info"; qDebug() << "downloading build info";
daily->setFile(&buildInfo); daily->setFile(&buildInfo);
@ -218,6 +226,10 @@ void RbUtilQt::install()
installWindow->setDeviceSettings(devices); installWindow->setDeviceSettings(devices);
if(userSettings->value("defaults/proxytype") == "manual") if(userSettings->value("defaults/proxytype") == "manual")
installWindow->setProxy(QUrl(userSettings->value("defaults/proxy").toString())); installWindow->setProxy(QUrl(userSettings->value("defaults/proxy").toString()));
#ifdef __linux
else if(userSettings->value("defaults/proxytype") == "system")
installWindow->setProxy(QUrl(getenv("http_proxy")));
#endif
installWindow->setMountPoint(userSettings->value("defaults/mountpoint").toString()); installWindow->setMountPoint(userSettings->value("defaults/mountpoint").toString());
buildInfo.open(); buildInfo.open();
@ -243,6 +255,10 @@ void RbUtilQt::installBl()
installWindow->setDeviceSettings(devices); installWindow->setDeviceSettings(devices);
if(userSettings->value("defaults/proxytype") == "manual") if(userSettings->value("defaults/proxytype") == "manual")
installWindow->setProxy(QUrl(userSettings->value("defaults/proxy").toString())); installWindow->setProxy(QUrl(userSettings->value("defaults/proxy").toString()));
#ifdef __linux
else if(userSettings->value("defaults/proxytype") == "system")
installWindow->setProxy(QUrl(getenv("http_proxy")));
#endif
installWindow->setMountPoint(userSettings->value("defaults/mountpoint").toString()); installWindow->setMountPoint(userSettings->value("defaults/mountpoint").toString());
installWindow->show(); installWindow->show();
@ -255,6 +271,10 @@ void RbUtilQt::installFonts()
installWindow->setDeviceSettings(devices); installWindow->setDeviceSettings(devices);
if(userSettings->value("defaults/proxytype") == "manual") if(userSettings->value("defaults/proxytype") == "manual")
installWindow->setProxy(QUrl(userSettings->value("defaults/proxy").toString())); installWindow->setProxy(QUrl(userSettings->value("defaults/proxy").toString()));
#ifdef __linux
else if(userSettings->value("defaults/proxytype") == "system")
installWindow->setProxy(QUrl(getenv("http_proxy")));
#endif
installWindow->setMountPoint(userSettings->value("defaults/mountpoint").toString()); installWindow->setMountPoint(userSettings->value("defaults/mountpoint").toString());
installWindow->setLogSection("Fonts"); installWindow->setLogSection("Fonts");
installWindow->setUrl(devices->value("font_url").toString()); installWindow->setUrl(devices->value("font_url").toString());
@ -270,6 +290,10 @@ void RbUtilQt::installDoom()
installWindow->setDeviceSettings(devices); installWindow->setDeviceSettings(devices);
if(userSettings->value("defaults/proxytype") == "manual") if(userSettings->value("defaults/proxytype") == "manual")
installWindow->setProxy(QUrl(userSettings->value("defaults/proxy").toString())); installWindow->setProxy(QUrl(userSettings->value("defaults/proxy").toString()));
#ifdef __linux
else if(userSettings->value("defaults/proxytype") == "system")
installWindow->setProxy(QUrl(getenv("http_proxy")));
#endif
installWindow->setMountPoint(userSettings->value("defaults/mountpoint").toString()); installWindow->setMountPoint(userSettings->value("defaults/mountpoint").toString());
installWindow->setLogSection("Doom"); installWindow->setLogSection("Doom");
installWindow->setUrl(devices->value("doom_url").toString()); installWindow->setUrl(devices->value("doom_url").toString());