]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/gui/importschedulewidget.cpp
implemented 'proxy settings' dialog
[toast/confclerk.git] / src / gui / importschedulewidget.cpp
index 379aa673e8bb784d2ce2e2da6ffde7d46b7ca12f..32a9c30cd3de576d6e98c170b0f8bf2079b06c66 100644 (file)
@@ -1,6 +1,7 @@
 #include "importschedulewidget.h"
 
 #include <schedulexmlparser.h>
+#include "proxysettingsdialog.h"
 
 #include <QDir>
 #include <QFile>
@@ -9,9 +10,13 @@
 #include <QNetworkAccessManager>
 #include <QNetworkReply>
 #include <QDebug>
+#include <appsettings.h>
 
 const QString SCHEDULE_URL = "http://fosdem.org/2010/schedule/xml";
 
+const QString PROXY_USERNAME;
+const QString PROXY_PASSWD;
+
 ImportScheduleWidget::ImportScheduleWidget(QWidget *aParent)
     : QWidget(aParent)
 {
@@ -28,6 +33,7 @@ ImportScheduleWidget::ImportScheduleWidget(QWidget *aParent)
     importAction->hide();
     connect(online, SIGNAL(clicked()), SLOT(downloadSchedule()));
 
+    connect(proxySettings, SIGNAL(clicked()), SLOT(setupProxy()));
     mNetworkAccessManager = new QNetworkAccessManager(this);
     connect(mNetworkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkQueryFinished(QNetworkReply*)));
     mNetworkAccessManager->setProxy(QNetworkProxy::applicationProxy());
@@ -80,8 +86,6 @@ void ImportScheduleWidget::browseSchedule()
 
 void ImportScheduleWidget::networkQueryFinished(QNetworkReply *aReply)
 {
-    qDebug() << "ImportScheduleWidget::networkQueryFinished()";
-
     if ( aReply->error() != QNetworkReply::NoError )
     {
         qDebug() << "Error occured during download: " << aReply->errorString();
@@ -94,8 +98,6 @@ void ImportScheduleWidget::networkQueryFinished(QNetworkReply *aReply)
 
 void ImportScheduleWidget::downloadSchedule()
 {
-    qDebug() << "downloading schedule";
-
     QNetworkRequest request;
     request.setUrl(QUrl(SCHEDULE_URL));
     mNetworkAccessManager->get(request);
@@ -106,14 +108,33 @@ void ImportScheduleWidget::importData(const QByteArray &aData)
     browse->hide();
     online->hide();
     progressBar->show();
+    proxySettings->hide();
 
     int confId = mXmlParser->parseData(aData);
 
     progressBar->hide();
     browse->show();
     online->show();
+    proxySettings->show();
     importScheduleLabel->setText("Import schedule: ");
 
     emit(scheduleImported(confId));
 }
 
+void ImportScheduleWidget::setupProxy()
+{
+    ProxySettingsDialog dialog;
+    dialog.exec();
+
+    qDebug() << "Setting-up proxy: " << AppSettings::proxyAddress() << ":" << AppSettings::proxyPort();
+    QNetworkProxy proxy(
+            AppSettings::isDirectConnection() ? QNetworkProxy::NoProxy : QNetworkProxy::HttpProxy,
+            AppSettings::proxyAddress(),
+            AppSettings::proxyPort(),
+            PROXY_USERNAME,
+            PROXY_PASSWD);
+    QNetworkProxy::setApplicationProxy(proxy);
+
+    mNetworkAccessManager->setProxy(QNetworkProxy::applicationProxy());
+}
+