On Wednesday 14 October 2009 20:36:19 Henk Jan Priester wrote:
> Some of our applications that work correct with QT 4.5 are broken.
> 
> It seems that my MyView::drawItems function is not called.
> 
> Looking in the source code of QGraphicsView::paintEvent is seems that
> the virtual QGraphicsView::drawItems is
> not called if:
>                     if (!(d->optimizationFlags & IndirectPainting))
> 
> Do I need to change the optimise flag to get drawItems called again?

Indeed.

In order to optimize the QGraphicsView drawing, we needed to stop calling some 
virtual function. 
Because the way painting is done has changed to the much faster recursive 
painting, the drawItems function is not called anymore.
The optimisation flag IndirectPainting restore the old, slower, painting 
method.

Also the benchmark showed that computing the argument required for the some of 
the itemChange calls was a huge bottleneck in animated view. The old behavior 
can be restored by QGraphicsItem::ItemSendsGeometryChanges

It is documented in the changelog.


We are still discussing weather or not the flags should be enabled or not by 
default.  It doesn't make much sens to keep the old way of painting items 
which is much slower as the default one.
We are also trying to gather feedback to see how many applications are really 
affected by this change.

_______________________________________________
Qt4-preview-feedback mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback

Reply via email to