watch for containment destruction; for people who like torturing plasma in weird nd wonderful ways

BUG:166824

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=833976
This commit is contained in:
Aaron J. Seigo 2008-07-17 18:36:55 +00:00
parent 9fce6a940f
commit 98e46ae18a

View File

@ -60,6 +60,7 @@ public:
void initFilters(); void initFilters();
void init(); void init();
void initRunningApplets(); void initRunningApplets();
void containmentDestroyed();
/** /**
* Tracks a new running applet * Tracks a new running applet
@ -222,7 +223,16 @@ QString AppletBrowserWidget::application()
void AppletBrowserWidget::setContainment(Plasma::Containment *containment) void AppletBrowserWidget::setContainment(Plasma::Containment *containment)
{ {
if (d->containment != containment) { if (d->containment != containment) {
if (d->containment) {
d->containment->disconnect(this);
}
d->containment = containment; d->containment = containment;
if (d->containment) {
connect(d->containment, SIGNAL(destroyed(QObject*)), this, SLOT(containmentDestroyed()));
}
d->initRunningApplets(); d->initRunningApplets();
} }
} }
@ -232,6 +242,11 @@ Containment *AppletBrowserWidget::containment() const
return d->containment; return d->containment;
} }
void AppletBrowserWidgetPrivate::containmentDestroyed()
{
containment = 0;
}
void AppletBrowserWidget::addApplet() void AppletBrowserWidget::addApplet()
{ {
if (!d->containment) { if (!d->containment) {