Added RouteWaypointList- and RouteWaypointListView classes.
[situare] / src / routing / routingservice.cpp
index e484af4..ed0842c 100644 (file)
    USA.
 */
 
+#include "parser.h"
+
+#include <QCryptographicHash>
 #include <QDebug>
-#include <QtGlobal>
-#include <QStringList>
 #include <QNetworkReply>
-#include <QCryptographicHash>
+#include <QStringList>
+#include <QtGlobal>
 
 #if defined(Q_WS_MAEMO_5) & defined(ARMEL)
 #include <QDBusInterface>
 #include <QDBusMessage>
 #endif
 
-#include "common.h"
 #include "coordinates/geocoordinate.h"
+#include "error.h"
+#include "location.h"
 #include "network/networkaccessmanager.h"
-#include "parser.h"
 #include "route.h"
 #include "routesegment.h"
 
@@ -52,7 +54,6 @@ const int NO_ERROR = 0;
 const QString CLOUDMADE_AUTH_PART = "http://auth.cloudmade.com/token/";
 const QString CLOUDMADE_API_KEY = "0cea0072adbf42ce823f4c78b974f12d";
 
-
 RoutingService::RoutingService(QObject *parent)
         : QObject(parent)
 {
@@ -104,7 +105,7 @@ void RoutingService::parseRouteData(const QByteArray &jsonReply)
                 segment.setLengthCaption(list.at(4));
                 segment.setEarthDirection(list.at(5));
                 segment.setAzimuth(list.at(6).toDouble());
-                if (list.count() == 8) {
+                if (list.count() == 9) {
                     segment.setTurnType(list.at(7));
                     segment.setTurnAngle(list.at(8).toDouble());
                 }
@@ -157,28 +158,23 @@ void RoutingService::requestFinished(QNetworkReply *reply)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    if (m_currentRequests.contains(reply)) {
-
-        QByteArray replyArray = reply->readAll();
-        qDebug() << "Reply from: " << reply->url() << "reply " << replyArray;
-
-        if (reply->error()) {
-            emit error(ErrorContext::NETWORK, reply->error());
-        } else if(reply->url().toString().contains(CLOUDMADE_AUTH_PART)) {
-            m_token = replyArray;
-            m_pendingRequest.append(m_token);
-            sendRequest(m_pendingRequest);
-            m_pendingRequest.clear();
-        } else {
-            parseRouteData(replyArray);
-        }
+    QByteArray replyArray = reply->readAll();
 
-        m_currentRequests.removeAll(reply);
-        reply->deleteLater();
+    if (reply->error()) {
+        emit error(ErrorContext::NETWORK, reply->error());
+    } else if(reply->url().toString().contains(CLOUDMADE_AUTH_PART)) {
+        m_token = replyArray;
+        m_pendingRequest.append(m_token);
+        sendRequest(m_pendingRequest);
+        m_pendingRequest.clear();
+    } else {
+        parseRouteData(replyArray);
     }
+
+    reply->deleteLater();
 }
 
-void RoutingService::requestRoute(GeoCoordinate from, GeoCoordinate to)
+void RoutingService::requestRoute(const GeoCoordinate &from, const GeoCoordinate &to)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
@@ -208,7 +204,5 @@ void RoutingService::sendRequest(const QUrl &url)
     request.setAttribute(QNetworkRequest::CacheSaveControlAttribute, false);
 
     QByteArray ba;
-    QNetworkReply *reply = m_networkManager->post(request, ba, false);
-
-    m_currentRequests.append(reply);
+    m_networkManager->post(request, ba, false);
 }