Stacked tile removal zValue check, doxygen generating class diagrams
[situare] / src / map / mapscene.cpp
index 5c0fb59..a6597bb 100644 (file)
@@ -41,13 +41,6 @@ void MapScene::addTile(MapTile *mapTile, QString hashKey)
     addItem(mapTile);
 }
 
-void MapScene::debugItemsCount()
-{
-#ifndef Q_WS_MAEMO_5
-    qDebug() << __PRETTY_FUNCTION__ << "ITEM ADDED:" << items().count();
-#endif // Q_WS_MAEMO_5
-}
-
 void MapScene::enqueueRemoveStackedTiles(MapTile *newTile)
 {
     qDebug() << __PRETTY_FUNCTION__;
@@ -79,9 +72,8 @@ void MapScene::runNextStackedTilesRemoval()
     }
     else {
         m_isRemoveStackedTilesRunning = false;
-#ifndef Q_WS_MAEMO_5
-    qDebug() << __PRETTY_FUNCTION__ << "STACKED END:" << items().count();
-#endif // Q_WS_MAEMO_5
+        qDebug() << __PRETTY_FUNCTION__ << "Stacked tiles removal queue processing finished,"
+                                        << "items count:" << items().count();
     }
 }
 
@@ -92,11 +84,6 @@ void MapScene::removeOutOfViewTiles()
     QList<QGraphicsItem *> viewTiles = items(m_viewRect, Qt::IntersectsItemBoundingRect);
     QList<QGraphicsItem *> allTiles = items();
 
-#ifndef Q_WS_MAEMO_5
-    qDebug() << __PRETTY_FUNCTION__ << "OUT OF VIEW START:" << items().count();
-#endif // Q_WS_MAEMO_5
-
-
     qDebug() << __PRETTY_FUNCTION__ << "All tiles:" << allTiles.count();
     qDebug() << __PRETTY_FUNCTION__ << "Tiles in view area:" << viewTiles.count();
 
@@ -112,10 +99,7 @@ void MapScene::removeOutOfViewTiles()
             removeTile(tileToRemove);
     }
 
-#ifndef Q_WS_MAEMO_5
-    qDebug() << __PRETTY_FUNCTION__ << "OUT OF VIEW END:" << items().count();
-#endif // Q_WS_MAEMO_5
-
+    qDebug() << __PRETTY_FUNCTION__ << "finished, items count:" << items().count();
 }
 
 void MapScene::removeStackedTiles(MapTile *newTile)
@@ -129,10 +113,13 @@ void MapScene::removeStackedTiles(MapTile *newTile)
     foreach (QGraphicsItem *collidingItem, collidingItems) {
         MapTile *collidingTile = dynamic_cast<MapTile *>(collidingItem);
         if (collidingTile) {
-             // remove tile if it is fully obscured by new tile
-            QRectF collidingTileSceneRect = collidingTile->sceneBoundingRect();
-            if (newTileSceneRect.contains(collidingTileSceneRect))
-                removeTile(collidingTile);
+            if (newTile->zValue() > collidingTile->zValue()) {
+                // remove tile if it is fully obscured by new tile
+                QRectF collidingTileSceneRect = collidingTile->sceneBoundingRect();
+                if (newTileSceneRect.contains(collidingTileSceneRect))
+                    removeTile(collidingTile);
+            }
+
         }
     }
 }