diff options
author | Alexis Menard <alexis.menard@trolltech.com> | 2009-04-07 18:20:53 (GMT) |
---|---|---|
committer | Alexis Menard <alexis.menard@trolltech.com> | 2009-04-07 18:20:53 (GMT) |
commit | 5cf43cf62221e3241e33ea25efc7014c07e4d7ad (patch) | |
tree | c6f8ed38aee8b2352859794d56053437d157373a /src/gui/graphicsview | |
parent | 133bded765f224bce31d8abff87cc74a63569715 (diff) | |
download | Qt-5cf43cf62221e3241e33ea25efc7014c07e4d7ad.zip Qt-5cf43cf62221e3241e33ea25efc7014c07e4d7ad.tar.gz Qt-5cf43cf62221e3241e33ea25efc7014c07e4d7ad.tar.bz2 |
Fixes: Add new virtual QGraphicsSceneIndex::items(QPointF)
Diffstat (limited to 'src/gui/graphicsview')
-rw-r--r-- | src/gui/graphicsview/qgraphicsscene_bsp_p.h | 3 | ||||
-rw-r--r-- | src/gui/graphicsview/qgraphicsscene_linear_p.h | 8 | ||||
-rw-r--r-- | src/gui/graphicsview/qgraphicssceneindex.h | 1 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/gui/graphicsview/qgraphicsscene_bsp_p.h b/src/gui/graphicsview/qgraphicsscene_bsp_p.h index a8c54f0..ed207ea 100644 --- a/src/gui/graphicsview/qgraphicsscene_bsp_p.h +++ b/src/gui/graphicsview/qgraphicsscene_bsp_p.h @@ -95,14 +95,13 @@ public: void removeItem(QGraphicsItem *item); void removeItems(const QList<QGraphicsItem *> &items); + QList<QGraphicsItem *> items(const QPointF &point); QList<QGraphicsItem *> items(const QRectF &rect); int leafCount() const; private: - QList<QGraphicsItem *> items(const QPointF &pos); - inline int firstChildIndex(int index) const { return index * 2 + 1; } diff --git a/src/gui/graphicsview/qgraphicsscene_linear_p.h b/src/gui/graphicsview/qgraphicsscene_linear_p.h index 1ef1902..1981b17 100644 --- a/src/gui/graphicsview/qgraphicsscene_linear_p.h +++ b/src/gui/graphicsview/qgraphicsscene_linear_p.h @@ -94,6 +94,14 @@ public: m_items.removeAll(item); } + virtual QList<QGraphicsItem *> items(const QPointF &point) { + QList<QGraphicsItem*> result; + foreach (QGraphicsItem *item, m_items) + if (item->sceneBoundingRect().contains(point)) + result << item; + return result; + } + virtual QList<QGraphicsItem *> items(const QRectF &rect) { QList<QGraphicsItem*> result; foreach (QGraphicsItem *item, m_items) diff --git a/src/gui/graphicsview/qgraphicssceneindex.h b/src/gui/graphicsview/qgraphicssceneindex.h index 6246753..f78672f 100644 --- a/src/gui/graphicsview/qgraphicssceneindex.h +++ b/src/gui/graphicsview/qgraphicssceneindex.h @@ -76,6 +76,7 @@ public: virtual void removeItems(const QList<QGraphicsItem *> &items); virtual void updateItems(const QList<QGraphicsItem *> &items); + virtual QList<QGraphicsItem *> items(const QPointF &point) = 0; virtual QList<QGraphicsItem *> items(const QRectF &rect) = 0; QGraphicsScene* scene(); |