summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview
diff options
context:
space:
mode:
authorAlexis Menard <alexis.menard@trolltech.com>2009-04-07 18:20:53 (GMT)
committerAlexis Menard <alexis.menard@trolltech.com>2009-04-07 18:20:53 (GMT)
commit5cf43cf62221e3241e33ea25efc7014c07e4d7ad (patch)
treec6f8ed38aee8b2352859794d56053437d157373a /src/gui/graphicsview
parent133bded765f224bce31d8abff87cc74a63569715 (diff)
downloadQt-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.h3
-rw-r--r--src/gui/graphicsview/qgraphicsscene_linear_p.h8
-rw-r--r--src/gui/graphicsview/qgraphicssceneindex.h1
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();