On March 20, 2010, Yuen Hoe Lim wrote: > Hmmm, so I've been looking at the runner-related classes in Plasma::. Is it > possible at the moment to load (say make an AbstractRunner out of) a > scripted runner without installing it, a'la Applet::loadPlasmoid for > applets? I can't seem to find a way to do this in the API docs, nor can I > find an existing example of something like that....
this should work for installed runners: QStringList runners; runners << targetRunner; Plasma::RunnerManager *manager = new Plasma::RunnerManager(parent); manager->setAllowedRunners(runners); but for non-installed runners, there is indeed no recourse using RunnerManager. to make matters more complex, AbstractRunner's ctor is protected (since one is supposed to use RunnerManager rather than messing about with runners directly). i think we will have to extend RunnerManager's API in some way. perhaps something like: Plasma::RunnerManager *manager = new Plasma::RunnerManager(parent); manager->setAllowedRunners(QStringList()); // deny all runners! manager->addRunner(pathToDesktopFileInPackage); in this model, Plasma::RunnerManager::addRunner would have two versions: one that takes a KService and expects it to be installed and one that takes a path to a package and behaves like Applet::loadPlasmoid. this will require a small adjustment in AbstractRunner as well: it currently creates that ScriptEngine in the AbstractRunnerPrivate constructor which assumes it to be an installed plugin. so AbstractRunner needs a new constructor which takes a path (just like the Applet ctor used from loadPlasmoid) and adjust AbstractRunnerPrivate to work in both cases. -- Aaron J. Seigo humru othro a kohnu se GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43 KDE core developer sponsored by Qt Development Frameworks _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel