diff options
author | Bjoern Erik Nilsen <bjorn.nilsen@nokia.com> | 2009-03-18 12:27:16 (GMT) |
---|---|---|
committer | Jason McDonald <jason.mcdonald@nokia.com> | 2009-04-15 10:18:41 (GMT) |
commit | 53704a42dc50049806c27206ec361ab0c8cb01ed (patch) | |
tree | 8d617337607f96bab6328c7438b59f52433b4939 | |
parent | 4c5e1ebe44f2d5f10a1798af45f5f7a18c6e9e82 (diff) | |
download | Qt-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.h | 6 | ||||
-rw-r--r-- | src/gui/graphicsview/qgraphicsscene.cpp | 6 |
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, |