remove the extender item from attachedExtenderItems if it gets destroyed for whatever reason
hopefully fixes some crashers, such as BUG:217942 svn path=/trunk/KDE/kdelibs/; revision=1061477
This commit is contained in:
parent
48af57c6ce
commit
947045b018
@ -551,6 +551,7 @@ void ExtenderPrivate::addExtenderItem(ExtenderItem *item, const QPointF &pos)
|
||||
return;
|
||||
}
|
||||
|
||||
QObject::connect(item, SIGNAL(destroyed(QObject *)), q, SLOT(extenderItemDestroyed(QObject *)));
|
||||
attachedExtenderItems.append(item);
|
||||
q->itemHoverLeaveEvent(item);
|
||||
q->itemAddedEvent(item, pos);
|
||||
@ -721,6 +722,14 @@ ExtenderGroup *ExtenderPrivate::findGroup(const QString &name) const
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ExtenderPrivate::extenderItemDestroyed(QObject *object)
|
||||
{
|
||||
ExtenderItem *item = qobject_cast<ExtenderItem *>(object);
|
||||
if (item && attachedExtenderItems.contains(item)) {
|
||||
removeExtenderItem(item);
|
||||
}
|
||||
}
|
||||
|
||||
bool Extender::isEmpty() const
|
||||
{
|
||||
//If there are no items or only groups, consider this extender empty
|
||||
|
@ -298,6 +298,8 @@ class PLASMA_EXPORT Extender : public QGraphicsWidget
|
||||
private:
|
||||
ExtenderPrivate *const d;
|
||||
|
||||
Q_PRIVATE_SLOT(d, void extenderItemDestroyed(QObject *object))
|
||||
|
||||
friend class ExtenderPrivate;
|
||||
friend class ExtenderGroup;
|
||||
friend class ExtenderGroupPrivate;
|
||||
|
Loading…
Reference in New Issue
Block a user