From 2c84f169a1c00aa7b8301711c814ebe051cd1862 Mon Sep 17 00:00:00 2001 From: "Aaron J. Seigo" Date: Tue, 16 Feb 2010 06:47:37 +0000 Subject: [PATCH] in case a script engine does not add the standard pages (which is a bug in the script engine), at least don't crash BUG:226823 svn path=/branches/KDE/4.4/kdelibs/; revision=1090828 --- applet.cpp | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/applet.cpp b/applet.cpp index 8f90cc936..cc63aae55 100644 --- a/applet.cpp +++ b/applet.cpp @@ -1712,6 +1712,7 @@ void Applet::showConfigurationInterface() return; } + d->publishUI.publishCheckbox = 0; if (d->package && d->configLoader) { KConfigDialog *dialog = 0; @@ -1878,29 +1879,31 @@ void AppletPrivate::configDialogFinished() } #ifdef ENABLE_REMOTE_WIDGETS - q->config().writeEntry("Share", publishUI.publishCheckbox->isChecked()); + if (publishUI.publishCheckbox) { + q->config().writeEntry("Share", publishUI.publishCheckbox->isChecked()); - if (publishUI.publishCheckbox->isChecked()) { - QString resourceName = - i18nc("%1 is the name of a plasmoid, %2 the name of the machine that plasmoid is published on", - "%1 on %2", q->name(), QHostInfo::localHostName()); - q->publish(Plasma::ZeroconfAnnouncement, resourceName); - if (publishUI.allUsersCheckbox->isChecked()) { - if (!AuthorizationManager::self()->d->matchingRule(resourceName, Credentials())) { - AuthorizationRule *rule = new AuthorizationRule(resourceName, ""); - rule->setPolicy(AuthorizationRule::Allow); - rule->setTargets(AuthorizationRule::AllUsers); - AuthorizationManager::self()->d->rules.append(rule); + if (publishUI.publishCheckbox->isChecked()) { + QString resourceName = + i18nc("%1 is the name of a plasmoid, %2 the name of the machine that plasmoid is published on", + "%1 on %2", q->name(), QHostInfo::localHostName()); + q->publish(Plasma::ZeroconfAnnouncement, resourceName); + if (publishUI.allUsersCheckbox->isChecked()) { + if (!AuthorizationManager::self()->d->matchingRule(resourceName, Credentials())) { + AuthorizationRule *rule = new AuthorizationRule(resourceName, ""); + rule->setPolicy(AuthorizationRule::Allow); + rule->setTargets(AuthorizationRule::AllUsers); + AuthorizationManager::self()->d->rules.append(rule); + } + } else { + AuthorizationRule *matchingRule = + AuthorizationManager::self()->d->matchingRule(resourceName, Credentials()); + if (matchingRule) { + AuthorizationManager::self()->d->rules.removeAll(matchingRule); + } } } else { - AuthorizationRule *matchingRule = - AuthorizationManager::self()->d->matchingRule(resourceName, Credentials()); - if (matchingRule) { - AuthorizationManager::self()->d->rules.removeAll(matchingRule); - } + q->unpublish(); } - } else { - q->unpublish(); } #endif