diff options
Diffstat (limited to 'src/widgets/graphicsview/qgraphicssceneindex_p.h')
-rw-r--r-- | src/widgets/graphicsview/qgraphicssceneindex_p.h | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/src/widgets/graphicsview/qgraphicssceneindex_p.h b/src/widgets/graphicsview/qgraphicssceneindex_p.h index 29b321fb1d..215fefe9b7 100644 --- a/src/widgets/graphicsview/qgraphicssceneindex_p.h +++ b/src/widgets/graphicsview/qgraphicssceneindex_p.h @@ -66,15 +66,14 @@ QT_BEGIN_NAMESPACE #if !defined(QT_NO_GRAPHICSVIEW) -class QGraphicsSceneIndexIntersector; -class QGraphicsSceneIndexPointIntersector; -class QGraphicsSceneIndexRectIntersector; -class QGraphicsSceneIndexPathIntersector; class QGraphicsSceneIndexPrivate; class QPointF; class QRectF; template<typename T> class QList; +typedef bool (*QGraphicsSceneIndexIntersector)(const QGraphicsItem *item, const QRectF &exposeRect, Qt::ItemSelectionMode mode, + const QTransform &deviceTransform, const void *data); + class Q_AUTOTEST_EXPORT QGraphicsSceneIndex : public QObject { Q_OBJECT @@ -133,27 +132,24 @@ public: static bool itemCollidesWithPath(const QGraphicsItem *item, const QPainterPath &path, Qt::ItemSelectionMode mode); void recursive_items_helper(QGraphicsItem *item, QRectF exposeRect, - QGraphicsSceneIndexIntersector *intersector, QList<QGraphicsItem *> *items, + QGraphicsSceneIndexIntersector intersect, QList<QGraphicsItem *> *items, const QTransform &viewTransform, - Qt::ItemSelectionMode mode, qreal parentOpacity = 1.0) const; - inline void items_helper(const QRectF &rect, QGraphicsSceneIndexIntersector *intersector, + Qt::ItemSelectionMode mode, qreal parentOpacity, const void *intersectData) const; + inline void items_helper(const QRectF &rect, QGraphicsSceneIndexIntersector intersect, QList<QGraphicsItem *> *items, const QTransform &viewTransform, - Qt::ItemSelectionMode mode, Qt::SortOrder order) const; + Qt::ItemSelectionMode mode, Qt::SortOrder order, const void *intersectData) const; QGraphicsScene *scene; - QGraphicsSceneIndexPointIntersector *pointIntersector; - QGraphicsSceneIndexRectIntersector *rectIntersector; - QGraphicsSceneIndexPathIntersector *pathIntersector; }; -inline void QGraphicsSceneIndexPrivate::items_helper(const QRectF &rect, QGraphicsSceneIndexIntersector *intersector, +inline void QGraphicsSceneIndexPrivate::items_helper(const QRectF &rect, QGraphicsSceneIndexIntersector intersect, QList<QGraphicsItem *> *items, const QTransform &viewTransform, - Qt::ItemSelectionMode mode, Qt::SortOrder order) const + Qt::ItemSelectionMode mode, Qt::SortOrder order, const void *intersectData) const { Q_Q(const QGraphicsSceneIndex); const QList<QGraphicsItem *> tli = q->estimateTopLevelItems(rect, Qt::AscendingOrder); for (int i = 0; i < tli.size(); ++i) - recursive_items_helper(tli.at(i), rect, intersector, items, viewTransform, mode); + recursive_items_helper(tli.at(i), rect, intersect, items, viewTransform, mode, 1.0, intersectData); if (order == Qt::DescendingOrder) { const int n = items->size(); for (int i = 0; i < n / 2; ++i) @@ -161,15 +157,6 @@ inline void QGraphicsSceneIndexPrivate::items_helper(const QRectF &rect, QGraphi } } -class QGraphicsSceneIndexIntersector -{ -public: - QGraphicsSceneIndexIntersector() { } - virtual ~QGraphicsSceneIndexIntersector() { } - virtual bool intersect(const QGraphicsItem *item, const QRectF &exposeRect, Qt::ItemSelectionMode mode, - const QTransform &deviceTransform) const = 0; -}; - #endif // QT_NO_GRAPHICSVIEW QT_END_NAMESPACE |