summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Erik Nilsen <bjorn.nilsen@nokia.com>2009-03-18 12:27:16 (GMT)
committerAndreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com>2009-04-06 11:49:43 (GMT)
commitbd4b177e051852f0fb94df9c0ee2e512478e0d38 (patch)
tree0d349b723d43a9f1513392af5904e799943e93fd
parent4d019e66fb62d6f25627144539abd7f59413abee (diff)
downloadQt-bd4b177e051852f0fb94df9c0ee2e512478e0d38.zip
Qt-bd4b177e051852f0fb94df9c0ee2e512478e0d38.tar.gz
Qt-bd4b177e051852f0fb94df9c0ee2e512478e0d38.tar.bz2
Fixes: Get rid of lots of calls to qFuzzyCompare.
RevBy: Olivier AutoTest: Still pass. Details: Items usually don't have effective opacity, i.e. it is 1.0, so don't bother doing fuzzy compare if that's the case.
-rw-r--r--src/gui/graphicsview/qgraphicsitem_p.h6
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp6
2 files changed, 9 insertions, 3 deletions
diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h
index 1e2c09b..df07b87 100644
--- a/src/gui/graphicsview/qgraphicsitem_p.h
+++ b/src/gui/graphicsview/qgraphicsitem_p.h
@@ -246,6 +246,12 @@ public:
void invalidateCachedClipPathRecursively(bool childrenOnly = false);
+ inline bool isInvisible() const
+ {
+ return !visible || (hasEffectiveOpacity
+ && qFuzzyCompare(q_func()->effectiveOpacity() + 1.0, qreal(1.0)));
+ }
+
QPainterPath cachedClipPath;
QPointF pos;
qreal z;
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index 3db8e35..1422184 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -1552,7 +1552,7 @@ void QGraphicsScenePrivate::childItems_helper(QList<QGraphicsItem *> *items,
continue;
// Skip invisible items and all their children.
- if (!item->d_ptr->visible || qFuzzyCompare(item->effectiveOpacity(), qreal(0.0)))
+ if (item->d_ptr->isInvisible())
continue;
// ### _q_adjustedRect is only needed because QRectF::intersects,
@@ -1612,7 +1612,7 @@ void QGraphicsScenePrivate::childItems_helper(QList<QGraphicsItem *> *items,
continue;
// Skip invisible items.
- if (!item->d_ptr->visible || qFuzzyCompare(item->effectiveOpacity() + 1, qreal(1.0)))
+ if (item->d_ptr->isInvisible())
continue;
// ### _q_adjustedRect is only needed because QRectF::intersects,
@@ -1666,7 +1666,7 @@ void QGraphicsScenePrivate::childItems_helper(QList<QGraphicsItem *> *items,
continue;
// Skip invisible items.
- if (!item->d_ptr->visible || qFuzzyCompare(item->effectiveOpacity(), qreal(0.0)))
+ if (item->d_ptr->isInvisible())
continue;
// ### _q_adjustedRect is only needed because QRectF::intersects,