00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef __KATE_PLUGINMANAGER_H__
00022
#define __KATE_PLUGINMANAGER_H__
00023
00024
#include "katemain.h"
00025
#include "../interfaces/plugin.h"
00026
#include "../interfaces/pluginmanager.h"
00027
00028
#include <qobject.h>
00029
#include <qvaluelist.h>
00030
#include <qptrlist.h>
00031
#include <ktrader.h>
00032
00033
class KatePluginInfo
00034 {
00035
public:
00036
bool load;
00037 KService::Ptr service;
00038 Kate::Plugin *plugin;
00039 };
00040
00041
typedef QPtrList<KatePluginInfo> KatePluginList;
00042
00043
class KatePluginManager :
public QObject
00044 {
00045 Q_OBJECT
00046
00047
public:
00048 KatePluginManager(QObject *parent);
00049 ~KatePluginManager();
00050
00051
Kate::PluginManager *pluginManager ()
const {
return m_pluginManager; };
00052
00053
void loadAllEnabledPlugins ();
00054
void unloadAllPlugins ();
00055
00056
void enableAllPluginsGUI (KateMainWindow *win);
00057
void disableAllPluginsGUI (KateMainWindow *win);
00058
00059
void loadConfig ();
00060
void writeConfig ();
00061
00062
void loadPlugin (KatePluginInfo *item);
00063
void unloadPlugin (KatePluginInfo *item);
00064
00065
void enablePluginGUI (KatePluginInfo *item, KateMainWindow *win);
00066
void enablePluginGUI (KatePluginInfo *item);
00067
00068
void disablePluginGUI (KatePluginInfo *item, KateMainWindow *win);
00069
void disablePluginGUI (KatePluginInfo *item);
00070
00071
inline KatePluginList & pluginList () {
return m_pluginList; };
00072
00073
virtual Kate::Plugin *plugin(
const QString &name);
00074
virtual bool pluginAvailable(
const QString &name);
00075
virtual class Kate::Plugin *loadPlugin(
const QString &name,
bool permanent=
true);
00076
virtual void unloadPlugin(
const QString &name,
bool permanent=
true);
00077
00078
private:
00079
Kate::PluginManager *m_pluginManager;
00080
00081
void setupPluginList ();
00082
00083 KatePluginList m_pluginList;
00084 };
00085
00086
#endif