You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdevelop/src/plugincontroller.h

98 lines
2.3 KiB

#ifndef __PLUGINCONTROLLER_H__
#define __PLUGINCONTROLLER_H__
#include <tqdict.h>
#include <tqvaluelist.h>
#include <kservice.h>
#include <kdevplugincontroller.h>
#include <profileengine.h>
class KXMLGUIClient;
class KService;
class KDevPlugin;
class KDialogBase;
class ProjectInfo;
/**
Plugin controller implementation.
Loads and unloads plugins.
*/
class PluginController : public KDevPluginController
{
TQ_OBJECT
public:
~PluginController();
static PluginController *getInstance();
static TQStringList argumentsFromService( const KService::Ptr &service );
virtual KDevPlugin * loadPlugin( const TQString & serviceType, const TQString & constraint );
virtual void unloadPlugin( const TQString & plugin );
TQString currentProfile() const { return m_profile; }
void loadInitialPlugins();
void loadProjectPlugins( const TQStringList & ignorePlugins );
void unloadProjectPlugins();
void loadGlobalPlugins( const TQStringList & ignorePlugins = TQStringList() );
// KDevPlugin * getPlugin( const KService::Ptr &service );
virtual KDevPlugin *extension(const TQString &serviceType, const TQString &constraint = "");
void unloadPlugins( TQStringList const & );
void integratePart(KXMLGUIClient *part);
void integrateAndRememberPart(const TQString &name, KDevPlugin *part);
void removePart(KXMLGUIClient* part);
void removeAndForgetPart(const TQString &name, KDevPlugin* part);
const TQValueList<KDevPlugin*> loadedPlugins();
ProfileEngine &engine() { return m_engine; }
virtual KURL::List profileResources(const TQString &nameFilter);
virtual KURL::List profileResourcesRecursive(const TQString &nameFilter);
//returns the name of an old profile that was unloaded
TQString changeProfile(const TQString &newProfile);
public slots:
void selectPlugins();
signals:
void loadingPlugin(const TQString &plugin);
protected:
PluginController();
private slots:
// void slotConfigWidget( KDialogBase* );
void loadCorePlugins();
void loadPlugins( TDETrader::OfferList offers, const TQStringList & ignorePlugins = TQStringList() );
void unloadPlugins();
private:
static KDevPlugin *loadPlugin( const KService::Ptr &service );
TQDict<KDevPlugin> m_parts;
TQString m_profile;
static PluginController *s_instance;
ProfileEngine m_engine;
};
#endif