diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2009-05-23 00:51:04 -0400 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2009-05-23 00:51:04 -0400 |
commit | 341ee331747ee30cb3ef95ad025ef7e6ac6f0853 (patch) | |
tree | 3cb10b0a9e0cad698336437386417543fb964cec | |
parent | 10c467f169bf0b678cc906f58c7d97b4961dbff8 (diff) | |
download | sigen-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.cpp | 9 |
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()) { |