diff --git a/abstractrunner.cpp b/abstractrunner.cpp index 408185f67..1aad74cf7 100644 --- a/abstractrunner.cpp +++ b/abstractrunner.cpp @@ -24,7 +24,6 @@ #include #include #include -#include #include #include @@ -36,70 +35,13 @@ #include #include -#include "scripting/runnerscript.h" - +#include "private/abstractrunner_p.h" #include "runnercontext.h" +#include "scripting/runnerscript.h" namespace Plasma { -class AbstractRunnerPrivate -{ -public: - AbstractRunnerPrivate(AbstractRunner *r, KService::Ptr service) - : priority(AbstractRunner::NormalPriority), - speed(AbstractRunner::NormalSpeed), - blackListed(0), - script(0), - runnerDescription(service), - runner(r), - fastRuns(0), - package(0), - hasRunOptions(false) - { - if (runnerDescription.isValid()) { - const QString api = runnerDescription.property("X-Plasma-API").toString(); - if (!api.isEmpty()) { - const QString path = KStandardDirs::locate("data", - "plasma/runners/" + runnerDescription.pluginName() + '/'); - PackageStructure::Ptr structure = - Plasma::packageStructure(api, Plasma::RunnerComponent); - structure->setPath(path); - package = new Package(path, structure); - - script = Plasma::loadScriptEngine(api, runner); - if (!script) { - kDebug() << "Could not create a(n)" << api << "ScriptEngine for the" - << runnerDescription.name() << "Runner."; - delete package; - package = 0; - } - } - } - } - - ~AbstractRunnerPrivate() - { - delete script; - script = 0; - delete package; - package = 0; - } - - AbstractRunner::Priority priority; - AbstractRunner::Speed speed; - RunnerContext::Types blackListed; - RunnerScript *script; - KPluginInfo runnerDescription; - AbstractRunner *runner; - int fastRuns; - Package *package; - QHash actions; - QList syntaxes; - bool hasRunOptions; - QReadWriteLock speedLock; -}; - K_GLOBAL_STATIC(QMutex, s_bigLock) AbstractRunner::AbstractRunner(QObject *parent, const QString &serviceId) @@ -357,6 +299,46 @@ void AbstractRunner::init() } } +AbstractRunnerPrivate::AbstractRunnerPrivate(AbstractRunner *r, KService::Ptr service) + : priority(AbstractRunner::NormalPriority), + speed(AbstractRunner::NormalSpeed), + blackListed(0), + script(0), + runnerDescription(service), + runner(r), + fastRuns(0), + package(0), + hasRunOptions(false) +{ + if (runnerDescription.isValid()) { + const QString api = runnerDescription.property("X-Plasma-API").toString(); + if (!api.isEmpty()) { + const QString path = KStandardDirs::locate("data", + "plasma/runners/" + runnerDescription.pluginName() + '/'); + PackageStructure::Ptr structure = + Plasma::packageStructure(api, Plasma::RunnerComponent); + structure->setPath(path); + package = new Package(path, structure); + + script = Plasma::loadScriptEngine(api, runner); + if (!script) { + kDebug() << "Could not create a(n)" << api << "ScriptEngine for the" + << runnerDescription.name() << "Runner."; + delete package; + package = 0; + } + } + } +} + +AbstractRunnerPrivate::~AbstractRunnerPrivate() +{ + delete script; + script = 0; + delete package; + package = 0; +} + } // Plasma namespace #include "abstractrunner.moc" diff --git a/private/abstractrunner_p.h b/private/abstractrunner_p.h new file mode 100644 index 000000000..266c7fcea --- /dev/null +++ b/private/abstractrunner_p.h @@ -0,0 +1,53 @@ +/* + * Copyright 2006-2009 Aaron Seigo + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef ABSTRACTRUNNER_P_H +#define ABSTRACTRUNNER_P_H + +#include + +namespace Plasma +{ + +class AbstractRunner; + +class AbstractRunnerPrivate +{ +public: + AbstractRunnerPrivate(AbstractRunner *r, KService::Ptr service); + ~AbstractRunnerPrivate(); + + AbstractRunner::Priority priority; + AbstractRunner::Speed speed; + RunnerContext::Types blackListed; + RunnerScript *script; + KPluginInfo runnerDescription; + AbstractRunner *runner; + int fastRuns; + Package *package; + QHash actions; + QList syntaxes; + bool hasRunOptions; + QReadWriteLock speedLock; +}; + +} // namespace Plasma +#endif + +