support a corona child of an applet

this is an ad-hoc thing for the systray, would be better not having something like that
This commit is contained in:
Marco Martin 2014-02-03 18:47:51 +01:00
parent b68bbca6c8
commit 362a5017b6
2 changed files with 12 additions and 9 deletions

View File

@ -358,12 +358,21 @@ KConfigGroup *AppletPrivate::mainConfigGroup()
return mainConfig;
}
Containment *c = q->containment();
Plasma::Applet *parentApplet = 0;
if (c && c->corona()) {
parentApplet = qobject_cast<Plasma::Applet *>(c->corona()->parent());
}
if (q->isContainment()) {
Corona *corona = static_cast<Containment*>(q)->corona();
KConfigGroup containmentConfig;
//qDebug() << "got a corona, baby?" << (QObject*)corona << (QObject*)q;
if (corona) {
if (parentApplet) {
containmentConfig = parentApplet->config();
containmentConfig = KConfigGroup(&containmentConfig, "Containments");
} else if (corona) {
containmentConfig = KConfigGroup(corona->config(), "Containments");
} else {
containmentConfig = KConfigGroup(KSharedConfig::openConfig(), "Containments");
@ -373,14 +382,7 @@ KConfigGroup *AppletPrivate::mainConfigGroup()
} else {
KConfigGroup appletConfig;
Containment *c = q->containment();
Applet *parentApplet = qobject_cast<Applet *>(q->parent());
if (parentApplet && parentApplet != static_cast<Applet *>(c)) {
// this applet is nested inside another applet! use it's config
// as the parent group in the config
appletConfig = parentApplet->config();
appletConfig = KConfigGroup(&appletConfig, "Applets");
} else if (c) {
if (c) {
// applet directly in a Containment, as usual
appletConfig = c->config();
appletConfig = KConfigGroup(&appletConfig, "Applets");

View File

@ -84,6 +84,7 @@ AppletInterface::AppletInterface(DeclarativeAppletScript *script, QQuickItem *pa
this, &ContainmentInterface::screenChanged);
}
setProperty("_plasma_applet", QVariant::fromValue(applet()));
}
AppletInterface::~AppletInterface()