Fixed two bugs
authorSami Rämö <sami.ramo@ixonos.com>
Tue, 13 Jul 2010 07:22:51 +0000 (10:22 +0300)
committerSami Rämö <sami.ramo@ixonos.com>
Tue, 13 Jul 2010 07:22:51 +0000 (10:22 +0300)
 - Route saved RouteSegments as pointers, and segment data was
   deleted when application exited from parseRouteData()

 - MapScene was using two uninitialized variables

src/map/mapengine.cpp
src/map/mapscene.cpp
src/routing/route.cpp
src/routing/route.h
src/routing/routingservice.cpp

index 529a9ba..857c3eb 100644 (file)
@@ -483,8 +483,8 @@ void MapEngine::setRoute(Route route)
     foreach (QPointF point, route.geometryPoints())
         qWarning() << __PRETTY_FUNCTION__ << "geometry point:" << point.x() << point.y();
 
-    foreach (RouteSegment *segment, route.segments()) {
-        qWarning() << __PRETTY_FUNCTION__ << "segment:" << segment->instruction();
+    foreach (RouteSegment segment, route.segments()) {
+        qWarning() << __PRETTY_FUNCTION__ << "segment:" << segment.instruction();
     }
 
     /// @todo draw track
index 33e0278..d576099 100644 (file)
@@ -30,7 +30,9 @@
 MapScene::MapScene(QObject *parent)
     : QGraphicsScene(parent)
     , m_isRemoveStackedTilesRunning(false)
+    , m_zoomLevel(0)
     , m_tilesSceneRect(QRect(0, 0, 0, 0))
+    , m_viewTilesGrid(QRect(0, 0, 0, 0))
 {
     qDebug() << __PRETTY_FUNCTION__;
 
index a11dfc6..676e326 100644 (file)
@@ -32,13 +32,6 @@ Route::Route()
     qDebug() << __PRETTY_FUNCTION__;
 }
 
-Route::~Route()
-{
-    qDebug() << __PRETTY_FUNCTION__;
-
-    qDeleteAll(m_segments);
-}
-
 void Route::appendGeometryPoint(QPointF geometryPoint)
 {
     qDebug() << __PRETTY_FUNCTION__;
@@ -46,7 +39,7 @@ void Route::appendGeometryPoint(QPointF geometryPoint)
     m_geometryPoints.append(geometryPoint);
 }
 
-void Route::appendSegment(RouteSegment *segment)
+void Route::appendSegment(RouteSegment segment)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
@@ -67,7 +60,7 @@ const QList<QPointF>& Route::geometryPoints() const
     return m_geometryPoints;
 }
 
-const QList<RouteSegment *>& Route::segments() const
+const QList<RouteSegment>& Route::segments() const
 {
     qDebug() << __PRETTY_FUNCTION__;
 
index a80f648..c174cde 100644 (file)
@@ -47,11 +47,6 @@ public:
     Route();
 
     /**
-    * @brief Destructor
-    */
-    ~Route();
-
-    /**
     * @brief Append geometry point (a.k.a track point) of the route
     *
     * Appending must be done in order starting from the beginning of the route.
@@ -68,7 +63,7 @@ public:
     *
     * @param segment Route segment object
     */
-    void appendSegment(RouteSegment *segment);
+    void appendSegment(RouteSegment segment);
 
     /**
     * @brief Getter for route end point name
@@ -89,7 +84,7 @@ public:
     *
     * @returns Reference to list of route segments
     */
-    const QList<RouteSegment *>& segments() const;
+    const QList<RouteSegment>& segments() const;
 
     /**
     * @brief Set name of the route end point
@@ -145,7 +140,7 @@ private:
     int m_totalTime;                    ///< estimated route total time in seconds
 
     QList<QPointF> m_geometryPoints;    ///< lat/lon coordinates of the route points
-    QList<RouteSegment *> m_segments;   ///< route segments
+    QList<RouteSegment> m_segments;     ///< route segments
 
     QString m_endPointName;             ///< name of the route end point
     QString m_startPointName;           ///< name of the route starting point
index 777cb81..f1d70df 100644 (file)
@@ -121,17 +121,17 @@ void RoutingService::parseRouteData(const QByteArray &jsonReply)
             foreach(QVariant routeInstructions, result["route_instructions"].toList()) {
                 QStringList list = routeInstructions.toStringList();
 //                qDebug() << list.join(",");
-                RouteSegment *segment = new RouteSegment;
-                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());
+                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() == 8) {
-                    segment->setTurnType(list.at(7));
-                    segment->setTurnAngle(list.at(8).toDouble());
+                    segment.setTurnType(list.at(7));
+                    segment.setTurnAngle(list.at(8).toDouble());
                 }
                 route.appendSegment(segment);
             }