plugin system: plugin management features added (loading and unloading)

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1008 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
beardog_uk 2009-02-05 15:29:43 +00:00
parent bb904ea8e8
commit ba1befd560
7 changed files with 898 additions and 68 deletions

View file

@ -0,0 +1,61 @@
#ifndef _PLUGIN_MANAGER_H_
#define _PLUGIN_MANAGER_H_
#include <QObject>
#include <QString>
#include <QStringList>
#include <QList>
#include <QPluginLoader>
#include <QVector>
class PluginInterface;
class PluginManager: public QObject
{
Q_OBJECT
public:
PluginManager();
~PluginManager();
void defaultLoad(QString baseDir = "");
QStringList availablePlugins();
QStringList loadedPlugins();
bool isLoaded(QString pluginName);
void unloadPlugin(QString pluginName);
public slots:
void loadPlugin(QString pluginName);
void readPluginFromFile(QString fullFileName);
// void loadPluginFromFile(QString fileName);
signals:
void loadDone(QString pluginName, QWidget* pluginWidget);
void loadFailed(QString pluginName, QString errorMessage);
void installComplete(QString pluginName);
void installFailed(QString pluginFileName, QString errorMessage);
protected:
//QList<QPluginLoader*> loaders;
QList<QWidget*> widgets;
// QList<int> widgets;
QStringList fileNames;
QList<QString> names;
// QList<int> states;
PluginInterface* loadPluginInterface(QString fileName,
QString& errorMessage) ;
};
#endif