summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-05-23 00:51:04 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-05-23 00:51:04 -0400
commit341ee331747ee30cb3ef95ad025ef7e6ac6f0853 (patch)
tree3cb10b0a9e0cad698336437386417543fb964cec
parent10c467f169bf0b678cc906f58c7d97b4961dbff8 (diff)
downloadsigen-341ee331747ee30cb3ef95ad025ef7e6ac6f0853.tar.gz
sigen-341ee331747ee30cb3ef95ad025ef7e6ac6f0853.tar.xz
sigen-341ee331747ee30cb3ef95ad025ef7e6ac6f0853.zip
Better detection for when an item can be anchored
-rw-r--r--sigmodr/widgets/mapeditor/WorldMapItem.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/sigmodr/widgets/mapeditor/WorldMapItem.cpp b/sigmodr/widgets/mapeditor/WorldMapItem.cpp
index 770568c4..3eec27b7 100644
--- a/sigmodr/widgets/mapeditor/WorldMapItem.cpp
+++ b/sigmodr/widgets/mapeditor/WorldMapItem.cpp
@@ -154,9 +154,16 @@ void WorldMapItem::keyPressEvent(QKeyEvent* event)
QList<QGraphicsItem*> items;
if (!m_locked)
{
- items = scene()->items(QRectF(scenePos(), QRectF(scenePos(), QSizeF(m_map->width(), m_map->height())).size()));
+ items = scene()->items(QRectF(scenePos(), QSizeF(m_map->width(), m_map->height())));
QtConcurrent::blockingFilter(items, isSetWorldMapItem);
items.removeAll(this);
+ QMutableListIterator<QGraphicsItem*> i(items);
+ while (i.hasNext())
+ {
+ i.next();
+ if (!collidesWithItem(i.value()))
+ i.remove();
+ }
}
if (!items.size())
{