#include "application.h"
#include "common.h"
-#include "error.h"
+#include "../error.h"
#include "facebookservice/facebookauthentication.h"
#include "gps/gpsposition.h"
#include "map/mapengine.h"
m_ui->toggleProgressIndicator(false);
m_ui->buildInformationBox(tr("Address server not responding"), true);
break;
+ case SituareError::ERROR_ROUTING_FAILED:
+ m_ui->toggleProgressIndicator(false);
+ m_ui->buildInformationBox(tr("Routing failed"), true);
+ break;
default:
m_ui->toggleProgressIndicator(false);
if(context == ErrorContext::NETWORK)
qCritical() << __PRETTY_FUNCTION__ << "QNetworkReply::NetworkError: " << error;
else
qCritical() << __PRETTY_FUNCTION__ << "Unknown error: " << error;
-
break;
}
}
connect(m_routingService, SIGNAL(routeParsed(Route&)),
m_ui, SIGNAL(routeParsed(Route&)));
+
+ connect(m_routingService, SIGNAL(error(int, int)),
+ this, SLOT(error(int, int)));
}
void SituareEngine::signalsFromSituareService()
#endif
#include "coordinates/geocoordinate.h"
-#include "error.h"
+#include "../error.h"
#include "location.h"
#include "network/networkaccessmanager.h"
#include "route.h"
bool ok;
QVariantMap result = parser.parse (jsonReply, &ok).toMap();
if (!ok) {
- emit error(ErrorContext::SITUARE, SituareError::INVALID_JSON);
+ emit error(ErrorContext::SITUARE, SituareError::ERROR_ROUTING_FAILED);
return;
- } else {
- if(result.value("status").toInt() == NO_ERROR) {
- QVariant routeSummary = result.value("route_summary");
- QMap<QString, QVariant> routeSummaryMap = routeSummary.toMap();
-
- Route route;
- route.setEndPointName(routeSummaryMap["end_point"].toString());
- route.setStartPointName(routeSummaryMap["start_point"].toString());
- route.setTotalDistance(routeSummaryMap["total_distance"].toInt());
- route.setTotalTime(routeSummaryMap["total_time"].toInt());
-
- foreach(QVariant routeGeometry, result["route_geometry"].toList()) {
- QStringList list = routeGeometry.toStringList();
- route.appendGeometryPoint(GeoCoordinate(list.at(0).toDouble(),
- list.at(1).toDouble()));
- }
+ } else if(result.value("status").toInt() == NO_ERROR) {
+ QVariant routeSummary = result.value("route_summary");
+ QMap<QString, QVariant> routeSummaryMap = routeSummary.toMap();
+
+ Route route;
+ route.setEndPointName(routeSummaryMap["end_point"].toString());
+ route.setStartPointName(routeSummaryMap["start_point"].toString());
+ route.setTotalDistance(routeSummaryMap["total_distance"].toInt());
+ route.setTotalTime(routeSummaryMap["total_time"].toInt());
+
+ foreach(QVariant routeGeometry, result["route_geometry"].toList()) {
+ QStringList list = routeGeometry.toStringList();
+ route.appendGeometryPoint(GeoCoordinate(list.at(0).toDouble(), list.at(1).toDouble()));
+ }
- foreach(QVariant routeInstructions, result["route_instructions"].toList()) {
- QStringList list = routeInstructions.toStringList();
- RouteSegment segment;
- segment.setInstruction(list.at(0));
- segment.setLength(list.at(1).toDouble());
- segment.setPositionIndex(list.at(2).toInt());
- segment.setTime(list.at(3).toInt());
- segment.setLengthCaption(list.at(4));
- segment.setEarthDirection(list.at(5));
- segment.setAzimuth(list.at(6).toDouble());
- if (list.count() == 9) {
- segment.setTurnType(list.at(7));
- segment.setTurnAngle(list.at(8).toDouble());
- }
- route.appendSegment(segment);
+ foreach(QVariant routeInstructions, result["route_instructions"].toList()) {
+ QStringList list = routeInstructions.toStringList();
+ RouteSegment segment;
+ segment.setInstruction(list.at(0));
+ segment.setLength(list.at(1).toDouble());
+ segment.setPositionIndex(list.at(2).toInt());
+ segment.setTime(list.at(3).toInt());
+ segment.setLengthCaption(list.at(4));
+ segment.setEarthDirection(list.at(5));
+ segment.setAzimuth(list.at(6).toDouble());
+ if (list.count() == 9) {
+ segment.setTurnType(list.at(7));
+ segment.setTurnAngle(list.at(8).toDouble());
}
-
- emit routeParsed(route);
+ route.appendSegment(segment);
}
+
+ emit routeParsed(route);
+ } else {
+ emit error(ErrorContext::SITUARE, SituareError::ERROR_ROUTING_FAILED);
+ qCritical() << __PRETTY_FUNCTION__ << "routing failed, json status_message:"
+ << result.value("status_message").toString();
}
}