diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2009-03-26 07:33:05 -0400 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2009-03-26 07:33:05 -0400 |
| commit | 31194b3f71fb92105e43433c0b5a82b6bc7ae38d (patch) | |
| tree | 6d6d7ee41b541eb0852ca7d123a8ed4fdbe2cf92 /sigtools/PluginLoader.cpp | |
| parent | 62ad5bdb02a20117691078bd6ffe0914e68709bf (diff) | |
| download | sigen-31194b3f71fb92105e43433c0b5a82b6bc7ae38d.tar.gz sigen-31194b3f71fb92105e43433c0b5a82b6bc7ae38d.tar.xz sigen-31194b3f71fb92105e43433c0b5a82b6bc7ae38d.zip | |
Simplify fetching data from plugins with PluginBase
Diffstat (limited to 'sigtools/PluginLoader.cpp')
| -rw-r--r-- | sigtools/PluginLoader.cpp | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/sigtools/PluginLoader.cpp b/sigtools/PluginLoader.cpp index 051632e6..e7d787b6 100644 --- a/sigtools/PluginLoader.cpp +++ b/sigtools/PluginLoader.cpp @@ -91,26 +91,16 @@ void PluginLoader::Private::refresh(const QString& type) KPluginFactory *factory = loader.factory(); if (factory) { - QStringList plugins; - QObject* sigenPlugin; + PluginBase* plugin; if (type == "Arena") - { - ArenaPlugin* plugin = factory->create<ArenaPlugin>(this); - if (plugin) - plugins = plugin->arenas(); - sigenPlugin = plugin; - } + plugin = factory->create<ArenaPlugin>(this); else if (type == "Canvas") - { - CanvasPlugin* plugin = factory->create<CanvasPlugin>(this); - if (plugin) - plugins = plugin->canvases(); - sigenPlugin = plugin; - } + plugin = factory->create<CanvasPlugin>(this); else KMessageBox::information(NULL, QString("The plugin type \"Sigen/%1\" is not supported.").arg(type), "Unsupported plugin type"); - foreach (const QString& plugin, plugins) - m_available[type][plugin] = Service(service, sigenPlugin); + QStringList classes = plugin->classList(); + foreach (const QString& className, classes) + m_available[type][className] = Service(service, plugin); } else KMessageBox::error(NULL, QString("The plugin of type \"Sigen/%1\" with name \"%2\" is not a valid Sigen plugin. The error was:\n%3").arg(type).arg(service->name()).arg(loader.errorString()), "Plugin loading error"); |
