10 #ifndef PLUGINCONTROL_H
11 #define PLUGINCONTROL_H
16 #include <QPluginLoader>
20 #include <QHashIterator>
23 #include "../util/ComposerCoreControl_global.h"
25 #include "MessageControl.h"
26 #include "LanguageControl.h"
27 using namespace composer::core;
29 #include "../model/Project.h"
30 using namespace composer::core::model;
32 #include "../util/Singleton.h"
33 using namespace composer::core::util;
35 #include "../extensions/IDocumentParser.h"
36 #include "../extensions/ILanguageProfile.h"
37 #include "../extensions/IPluginFactory.h"
38 #include "../extensions/IPlugin.h"
39 using namespace composer::extension;
66 QHash <QString, IPluginFactory*> pluginFactories;
68 QMultiHash <LanguageType, QString> pluginsByType;
75 QHash <Project *, MessageControl*> messageControls;
77 QMultiHash<Project *, IPlugin*> pluginInstances;
80 QMultiHash<IPlugin*, IPluginFactory*> factoryByPlugin;
98 void loadPlugins(QString pluginsDirPath);
111 QList<IPluginFactory*> getLoadedPlugins();
118 bool releasePlugins(
Project *doc);
138 QList <IPlugin*> getPluginInstances(
Project *project);
147 void launchProject(
Project *doc);
153 void savePluginsData(
Project* project);
162 void sendBroadcastMessage(
const char *slot,
void *payload);
171 void newProjectLaunchedAndCreated(QString documentdId, QString location);
177 void notifyError(QString);
200 #endif // PLUGINCONTROL_H