acquaman/acquaman — Issue #196: Random crash after AMDataView::refreshView() in QGraphicsSceneFindItemBspTreeVisitor::visit
Author: Acquaman-BuildBot
Created: 2011-11-10 07:57:43+00:00
State: open
Labels: Bug - Crash, Module - User Interface

So Qt 4.7.4 introduces or reverts another one of those difficult crashes in QGraphicsSceneFindItemBspTreeVisitor::visit() during scene painting.

In this case, it happens sometimes after an AMDataView::refreshView(). However, the crash occurs during painting out of the Qt event loop, so I can't find out where I caused it. I would probably blame it on Qt (bug https://bugreports.qt.nokia.com/browse/QTBUG-18021) but Qt would like to blame it on me, by saying that somewhere I changed a boundingRect() without calling prepareGeometryChange() first. Seriously? That's enough for you to crash on me?

I've avoided this crash for now by setting
```
gscene_->setItemIndexMethod(QGraphicsScene::NoIndex);
```
in AMDataView's constructor. This disables the BSP tree and probably seriously affects the performance of the AMDataView scene.

If we have time, down the road we should re-enable the BSP scene index and try to find out where it's causing the crash.