diff options
author | Alexis Menard <alexis.menard@nokia.com> | 2009-06-11 09:33:54 (GMT) |
---|---|---|
committer | Alexis Menard <alexis.menard@nokia.com> | 2009-06-11 09:34:05 (GMT) |
commit | c6f2229bcecbbea2d1f3df149d1a397cd26b43c7 (patch) | |
tree | bb14b976cddccdb196a68bed6f9b94d10273f857 /src/gui/graphicsview/qgraphicsscene_p.h | |
parent | bc3abd32ed1c5a872d7a7817c1af0a13f442d536 (diff) | |
parent | 0989cbe2b164560eef14334a540fcbcb2e2ec8cb (diff) | |
download | Qt-c6f2229bcecbbea2d1f3df149d1a397cd26b43c7.zip Qt-c6f2229bcecbbea2d1f3df149d1a397cd26b43c7.tar.gz Qt-c6f2229bcecbbea2d1f3df149d1a397cd26b43c7.tar.bz2 |
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt into qt-main/qgraphicssceneindex
Painfull merge due to recent changes in QGV framework.
Conflicts:
src/gui/graphicsview/qgraphicsitem.cpp
src/gui/graphicsview/qgraphicsscene.cpp
src/gui/graphicsview/qgraphicsscene.h
src/gui/graphicsview/qgraphicsscene_p.h
src/gui/graphicsview/qgraphicsview.cpp
Diffstat (limited to 'src/gui/graphicsview/qgraphicsscene_p.h')
-rw-r--r-- | src/gui/graphicsview/qgraphicsscene_p.h | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/src/gui/graphicsview/qgraphicsscene_p.h b/src/gui/graphicsview/qgraphicsscene_p.h index d2a5cdb..afdba7e 100644 --- a/src/gui/graphicsview/qgraphicsscene_p.h +++ b/src/gui/graphicsview/qgraphicsscene_p.h @@ -60,6 +60,7 @@ #include "qgraphicsscenebsptreeindex_p.h" #include "qgraphicsscenelinearindex_p.h" #include "qgraphicssceneindex.h" +#include "qgraphicsview.h" #include "qgraphicsitem_p.h" #include <private/qobject_p.h> @@ -70,6 +71,7 @@ #include <QtGui/qfont.h> #include <QtGui/qpalette.h> #include <QtGui/qstyle.h> +#include <QtGui/qstyleoption.h> QT_BEGIN_NAMESPACE @@ -101,25 +103,24 @@ public: QList<QRectF> updatedRects; bool updateAll; bool calledEmitUpdated; + bool processDirtyItemsEmitted; QPainterPath selectionArea; int selectionChanging; QSet<QGraphicsItem *> selectedItems; - QList<QGraphicsItem *> dirtyItems; QList<QGraphicsItem *> pendingUpdateItems; QList<QGraphicsItem *> unpolishedItems; QList<QGraphicsItem *> topLevelItems; + bool needSortTopLevelItems; QMap<QGraphicsItem *, QPointF> movingItemsInitialPositions; void registerTopLevelItem(QGraphicsItem *item); void unregisterTopLevelItem(QGraphicsItem *item); void _q_updateLater(); void _q_polishItems(); - void _q_resetDirtyItems(); - void resetDirtyItemsLater(); - bool dirtyItemResetPending; + void _q_processDirtyItems(); - void _q_removeItemLater(QGraphicsItem *item); + void removeItemHelper(QGraphicsItem *item); QBrush backgroundBrush; QBrush foregroundBrush; @@ -188,10 +189,34 @@ public: void mousePressEventHandler(QGraphicsSceneMouseEvent *mouseEvent); QGraphicsWidget *windowForItem(const QGraphicsItem *item) const; + void recursive_items_helper(QGraphicsItem *item, QRectF rect, QList<QGraphicsItem *> *items, + const QTransform &parentTransform, const QTransform &viewTransform, + Qt::ItemSelectionMode mode, Qt::SortOrder order, qreal parentOpacity = 1.0) const; + void drawItemHelper(QGraphicsItem *item, QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget, bool painterStateProtection); + void drawSubtreeRecursive(QGraphicsItem *item, QPainter *painter, const QTransform &viewTransform, + QRegion *exposedRegion, QWidget *widget, + QList<QGraphicsItem *> *topLevelItems = 0, qreal parentOpacity = qreal(1.0)); + void markDirty(QGraphicsItem *item, const QRectF &rect = QRectF(), bool invalidateChildren = false, + bool maybeDirtyClipPath = false, bool force = false, bool ignoreOpacity = false, + bool removingItemFromScene = false); + void processDirtyItemsRecursive(QGraphicsItem *item, bool dirtyAncestorContainsChildren = false); + + inline void resetDirtyItem(QGraphicsItem *item) + { + Q_ASSERT(item); + item->d_ptr->dirty = 0; + item->d_ptr->paintedViewBoundingRectsNeedRepaint = 0; + item->d_ptr->geometryChanged = 0; + item->d_ptr->dirtyChildren = 0; + item->d_ptr->needsRepaint = QRectF(); + item->d_ptr->allChildrenDirty = 0; + item->d_ptr->fullUpdatePending = 0; + } + QStyle *style; QFont font; void setFont_helper(const QFont &font); @@ -202,9 +227,7 @@ public: void resolvePalette(); void updatePalette(const QPalette &palette); - mutable QVector<QTransform> sceneTransformCache; - mutable QBitArray validTransforms; - mutable QVector<int> freeSceneTransformSlots; + QStyleOptionGraphicsItem styleOptionTmp; }; static inline bool QRectF_intersects(const QRectF &s, const QRectF &r) |