pluginmanager.h
00001
00024 #ifndef KOMPOSER_PLUGINMANAGER_H
00025 #define KOMPOSER_PLUGINMANAGER_H
00026
00027 #include <qmap.h>
00028 #include <qobject.h>
00029 #include <qstring.h>
00030 #include <qstringlist.h>
00031 #include <qvaluelist.h>
00032
00033 class KPluginInfo;
00034
00035 namespace Komposer
00036 {
00037
00038 class Plugin;
00039
00040 class PluginManager : public QObject
00041 {
00042 Q_OBJECT
00043
00044 public:
00045 PluginManager( QObject* );
00046
00047 ~PluginManager();
00048
00059 QValueList<KPluginInfo*> availablePlugins( const QString& category
00060 = QString::null ) const;
00061
00067 QMap<KPluginInfo*, Plugin*> loadedPlugins( const QString& category
00068 = QString::null ) const;
00069
00080 Plugin* plugin( const QString& pluginName ) const;
00081
00089 QString pluginName( const Plugin* plugin ) const;
00090
00099 QString pluginId( const Plugin* plugin ) const;
00100
00104 bool unloadPlugin( const QString& pluginName );
00105
00112 QString pluginIcon( const Plugin* plugin ) const;
00113
00124 void shutdown();
00125
00140 bool setPluginEnabled( const QString& name, bool enabled = true );
00141
00147 enum PluginLoadMode { LoadSync, LoadAsync };
00148
00149 public slots:
00160 Plugin* loadPlugin( const QString& pluginId, PluginLoadMode mode = LoadSync );
00161
00166 void loadAllPlugins();
00167
00168 signals:
00172 void pluginLoaded( Plugin* plugin );
00173
00193 void allPluginsLoaded();
00194
00195 private slots:
00199 void slotPluginDestroyed( QObject* plugin );
00200
00206 void slotShutdownTimeout();
00207
00212 void slotShutdownDone();
00213
00217 void slotPluginReadyForUnload();
00218
00223 void slotLoadNextPlugin();
00224
00225 private:
00233 Plugin * loadPluginInternal( const QString &pluginId );
00234
00242 KPluginInfo* infoForPluginId( const QString& pluginId ) const;
00243 private:
00244 class Private;
00245 Private* d;
00246 };
00247
00248 }
00249
00250 #endif // KOMPOSER_PLUGINMANAGER_H
This file is part of the documentation for libkdepim Library Version 3.3.2.