From 78f774a94db34b336fa879e2b836cc0d959e3217 Mon Sep 17 00:00:00 2001 From: Luciano Montanaro Date: Thu, 26 Sep 2013 00:43:42 +0200 Subject: [PATCH] Log error code in case of network error Small cleanups, as well, and implemented the MetadataCHanged slot to catch redirects (TODO) --- application/dataprovider.cpp | 17 +++++++++++++---- application/dataprovider.h | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/application/dataprovider.cpp b/application/dataprovider.cpp index 81617fb..8d19c13 100644 --- a/application/dataprovider.cpp +++ b/application/dataprovider.cpp @@ -48,7 +48,8 @@ DataProvider *DataProvider::instance() DataProvider::DataProvider(QObject *parent) : QObject(parent), - accessManager(new QNetworkAccessManager(this)) + accessManager(new QNetworkAccessManager(this)), + stationQueryReply(0) { } @@ -64,6 +65,8 @@ void DataProvider::fetchStationSchedule(const QString &station, "codiceStazione=" + stationCode; const QByteArray query(queryString.toLocal8Bit()); stationQueryReply = accessManager->post(request, query); + connect(stationQueryReply, SIGNAL(metaDataChanged()), + SLOT(onStationQueryMetadataChanged())); connect(stationQueryReply, SIGNAL(finished()), SLOT(onStationScheduleFetched())); connect(stationQueryReply, SIGNAL(error(QNetworkReply::NetworkError)), @@ -91,13 +94,19 @@ void DataProvider::onStationScheduleFetched() { disconnect(stationQueryReply); - QString name = Settings::instance()->recentStations().front(); - + QVariant httpStatus = stationQueryReply->attribute(QNetworkRequest::HttpStatusCodeAttribute); + if (httpStatus.isValid()) { + qDebug() << "Metadata changed, Http status is:" << httpStatus.toInt(); + } emit stationScheduleReady(stationQueryReply->readAll(), stationQueryReply->url()); stationQueryReply->deleteLater(); stationQueryReply = 0; } +void DataProvider::onStationQueryMetadataChanged(void) +{ +} + void DataProvider::onNetworkError(QNetworkReply::NetworkError errorCode) { switch (errorCode) { @@ -105,7 +114,7 @@ void DataProvider::onNetworkError(QNetworkReply::NetworkError errorCode) qDebug() << "No Network error" << errorCode; break; default: - qDebug() << "SNetwork error" << errorCode; + qDebug() << "Network error" << errorCode; emit error(); break; } diff --git a/application/dataprovider.h b/application/dataprovider.h index a9c9cb5..69cd3a6 100644 --- a/application/dataprovider.h +++ b/application/dataprovider.h @@ -47,6 +47,7 @@ public slots: private slots: void onStationScheduleFetched(void); + void onStationQueryMetadataChanged(void); void onNetworkError(QNetworkReply::NetworkError errorCode); private: -- 1.7.9.5