# HG changeset patch # User Jacob Dawid # Date 1313534170 -7200 # Node ID fd31226d4c3a5a1b688d6a6a92a199d1196cd99b # Parent ac9ef5a29460122ad043533278b3f025ddbad9ec Proxy settings can now be configured. diff -r ac9ef5a29460 -r fd31226d4c3a gui/src/MainWindow.cpp --- a/gui/src/MainWindow.cpp Tue Aug 16 23:16:48 2011 +0200 +++ b/gui/src/MainWindow.cpp Wed Aug 17 00:36:10 2011 +0200 @@ -180,6 +180,7 @@ SettingsDialog settingsDialog (this); settingsDialog.exec (); emit settingsChanged (); + ResourceManager::instance ()->updateNetworkSettings (); } void diff -r ac9ef5a29460 -r fd31226d4c3a gui/src/OctaveGUI.cpp --- a/gui/src/OctaveGUI.cpp Tue Aug 16 23:16:48 2011 +0200 +++ b/gui/src/OctaveGUI.cpp Wed Aug 17 00:36:10 2011 +0200 @@ -39,6 +39,7 @@ translator.load (translatorFile); application.installTranslator (&translator); + ResourceManager::instance ()->updateNetworkSettings (); MainWindow w; w.show (); return application.exec (); diff -r ac9ef5a29460 -r fd31226d4c3a gui/src/ResourceManager.cpp --- a/gui/src/ResourceManager.cpp Tue Aug 16 23:16:48 2011 +0200 +++ b/gui/src/ResourceManager.cpp Wed Aug 17 00:36:10 2011 +0200 @@ -18,6 +18,7 @@ #include "ResourceManager.h" #include +#include ResourceManager ResourceManager::m_singleton; @@ -63,3 +64,43 @@ // TODO: Quick hack to be able to test language files. return QString("../languages/%1.qm").arg(language); } + +void +ResourceManager::updateNetworkSettings () +{ + QNetworkProxy::ProxyType proxyType = QNetworkProxy::NoProxy; + if (m_settings->value ("useProxyServer").toBool ()) + { + QString proxyTypeString = m_settings->value ("proxyType").toString (); + if (proxyTypeString == "NoProxy") + { + proxyType = QNetworkProxy::NoProxy; + } + else if (proxyTypeString == "DefaultProxy") + { + proxyType = QNetworkProxy::DefaultProxy; + } + else if (proxyTypeString == "Socks5Proxy") + { + proxyType = QNetworkProxy::Socks5Proxy; + } + else if (proxyTypeString == "HttpProxy") + { + proxyType = QNetworkProxy::HttpProxy; + } + else if (proxyTypeString == "HttpCachingProxy") + { + proxyType = QNetworkProxy::HttpCachingProxy; + } + else if (proxyTypeString == "FtpCachingProxy") + { + proxyType = QNetworkProxy::FtpCachingProxy; + } + } + + QNetworkProxy proxy; + proxy.setType (proxyType); + proxy.setHostName (m_settings->value ("proxyHostName").toString ()); + proxy.setPort (m_settings->value ("proxyPort").toInt ()); + QNetworkProxy::setApplicationProxy (proxy); +} diff -r ac9ef5a29460 -r fd31226d4c3a gui/src/ResourceManager.h --- a/gui/src/ResourceManager.h Tue Aug 16 23:16:48 2011 +0200 +++ b/gui/src/ResourceManager.h Wed Aug 17 00:36:10 2011 +0200 @@ -37,6 +37,8 @@ QString homePath (); void setSettings (QString file); QString findTranslatorFile (QString language); + void updateNetworkSettings (); + private: ResourceManager (); diff -r ac9ef5a29460 -r fd31226d4c3a gui/src/SettingsDialog.cpp --- a/gui/src/SettingsDialog.cpp Tue Aug 16 23:16:48 2011 +0200 +++ b/gui/src/SettingsDialog.cpp Wed Aug 17 00:36:10 2011 +0200 @@ -22,6 +22,18 @@ ui->showLastModified->setChecked (settings->value ("showLastModified").toBool()); ui->showHiddenFiles->setChecked (settings->value ("showHiddenFiles").toBool()); ui->useAlternatingRowColors->setChecked (settings->value ("useAlternatingRowColors").toBool()); + ui->useProxyServer->setChecked (settings->value ("useProxyServer").toBool ()); + ui->proxyHostName->setText (settings->value ("proxyHostName").toString ()); + + int currentIndex = 0; + QString proxyTypeString = settings->value ("proxyType").toString (); + while ( (currentIndex < ui->proxyType->count ()) && (ui->proxyType->currentText () != proxyTypeString)) + { + currentIndex++; + ui->proxyType->setCurrentIndex (currentIndex); + } + + ui->proxyPort->setText (settings->value ("proxyPort").toString ()); } SettingsDialog::~SettingsDialog () @@ -40,5 +52,9 @@ settings->setValue ("showLastModified", ui->showLastModified->isChecked ()); settings->setValue ("showHiddenFiles", ui->showHiddenFiles->isChecked ()); settings->setValue ("useAlternatingRowColors", ui->useAlternatingRowColors->isChecked ()); + settings->setValue ("useProxyServer", ui->useProxyServer->isChecked ()); + settings->setValue ("proxyType", ui->proxyType->currentText ()); + settings->setValue ("proxyHostName", ui->proxyHostName->text ()); + settings->setValue ("proxyPort", ui->proxyPort->text ()); delete ui; }