#include <QDir>
#include <QFile>
#include <QFileDialog>
+#include <QNetworkProxy>
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
#include <QDebug>
+const QString SCHEDULE_URL = "http://fosdem.org/2010/schedule/xml";
+
ImportScheduleWidget::ImportScheduleWidget(QWidget *aParent)
: QWidget(aParent)
{
progressBar->hide();
cancel->hide();
- online->hide();
importAction->hide();
+ connect(online, SIGNAL(clicked()), SLOT(downloadSchedule()));
+
+ mNetworkAccessManager = new QNetworkAccessManager(this);
+ connect(mNetworkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkQueryFinished(QNetworkReply*)));
+ mNetworkAccessManager->setProxy(QNetworkProxy::applicationProxy());
}
ImportScheduleWidget::~ImportScheduleWidget()
delete mXmlParser;
mXmlParser = NULL;
}
+ if(mNetworkAccessManager)
+ {
+ delete mNetworkAccessManager;
+ mNetworkAccessManager = NULL;
+ }
}
void ImportScheduleWidget::parsingSchedule(const QString &aTitle)
return;
}
- QByteArray data = file.readAll();
- browse->hide();
- progressBar->show();
- int confId = mXmlParser->parseData(data);
+ importData(file.readAll());
+ }
+ else
+ {
progressBar->hide();
- browse->show();
- importScheduleLabel->setText("Import schedule: ");
+ }
+}
- emit(scheduleImported(confId));
+void ImportScheduleWidget::networkQueryFinished(QNetworkReply *aReply)
+{
+ qDebug() << "ImportScheduleWidget::networkQueryFinished()";
+
+ if ( aReply->error() != QNetworkReply::NoError )
+ {
+ qDebug() << "Error occured during download: " << aReply->errorString();
}
else
{
- progressBar->hide();
+ importData(aReply->readAll());
}
}
+void ImportScheduleWidget::downloadSchedule()
+{
+ qDebug() << "downloading schedule";
+
+ QNetworkRequest request;
+ request.setUrl(QUrl(SCHEDULE_URL));
+ mNetworkAccessManager->get(request);
+}
+
+void ImportScheduleWidget::importData(const QByteArray &aData)
+{
+ browse->hide();
+ online->hide();
+ progressBar->show();
+
+ int confId = mXmlParser->parseData(aData);
+
+ progressBar->hide();
+ browse->show();
+ online->show();
+ importScheduleLabel->setText("Import schedule: ");
+
+ emit(scheduleImported(confId));
+}
+
#include "ui_importschedulewidget.h"
class ScheduleXmlParser;
+class QNetworkAccessManager;
+class QNetworkReply;
class ImportScheduleWidget : public QWidget, Ui::ImportScheduleWidget
{
void browseSchedule();
void parsingSchedule(const QString &aTitle);
void showParsingProgress(int progress);
+ void networkQueryFinished(QNetworkReply *aReply);
+ void downloadSchedule();
signals:
void scheduleImported(int confId);
+ private:
+ void importData(const QByteArray &aData);
private:
ScheduleXmlParser *mXmlParser;
+ QNetworkAccessManager *mNetworkAccessManager;
};
#endif /* IMPORTSCHEDULEWIDGET_H */
#include <QTreeView>
#include <QFile>
+#include <QNetworkProxy>
#include <sqlengine.h>
#include <tabcontainer.h>
+const QString PROXY_URL("192.168.0.252");
+const quint16 PROXY_PORT = 4040;
+const QString PROXY_USERNAME;
+const QString PROXY_PASSWD;
+const bool DIRECT_CONNECTION = false;
+
MainWindow::MainWindow(int aEventId, QWidget *aParent)
: QMainWindow(aParent)
{
setupUi(this);
+ qDebug() << "Setting-up proxy: " << PROXY_URL << ":" << PROXY_PORT;
+ QNetworkProxy proxy(DIRECT_CONNECTION ? QNetworkProxy::NoProxy : QNetworkProxy::HttpProxy,
+ PROXY_URL, PROXY_PORT, PROXY_USERNAME, PROXY_PASSWD);
+ QNetworkProxy::setApplicationProxy(proxy);
+
int confId = Conference::activeConference();
connect(importScheduleWidget, SIGNAL(scheduleImported(int)), SLOT(scheduleImported(int)));