Reset the d->failureText to 0 at that point, as the qDeleteAll below

will first delete the d->failureText object and than trigger a relayout
which will access the invalid d->failureText in Applet::contentSize().

=> No crash anymore

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=749708
This commit is contained in:
Tobias Koenig 2007-12-17 17:21:34 +00:00
parent 5510140da1
commit 92e6a35a80

View File

@ -672,6 +672,8 @@ void Applet::setFailedToLaunch(bool failed, const QString& reason)
d->failed = failed; d->failed = failed;
prepareGeometryChange(); prepareGeometryChange();
d->failureText = 0;
qDeleteAll(QGraphicsItem::children()); qDeleteAll(QGraphicsItem::children());
delete layout(); delete layout();
@ -690,8 +692,6 @@ void Applet::setFailedToLaunch(bool failed, const QString& reason)
.brush(QPalette::Normal).color()); .brush(QPalette::Normal).color());
failureLayout->addItem(d->failureText); failureLayout->addItem(d->failureText);
setGeometry(QRectF(geometry().topLeft(), d->failureText->sizeHint())); setGeometry(QRectF(geometry().topLeft(), d->failureText->sizeHint()));
} else {
d->failureText = 0;
} }
update(); update();