17 #ifndef GEPETTO_GUI_PLUGINMANAGERDIALOG_HH 18 #define GEPETTO_GUI_PLUGINMANAGERDIALOG_HH 22 #include <QSignalMapper> 24 #include <QPluginLoader> 25 #include <QTableWidgetItem> 30 class PluginManagerDialog;
37 typedef QPair <QString, QPluginLoader*>
Pair;
38 typedef QMap <QString, QPluginLoader*>
Map;
39 typedef QPair <QString, QString>
PyPair;
40 typedef QMap <QString, QString>
PyMap;
43 qDeleteAll (plugins_);
50 template <
typename Interface> Interface*
getFirstOf ();
52 template <
typename Interface> QList <Interface*>
get ();
54 static QIcon
icon (
const QPluginLoader* pl);
56 static QString
status (
const QPluginLoader* pl);
62 bool declarePlugin (
const QString& name, QWidget* parent = NULL);
85 template <
typename Interface>
86 static const Interface* const_instance_cast (
const QPluginLoader* pl);
88 QMap <QString, QPluginLoader*> plugins_;
89 static QList <QDir> pluginDirs_;
90 QMap <QString, QString> pyplugins_;
102 void onItemChanged (QTableWidgetItem* current, QTableWidgetItem* previous);
104 void load (
const QString& name);
105 void unload (
const QString& name);
109 void pyLoad (
const QString& name);
110 void pyUnload (
const QString& name);
116 static const int P_NAME;
117 static const int P_FILE;
118 static const int P_FULLPATH;
119 static const int P_VERSION;
123 ::Ui::PluginManagerDialog *ui_;
128 template <
typename Interface>
131 foreach (QPluginLoader* p, plugins_) {
134 if (check && check->
isInit ()) {
135 Interface* pi = qobject_cast <Interface*> (p->instance());
143 template <
typename Interface>
146 QList <Interface*> list;
147 foreach (QPluginLoader* p, plugins_) {
150 if (check && check->
isInit ()) {
151 Interface* pi = qobject_cast <Interface*> (p->instance());
160 template <
typename Interface>
161 const Interface* PluginManager::const_instance_cast (
const QPluginLoader* pl)
163 return (
const Interface*) qobject_cast <Interface*> (const_cast <QPluginLoader*>(pl)->instance());
168 #endif // GEPETTO_GUI_PLUGINMANAGERDIALOG_HH Definition: pluginmanagerdialog.hh:93
QMap< QString, QPluginLoader * > Map
Definition: pluginmanagerdialog.hh:38
bool loadPlugin(const QString &name)
void load(const QString &name)
Definition: dialogloadenvironment.hh:23
bool loadPyPlugin(const QString &name)
bool isInit() const
Definition: plugin-interface.hh:54
void pyUnload(const QString &name)
static QString status(const QPluginLoader *pl)
void onItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)
Definition: plugin-interface.hh:33
bool unloadPlugin(const QString &name)
bool declarePlugin(const QString &name, QWidget *parent=NULL)
Interface * getFirstOf()
Definition: pluginmanagerdialog.hh:129
Definition: action-search-bar.hh:27
PluginManagerDialog(PluginManager *pm, QWidget *parent=0)
QPair< QString, QString > PyPair
Definition: pluginmanagerdialog.hh:39
void declareAllPlugins(QWidget *parent=NULL)
static void addPluginDir(const QString &path)
static QIcon icon(const QPluginLoader *pl)
void pyLoad(const QString &name)
Definition: pluginmanagerdialog.hh:35
void pyContextMenu(const QPoint &pos)
void declareAllPyPlugins()
const Map & plugins() const
Definition: pluginmanagerdialog.hh:46
const PyMap & pyplugins() const
Definition: pluginmanagerdialog.hh:48
QPair< QString, QPluginLoader * > Pair
Definition: pluginmanagerdialog.hh:37
QList< Interface * > get()
Definition: pluginmanagerdialog.hh:144
void unload(const QString &name)
bool unloadPyPlugin(const QString &name)
bool initPlugin(const QString &name)
bool declarePyPlugin(const QString &name)
~PluginManager()
Definition: pluginmanagerdialog.hh:42
void contextMenu(const QPoint &pos)
QMap< QString, QString > PyMap
Definition: pluginmanagerdialog.hh:40
bool isPyPluginLoaded(const QString &name)