QTfrontend/drawmapscene.cpp
changeset 4747 095398eba689
parent 4666 34551d8639cf
child 4937 55b9145fea94
--- a/QTfrontend/drawmapscene.cpp	Thu Dec 23 21:45:50 2010 +0100
+++ b/QTfrontend/drawmapscene.cpp	Tue Dec 28 22:40:12 2010 +0100
@@ -87,9 +87,10 @@
 {
     QByteArray b;
 
-    foreach(QList<QPoint> points, paths)
+    for(int i = paths.size() - 1; i >= 0; --i)
     {
         int cnt = 0;
+        QList<QPoint> points = paths.at(i);
         foreach(QPoint point, points)
         {
             qint16 px = qToBigEndian((qint16)point.x());
@@ -124,21 +125,23 @@
         quint8 flags = *(quint8 *)data.data();
         data.remove(0, 1);
 
-        //last chunk or first point
-        if((data.size() < 5) || (flags & 0x80))
+        if((flags & 0x80) && points.size())
         {
-            if(points.size())
-            {
-                addPath(pointsToPath(points), m_pen);
-                paths.prepend(points);
+            addPath(pointsToPath(points), m_pen);
+            paths.prepend(points);
 
-                points.clear();
-            }
+            points.clear();
         }
 
         points.append(QPoint(px, py));
     }
 
+    if(points.size())
+    {
+        addPath(pointsToPath(points), m_pen);
+        paths.prepend(points);
+    }
+
     emit pathChanged();
 }