summaryrefslogtreecommitdiffstats
path: root/sigtools/PluginLoader.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-03-26 07:33:05 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-03-26 07:33:05 -0400
commit31194b3f71fb92105e43433c0b5a82b6bc7ae38d (patch)
tree6d6d7ee41b541eb0852ca7d123a8ed4fdbe2cf92 /sigtools/PluginLoader.cpp
parent62ad5bdb02a20117691078bd6ffe0914e68709bf (diff)
downloadsigen-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.cpp22
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");