From 05d6ec6401f3ee3ee70af69cb52e36139108aaea Mon Sep 17 00:00:00 2001 From: "Aaron J. Seigo" Date: Sun, 25 May 2008 18:38:07 +0000 Subject: [PATCH] remove the args Applet injects to hide that impl detail from subclasses svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=812568 --- CMakeLists.txt | 104 ++++++++++++++++++-------------------- applet.cpp | 12 +++++ includes/AppletScript | 2 +- includes/DataEngineScript | 2 +- includes/PushButton | 2 +- includes/RunnerScript | 2 +- includes/ScriptEngine | 2 +- 7 files changed, 67 insertions(+), 59 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ddb64abf7..bfc0cc22c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -177,65 +177,61 @@ install(FILES install(FILES - includes/AbstractRunner - includes/AnimationDriver - includes/Animator - includes/Applet - includes/AppletBrowser - includes/ConfigXml - includes/Corona - includes/Containment - includes/Dialog - includes/Plasma - includes/Package - includes/PackageStructure - includes/Theme - includes/DataContainer - includes/DataEngine - includes/DataEngineManager - includes/RunnerContext - includes/RunnerManager - includes/QueryMatch - includes/Service - includes/ServiceJob - includes/Svg - includes/PanelSvg - includes/UiLoader - includes/PackageMetadata - includes/View - includes/Delegate - DESTINATION ${INCLUDE_INSTALL_DIR}/KDE/Plasma) - -install(FILES - includes/Label - includes/LineEdit - includes/PushButton - includes/RadioButton - includes/WebContent - DESTINATION ${INCLUDE_INSTALL_DIR}/KDE/Plasma) - +includes/AbstractRunner +includes/AnimationDriver +includes/Animator +includes/Applet +includes/AppletBrowser +includes/AppletScript +includes/CheckBox +includes/ComboBox +includes/ConfigXml +includes/Containment +includes/Corona +includes/DataContainer +includes/DataEngine +includes/DataEngineManager +includes/DataEngineScript +includes/Delegate +includes/Dialog +includes/GroupBox +includes/Label +includes/LineEdit +includes/Package +includes/PackageMetadata +includes/PackageStructure +includes/PanelSvg +includes/Plasma +includes/PushButton +includes/QueryMatch +includes/RadioButton +includes/RunnerContext +includes/RunnerManager +includes/RunnerScript +includes/ScriptEngine +includes/Service +includes/ServiceJob +includes/Svg +includes/TextEdit +includes/Theme +includes/UiLoader +includes/View +includes/WebContent +DESTINATION ${INCLUDE_INSTALL_DIR}/KDE/Plasma) if(QT_QTOPENGL_FOUND AND OPENGL_FOUND) -install(FILES - includes/GLApplet - DESTINATION ${INCLUDE_INSTALL_DIR}/KDE/Plasma) + install(FILES + includes/GLApplet + DESTINATION ${INCLUDE_INSTALL_DIR}/KDE/Plasma) endif(QT_QTOPENGL_FOUND AND OPENGL_FOUND) install(FILES - includes/ScriptEngine - includes/DataEngineScript - includes/RunnerScript - includes/AppletScript - DESTINATION ${INCLUDE_INSTALL_DIR}/KDE/Plasma/Scripting) - - -install(FILES - servicetypes/plasma-animator.desktop - servicetypes/plasma-applet.desktop - servicetypes/plasma-containment.desktop - servicetypes/plasma-dataengine.desktop - servicetypes/plasma-packagestructure.desktop - servicetypes/plasma-runner.desktop + servicetypes/plasma-animator.desktop + servicetypes/plasma-applet.desktop + servicetypes/plasma-containment.desktop + servicetypes/plasma-dataengine.desktop + servicetypes/plasma-packagestructure.desktop + servicetypes/plasma-runner.desktop servicetypes/plasma-scriptengine.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR}) diff --git a/applet.cpp b/applet.cpp index 281971e4a..0d81e7ec5 100644 --- a/applet.cpp +++ b/applet.cpp @@ -94,6 +94,18 @@ Applet::Applet(QObject* parentObject, const QVariantList& args) d(new Private(KService::serviceByStorageId(args.count() > 0 ? args[0].toString() : QString()), args.count() > 1 ? args[1].toInt() : 0, this)) { + // now remove those first two items since those are managed by Applet and subclasses shouldn't + // need to worry about them. yes, it violates the constness of this var, but it lets us add + // or remove items later while applets can just pretend that their args always start at 0 + QVariantList &mutableArgs = const_cast(args); + if (!mutableArgs.isEmpty()) { + mutableArgs.removeFirst(); + + if (!mutableArgs.isEmpty()) { + mutableArgs.removeFirst(); + } + } + setParent(parentObject); // WARNING: do not access config() OR globalConfig() in this method! // that requires a scene, which is not available at this point diff --git a/includes/AppletScript b/includes/AppletScript index 8b18b08a7..b003ef6a5 100644 --- a/includes/AppletScript +++ b/includes/AppletScript @@ -1 +1 @@ -#include "../../../plasma/scripting/appletscript.h" +#include "../../plasma/scripting/appletscript.h" diff --git a/includes/DataEngineScript b/includes/DataEngineScript index eea0b5b80..1a1c52a94 100644 --- a/includes/DataEngineScript +++ b/includes/DataEngineScript @@ -1 +1 @@ -#include "../../../plasma/scripting/dataenginescript.h" +#include "../../plasma/scripting/dataenginescript.h" diff --git a/includes/PushButton b/includes/PushButton index 8854ebfd0..f3634f454 100644 --- a/includes/PushButton +++ b/includes/PushButton @@ -1 +1 @@ -#include "../../../plasma/widgets/pushbutton.h" +#include "../../plasma/widgets/pushbutton.h" diff --git a/includes/RunnerScript b/includes/RunnerScript index 8dcd25225..f078d03f8 100644 --- a/includes/RunnerScript +++ b/includes/RunnerScript @@ -1 +1 @@ -#include "../../../plasma/scripting/runnerscript.h" +#include "../../plasma/scripting/runnerscript.h" diff --git a/includes/ScriptEngine b/includes/ScriptEngine index 107f94498..472eee1a3 100644 --- a/includes/ScriptEngine +++ b/includes/ScriptEngine @@ -1 +1 @@ -#include "../../../plasma/scripting/scriptengine.h" +#include "../../plasma/scripting/scriptengine.h"