{
}
-void DataProvider::fetchStationSchedule(const QString &station)
+void DataProvider::fetchStationSchedule(const QString &station,
+ const QString &stationCode)
{
QNetworkRequest request;
Settings *settings = Settings::instance();
- request.setUrl(settings->queryBaseUrl());
- const QString queryString = "stazione=" + station;
+ request.setUrl(settings->queryBaseUrl() + "stazione");
+ qDebug() << "fetching schedule for station:" << station << "code:" << stationCode;
+ const QString queryString =
+ stationCode.isEmpty() ? "stazione=" + station :
+ "codiceStazione=" + stationCode;
const QByteArray query(queryString.toLocal8Bit());
stationQueryReply = accessManager->post(request, query);
connect(stationQueryReply, SIGNAL(finished()),
SLOT(onStationScheduleFetched()));
- settings->recentStations().push_front(station);
- settings->recentStations().removeDuplicates();
- if (settings->recentStations().count() > RECENT_STATIONS_MAX_COUNT) {
- settings->recentStations().pop_back();
+ connect(stationQueryReply, SIGNAL(error(QNetworkReply::NetworkError)),
+ SLOT(onNetworkError(QNetworkReply::NetworkError)));
+ QStringList recentStations = settings->recentStations();
+ recentStations.push_front(station);
+ recentStations.removeDuplicates();
+ if (recentStations.count() > RECENT_STATIONS_MAX_COUNT) {
+ recentStations.pop_back();
}
+ settings->setRecentStations(recentStations);
}
void DataProvider::updateStation()
void DataProvider::onStationScheduleFetched()
{
- disconnect(stationQueryReply, SIGNAL(finished()),
- this, SLOT(onStationScheduleFetched()));
+ disconnect(stationQueryReply);
QString name = Settings::instance()->recentStations().front();
stationQueryReply->deleteLater();
stationQueryReply = 0;
}
+
+void DataProvider::onNetworkError(QNetworkReply::NetworkError errorCode)
+{
+ switch (errorCode) {
+ case QNetworkReply::NoError:
+ qDebug() << "No Network error" << errorCode;
+ break;
+ default:
+ qDebug() << "SNetwork error" << errorCode;
+ emit error();
+ break;
+ }
+}