KDevelop API Documentation

plugincontroller.h

Go to the documentation of this file.
00001 #ifndef __PLUGINCONTROLLER_H__
00002 #define __PLUGINCONTROLLER_H__
00003 
00004 #include <qobject.h>
00005 #include <qdict.h>
00006 #include <qvaluelist.h>
00007 
00008 #include <kservice.h>
00009 
00010 class KXMLGUIClient;
00011 class KService;
00012 class KDevPlugin;
00013 class KDialogBase;
00014 class ProjectInfo;
00015 
00016 class PluginController : public QObject
00017 {
00018   Q_OBJECT
00019 
00020 public:
00021 
00022   ~PluginController();
00023 
00024   static PluginController *getInstance();
00025   static KService::List pluginServices( const QString &scope = QString::null );
00026   static QStringList argumentsFromService( const KService::Ptr &service );
00027 
00028   QString currentProfile() const { return m_profile; }
00029   QString currentProfilePath() const { return m_profilePath; }
00030   
00031   void loadInitialPlugins();
00032   
00033   void loadLocalParts( ProjectInfo*, QStringList const & loadPlugins, QStringList const & ignorePlugins );  // @todo figure out a way to remove the ProjectInfo parameter
00034 //  void unloadAllLocalParts();
00035 //  void unloadLocalParts( QStringList const & );
00036   
00037   //  KDevPlugin * getPlugin( const KService::Ptr &service );
00038   
00039   void unloadPlugins( QStringList const & );
00040   
00041   void integratePart(KXMLGUIClient *part);
00042   void removePart(KXMLGUIClient* part);
00043 
00044   const QValueList<KDevPlugin*> loadedPlugins();
00045 
00046 signals:
00047   void loadingPlugin(const QString &plugin);
00048 
00049 protected:
00050   PluginController();
00051 
00052 private slots:
00053   void slotConfigWidget( KDialogBase* );
00054   void loadGlobalPlugins();
00055   void loadCorePlugins();
00056 //  void unloadGlobalPlugins();
00057   void unloadPlugins();
00058   
00059 private:
00060     //  static void createInstance();
00061     static KDevPlugin *loadPlugin( const KService::Ptr &service );
00062 
00063     void loadDefaultParts();
00064   bool checkNewService( ProjectInfo *, const KService::Ptr &service );
00065 
00066   QDict<KDevPlugin> m_parts;
00067 //  QDict<KDevPlugin> m_globalParts;
00068 //  QDict<KDevPlugin> m_localParts;
00069   QString m_profile;
00070   QString m_profilePath;
00071   QString m_defaultProfile;
00072   QString m_defaultProfilePath;
00073   
00074   static PluginController *s_instance;
00075 
00076 };
00077 
00078 #endif
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:59 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003