summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview/qgraphicsview.cpp
diff options
context:
space:
mode:
authorAlexis Menard <alexis.menard@nokia.com>2009-06-03 16:23:20 (GMT)
committerAlexis Menard <alexis.menard@nokia.com>2009-06-03 16:23:20 (GMT)
commitffd6bc0351c96c8a3828bd7376f2b6bda317cd71 (patch)
tree4d2879a9f3525eb0c88df54d21dba71b4748586f /src/gui/graphicsview/qgraphicsview.cpp
parent427c4d6b0a8b3004c86facd382de33c171c0458b (diff)
downloadQt-ffd6bc0351c96c8a3828bd7376f2b6bda317cd71.zip
Qt-ffd6bc0351c96c8a3828bd7376f2b6bda317cd71.tar.gz
Qt-ffd6bc0351c96c8a3828bd7376f2b6bda317cd71.tar.bz2
Remove the sorting cache from the QGraphicsScene and move it to the BSP.
Now the QGraphicsScene has no idea how works the index. So we can improve it separatly, add new ones and benchmarks existing ones.
Diffstat (limited to 'src/gui/graphicsview/qgraphicsview.cpp')
-rw-r--r--src/gui/graphicsview/qgraphicsview.cpp11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp
index 91f97a1..e8330a9 100644
--- a/src/gui/graphicsview/qgraphicsview.cpp
+++ b/src/gui/graphicsview/qgraphicsview.cpp
@@ -1056,7 +1056,7 @@ QList<QGraphicsItem *> QGraphicsViewPrivate::findItems(const QRegion &exposedReg
*allItems = true;
// All items are guaranteed within the exposed region, don't bother using the index.
- QList<QGraphicsItem *> itemList(scene->items());
+ QList<QGraphicsItem *> itemList(scene->d_func()->index->items(Qt::DescendingOrder));
int i = 0;
while (i < itemList.size()) {
const QGraphicsItem *item = itemList.at(i);
@@ -1069,9 +1069,6 @@ QList<QGraphicsItem *> QGraphicsViewPrivate::findItems(const QRegion &exposedReg
else
++i;
}
-
- // Sort the items.
- QGraphicsScenePrivate::sortItems(&itemList, Qt::DescendingOrder, scene->d_func()->sortCacheEnabled);
return itemList;
}
@@ -2134,7 +2131,7 @@ QList<QGraphicsItem *> QGraphicsViewPrivate::itemsInArea(const QPainterPath &pat
// Then find the minimal list of items that are inside \a path, and
// convert it to a set.
- QList<QGraphicsItem *> regularCandidates = scene->items(q->mapToScene(path), mode);
+ QList<QGraphicsItem *> regularCandidates = scene->items(q->mapToScene(path), mode, order, q->transform());
QSet<QGraphicsItem *> candSet = QSet<QGraphicsItem *>::fromList(regularCandidates);
QTransform viewMatrix = q->viewportTransform();
@@ -2161,10 +2158,6 @@ QList<QGraphicsItem *> QGraphicsViewPrivate::itemsInArea(const QPainterPath &pat
}
++it;
}
-
- // ### Insertion sort would be faster.
- if (order != Qt::SortOrder(-1))
- QGraphicsScenePrivate::sortItems(&result, order, scene->d_func()->sortCacheEnabled);
return result;
}