From 31194b3f71fb92105e43433c0b5a82b6bc7ae38d Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Thu, 26 Mar 2009 07:33:05 -0400 Subject: Simplify fetching data from plugins with PluginBase --- sigtools/PluginLoader.cpp | 22 ++++++---------------- sigtools/PluginTreeModel.cpp | 15 +++------------ 2 files changed, 9 insertions(+), 28 deletions(-) (limited to 'sigtools') 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(this); - if (plugin) - plugins = plugin->arenas(); - sigenPlugin = plugin; - } + plugin = factory->create(this); else if (type == "Canvas") - { - CanvasPlugin* plugin = factory->create(this); - if (plugin) - plugins = plugin->canvases(); - sigenPlugin = plugin; - } + plugin = factory->create(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(); -- cgit