roviz  0.7
Code Documentation of roviz
plugin_manager_p.h
1 #ifndef PLUGIN_MANAGER_P
2 #define PLUGIN_MANAGER_P
3 
4 #include <QStringList>
5 #include <QList>
6 #include <QSettings>
7 #include "plugin_meta_data.h"
8 
9 class PluginManager;
10 class PluginClassInfo;
11 
12 class PluginManagerPrivate : public QObject
13 {
14  Q_OBJECT
15 
16 public:
17 
18  explicit PluginManagerPrivate(PluginManager* parent = nullptr);
19 
20  bool loadPlugins();
21  QString const& lastError();
22  QStringList const& pluginPath();
23  void setPluginPath(const QStringList &folderList);
24  QList<PluginMetaData*> pluginMetaDataList();
25 
26  void addPluginComponent(QMetaObject derivedMeta, QMetaObject baseMeta);
27  QObject* createInstance(QString classNam);
28  QVector<QObject*> createInstances(QMetaObject interfaceObject);
29  void serializePluginMetaData(PluginMetaData* data);
30 
31 private:
32  bool addPluginFolder(QString const& folder);
33  bool removePluginFolder(QString const& folder);
34  void checkPluginRegister(PluginMetaData* metaData);
35  void registerNewPlugin(PluginMetaData* metaData);
36  bool readPluginFoldersFromSettings();
37  bool verifyPluginMetaData();
38  bool isPluginCompatible(QString const& pluginApiVersion);
39  bool saveSettings();
40  static bool compareMetaObjects(const QMetaObject* m1, const QMetaObject* m2);
41 
42  QStringList _pluginFolders;
43  QStringList _errorList;
44  QList<const PluginClassInfo*> _classInfoList;
45  QList<PluginMetaData*> _pluginMetaDataList;
46  bool initalStartup = false;
47 
48 signals:
49 // void newPluginDetected(PluginMetaData* metaData);
50  void metaDataChanged(PluginMetaData* metaData);
51 };
52 
53 #endif // PLUGIN_MANAGER_P
The PluginManager class.
Definition: plugin_manager.h:14
Definition: plugin_meta_data.h:7
Definition: plugin_manager.cpp:21
Definition: plugin_manager_p.h:12