mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-11 02:25:34 -04:00
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:
parent
bb904ea8e8
commit
ba1befd560
7 changed files with 898 additions and 68 deletions
61
retroshare-gui/src/gui/PluginManager.h
Normal file
61
retroshare-gui/src/gui/PluginManager.h
Normal 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
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue