PluginFactory: Map plugins by type

This commit is contained in:
Lukas W
2015-01-29 14:00:29 +01:00
parent dc1f8dc365
commit c28b0b5407
8 changed files with 32 additions and 45 deletions

View File

@@ -44,6 +44,7 @@ public:
bool isNull() const {return library == 0;}
};
typedef QList<PluginInfo> PluginInfoList;
typedef QMultiMap<Plugin::PluginTypes, Plugin::Descriptor*> DescriptorMap;
PluginFactory();
~PluginFactory();
@@ -54,6 +55,7 @@ public:
/// Returns a list of all found plugins' descriptors.
const Plugin::DescriptorList descriptors() const;
const Plugin::DescriptorList descriptors(Plugin::PluginTypes type) const;
/// Returns a list of all found plugins' PluginFactory::PluginInfo objects.
const PluginInfoList& pluginInfos() const;
@@ -71,7 +73,7 @@ public slots:
void discoverPlugins();
private:
Plugin::DescriptorList m_descriptorList;
DescriptorMap m_descriptors;
PluginInfoList m_pluginInfos;
QHash<QString, QString> m_errors;