summaryrefslogtreecommitdiffstats
path: root/sigtools
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
parent62ad5bdb02a20117691078bd6ffe0914e68709bf (diff)
downloadsigen-31194b3f71fb92105e43433c0b5a82b6bc7ae38d.tar.gz
sigen-31194b3f71fb92105e43433c0b5a82b6bc7ae38d.tar.xz
sigen-31194b3f71fb92105e43433c0b5a82b6bc7ae38d.zip
Simplify fetching data from plugins with PluginBase
Diffstat (limited to 'sigtools')
-rw-r--r--sigtools/PluginLoader.cpp22
-rw-r--r--sigtools/PluginTreeModel.cpp15
2 files changed, 9 insertions, 28 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");
diff --git a/sigtools/PluginTreeModel.cpp b/sigtools/PluginTreeModel.cpp
index ad544e93..fda0a822 100644
--- a/sigtools/PluginTreeModel.cpp
+++ b/sigtools/PluginTreeModel.cpp
@@ -47,21 +47,12 @@ void PluginTreeModel::setTypes(const QStringList& types)
const QStringList names = PluginLoader::availablePlugins(type);
foreach (const QString& name, names)
{
+ PluginBase* plugin = PluginLoader::plugin(type, name);
ClassData data;
data.m_type = type;
data.m_name = name;
- if (type == "Arena")
- {
- ArenaPlugin* plugin = PluginLoader::pluginForArena(name);
- data.m_description = plugin->description(name);
- data.m_icon = plugin->icon(name);
- }
- else if (type == "Canvas")
- {
- CanvasPlugin* plugin = PluginLoader::pluginForCanvas(name);
- data.m_description = plugin->description(name);
- data.m_icon = plugin->icon(name);
- }
+ data.m_description = plugin->description(name);
+ data.m_icon = plugin->icon(name);
beginInsertRows(QModelIndex(), m_entries.size(), m_entries.size());
m_entries.append(data);
endInsertRows();