summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Erik Nilsen <bjorn.nilsen@nokia.com>2009-03-18 12:27:16 (GMT)
committerJason McDonald <jason.mcdonald@nokia.com>2009-04-15 10:18:41 (GMT)
commit53704a42dc50049806c27206ec361ab0c8cb01ed (patch)
tree8d617337607f96bab6328c7438b59f52433b4939
parent4c5e1ebe44f2d5f10a1798af45f5f7a18c6e9e82 (diff)
downloadQt-53704a42dc50049806c27206ec361ab0c8cb01ed.zip
Qt-53704a42dc50049806c27206ec361ab0c8cb01ed.tar.gz
Qt-53704a42dc50049806c27206ec361ab0c8cb01ed.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. (cherry picked from commit bd4b177e051852f0fb94df9c0ee2e512478e0d38)
-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 f1808aa..d7970a5 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 c15633d..05723cd 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -1561,7 +1561,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,
@@ -1621,7 +1621,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,
@@ -1675,7 +1675,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,