[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/libs/plasma
From: Aaron J. Seigo <aseigo () kde ! org>
Date: 2008-01-11 18:22:20
Message-ID: 1200075740.336360.19547.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 760003 by aseigo:
make globalConfig() work properly even for containments
BUG:155454
M +20 -5 applet.cpp
--- trunk/KDE/kdebase/workspace/libs/plasma/applet.cpp #760002:760003
@@ -507,11 +507,14 @@
KConfigGroup Applet::globalConfig() const
{
KConfigGroup globalAppletConfig;
- if (containment() && containment()->corona()) {
- KSharedConfig::Ptr coronaConfig = containment()->corona()->config();
- globalAppletConfig = KConfigGroup(coronaConfig, "AppletGlobals");
+ const Containment *c = isContainment() ? dynamic_cast<const Containment*>(this) : containment();
+ QString group = isContainment() ? "ContainmentGlobals" : "AppletGlobals";
+
+ if (c && c->corona()) {
+ KSharedConfig::Ptr coronaConfig = c->corona()->config();
+ globalAppletConfig = KConfigGroup(coronaConfig, group);
} else {
- globalAppletConfig = KConfigGroup(KGlobal::config(), "AppletGlobals");
+ globalAppletConfig = KConfigGroup(KGlobal::config(), group);
}
return KConfigGroup(&globalAppletConfig, globalName());
@@ -935,14 +938,26 @@
Containment* Applet::containment() const
{
+/*
+ * while this is probably "more correct", much of the code in applet assumes containment
+ * returns zero in the case that this is a containment itself.
+ * if (isContainment()) {
+ return dynamic_cast<Containment*>(const_cast<Applet*>(this));
+ }
+*/
+
QGraphicsItem *parent = parentItem();
Containment *c = 0;
+
while (parent) {
- if ((c = dynamic_cast<Containment*>(parent))) {
+ Containment *possibleC = dynamic_cast<Containment*>(parent);
+ if (possibleC && possibleC->isContainment()) {
+ c = possibleC;
break;
}
parent = parent->parentItem();
}
+
return c;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic