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__;
}
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();
}
}
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();
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)
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);
+ }
+
}
}
}