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 | |
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')
-rw-r--r-- | sigtools/PluginLoader.cpp | 22 | ||||
-rw-r--r-- | sigtools/PluginTreeModel.cpp | 15 |
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(); |