pluginmanager.h
1 
23 #ifndef KOMPOSER_PLUGINMANAGER_H
24 #define KOMPOSER_PLUGINMANAGER_H
25 
26 #include <tqmap.h>
27 #include <tqobject.h>
28 #include <tqstring.h>
29 #include <tqstringlist.h>
30 #include <tqvaluelist.h>
31 
32 class KPluginInfo;
33 
34 namespace Komposer
35 {
36 
37  class Plugin;
38 
39  class PluginManager : public TQObject
40  {
41  TQ_OBJECT
42 
43 
44  public:
45  PluginManager( TQObject * );
46 
47  ~PluginManager();
48 
59  TQValueList<KPluginInfo*> availablePlugins( const TQString &category
60  = TQString() ) const;
61 
67  TQMap<KPluginInfo*, Plugin*> loadedPlugins( const TQString &category
68  = TQString() ) const;
69 
81  Plugin* plugin( const TQString &pluginName ) const;
82 
90  TQString pluginName( const Plugin *plugin ) const;
91 
100  TQString pluginId( const Plugin *plugin ) const;
101 
105  bool unloadPlugin( const TQString &pluginName );
106 
113  TQString pluginIcon( const Plugin *plugin ) const;
114 
125  void shutdown();
126 
141  bool setPluginEnabled( const TQString &name, bool enabled = true );
142 
148  enum PluginLoadMode { LoadSync, LoadAsync };
149 
150  public slots:
161  Plugin* loadPlugin( const TQString &pluginId, PluginLoadMode mode = LoadSync );
162 
167  void loadAllPlugins();
168 
169  signals:
173  void pluginLoaded( Plugin *plugin );
174 
194  void allPluginsLoaded();
195 
196  private slots:
200  void slotPluginDestroyed( TQObject *plugin );
201 
207  void slotShutdownTimeout();
208 
213  void slotShutdownDone();
214 
218  void slotPluginReadyForUnload();
219 
224  void slotLoadNextPlugin();
225 
226  private:
234  Plugin *loadPluginInternal( const TQString &pluginId );
235 
243  KPluginInfo *infoForPluginId( const TQString &pluginId ) const;
244  private:
245  class Private;
246  Private *d;
247  };
248 
249 }
250 
251 #endif // KOMPOSER_PLUGINMANAGER_H
attachment.h
Definition: attachment.h:29