a couple of related fixes to make destroying containments work a lot better
svn path=/trunk/KDE/kdelibs/; revision=889816
This commit is contained in:
parent
4d962352a9
commit
509632ff64
12
applet.cpp
12
applet.cpp
@ -133,7 +133,9 @@ Applet::Applet(QObject *parentObject, const QVariantList &args)
|
||||
|
||||
Applet::~Applet()
|
||||
{
|
||||
if (d->extender) {
|
||||
if (d->transient) {
|
||||
d->resetConfigurationObject();
|
||||
} else if (d->extender) {
|
||||
//This would probably be nicer if it was located in extender. But in it's dtor, this won't
|
||||
//work since when that get's called, the applet's config() isn't accessible anymore. (same
|
||||
//problem with calling saveState(). Doing this in saveState() might be a possibility, but
|
||||
@ -150,10 +152,6 @@ Applet::~Applet()
|
||||
d->extender->saveState();
|
||||
}
|
||||
|
||||
if (d->transient) {
|
||||
d->resetConfigurationObject();
|
||||
}
|
||||
|
||||
delete d;
|
||||
}
|
||||
|
||||
@ -2032,10 +2030,12 @@ void AppletPrivate::themeChanged()
|
||||
|
||||
void AppletPrivate::resetConfigurationObject()
|
||||
{
|
||||
mainConfigGroup()->deleteGroup();
|
||||
if (mainConfig) {
|
||||
mainConfig->deleteGroup();
|
||||
delete mainConfig;
|
||||
mainConfig = 0;
|
||||
}
|
||||
}
|
||||
|
||||
uint AppletPrivate::s_maxAppletId = 0;
|
||||
uint AppletPrivate::s_maxZValue = 0;
|
||||
|
@ -111,6 +111,11 @@ Containment::Containment(QObject *parent, const QVariantList &args)
|
||||
|
||||
Containment::~Containment()
|
||||
{
|
||||
if (Applet::d->transient) {
|
||||
Applet::d->resetConfigurationObject();
|
||||
Applet::d->transient = false;
|
||||
}
|
||||
|
||||
delete d;
|
||||
}
|
||||
|
||||
|
2
view.cpp
2
view.cpp
@ -272,7 +272,7 @@ Containment *View::swapContainment(Plasma::Containment *existing, const QString
|
||||
oldConfig.copyTo(&newConfig);
|
||||
|
||||
if (old == d->containment) {
|
||||
// set our containment to the new one
|
||||
// set our containment to the new one, if the the old containment was us
|
||||
setContainment(c);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user