Canorus 0.0
pluginmanager.h
Go to the documentation of this file.
1
9#ifndef PLUGINMANAGER_H_
10#define PLUGINMANAGER_H_
11
12#include <QString>
13#include <QMultiHash>
14#include <QXmlDefaultHandler>
15#include <QStack>
16
17class CAMainWin;
18class CADocument;
19class CAPlugin;
20class CAPluginAction;
21
22class QEvent;
23class QPoint;
24
26public:
27 CAPluginManager(CAMainWin *mainWin, CAPlugin *plugin);
29
30 static void readPlugins();
31 static bool enablePlugin(CAPlugin* plugin, CAMainWin *mainWin);
32 static bool enablePlugins(CAMainWin *mainWin);
33 static bool disablePlugin(CAPlugin* plugin);
34 static bool disablePlugins();
35
36 static void action(QString onAction, CADocument *document, QEvent *evt, QPoint *coords, CAMainWin *mainWin);
37 static bool exportFilterExists(const QString filter) { return _exportFilterMap.contains(filter); }
38 static void exportAction(QString filter, CADocument *document, QString filename);
39 static bool importFilterExists(const QString filter) { return _importFilterMap.contains(filter); }
40 static void importAction(QString filter, CADocument *document, QString filename);
41
42 static bool installPlugin(QString path);
43 static bool removePlugin(CAPlugin* plugin);
44
45 static const QList<CAPlugin*> pluginList() { return _pluginList; };
46
47 // XML parser functions:
48 bool startElement(const QString& namespaceURI, const QString& localName, const QString& qName,
49 const QXmlAttributes& attributes);
50 bool endElement(const QString& namespaceURI, const QString& localName,
51 const QString& qName);
52 bool fatalError(const QXmlParseException& exception);
53 bool characters(const QString& ch);
54
55private:
56 static QList<CAPlugin*> _pluginList;
57 static QMultiHash<QString, CAPlugin* > _actionMap;
58 static QHash<QString, CAPluginAction* > _exportFilterMap;
59 static QHash<QString, CAPluginAction* > _importFilterMap;
60
61 // non-static members needed while parsing plugin's descriptor file:
63 QString _curChars;
64 QStack<QString> _tree;
65
69
70 // <action> tag:
71 QHash<QString, QString> _curActionText; // List of actions LOCALE texts
73 QString _curActionLocale; // Temporary lang
79 QList<QString> _curActionArgs;
80
81 // <menu> tag:
82 QString _curMenuName;
83 QHash<QString, QString> _curMenuTitle; // List of menus LOCALE titles
84 QString _curMenuLocale; // Temporary lang
85 QString _curMenuParentMenu; // Parent menu of the menu
86};
87#endif /*PLUGINMANAGER_H_*/
Class which represents the current document.
Definition: document.h:19
Canorus main window Class CAMainWin represents Canorus main window. The core layout is generated usin...
Definition: plugins_swig.h:6
Definition: pluginaction.h:15
Definition: pluginmanager.h:25
static const QList< CAPlugin * > pluginList()
Definition: pluginmanager.h:45
QHash< QString, QString > _curActionExportFilter
Definition: pluginmanager.h:75
QString _curActionLang
Definition: pluginmanager.h:78
QStack< QString > _tree
Definition: pluginmanager.h:64
QHash< QString, QString > _curActionText
Definition: pluginmanager.h:71
QString _curActionParentToolbar
Definition: pluginmanager.h:76
static bool enablePlugins(CAMainWin *mainWin)
Definition: pluginmanager.cpp:122
QString _curPluginLocale
Definition: pluginmanager.h:68
QString _curPluginCanorusVersion
Definition: pluginmanager.h:67
static void action(QString onAction, CADocument *document, QEvent *evt, QPoint *coords, CAMainWin *mainWin)
Definition: pluginmanager.cpp:489
bool _curActionRefresh
Definition: pluginmanager.h:77
bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attributes)
Definition: pluginmanager.cpp:243
QString _curActionOnAction
Definition: pluginmanager.h:74
static bool importFilterExists(const QString filter)
Definition: pluginmanager.h:39
QString _curActionFunction
Definition: pluginmanager.h:78
static bool exportFilterExists(const QString filter)
Definition: pluginmanager.h:37
static QList< CAPlugin * > _pluginList
Definition: pluginmanager.h:56
static QMultiHash< QString, CAPlugin * > _actionMap
Definition: pluginmanager.h:57
static bool removePlugin(CAPlugin *plugin)
Definition: pluginmanager.cpp:235
static bool enablePlugin(CAPlugin *plugin, CAMainWin *mainWin)
Definition: pluginmanager.cpp:156
bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Definition: pluginmanager.cpp:289
QString _curMenuName
Definition: pluginmanager.h:82
static QHash< QString, CAPluginAction * > _exportFilterMap
Definition: pluginmanager.h:58
QString _curActionLocale
Definition: pluginmanager.h:73
static bool disablePlugins()
Definition: pluginmanager.cpp:139
bool fatalError(const QXmlParseException &exception)
Definition: pluginmanager.cpp:432
CAPlugin * _curPlugin
Definition: pluginmanager.h:66
QString _curActionName
Definition: pluginmanager.h:72
bool characters(const QString &ch)
Definition: pluginmanager.cpp:436
static bool installPlugin(QString path)
Definition: pluginmanager.cpp:225
CAMainWin * _mainWin
Definition: pluginmanager.h:62
QHash< QString, QString > _curMenuTitle
Definition: pluginmanager.h:83
CAPluginManager(CAMainWin *mainWin, CAPlugin *plugin)
Definition: pluginmanager.cpp:67
static QHash< QString, CAPluginAction * > _importFilterMap
Definition: pluginmanager.h:59
static void exportAction(QString filter, CADocument *document, QString filename)
Definition: pluginmanager.cpp:457
QString _curActionParentMenu
Definition: pluginmanager.h:76
QHash< QString, QString > _curActionImportFilter
Definition: pluginmanager.h:75
QString _curChars
Definition: pluginmanager.h:63
QString _curMenuLocale
Definition: pluginmanager.h:84
QList< QString > _curActionArgs
Definition: pluginmanager.h:79
~CAPluginManager()
Definition: pluginmanager.cpp:73
static void readPlugins()
Definition: pluginmanager.cpp:84
static void importAction(QString filter, CADocument *document, QString filename)
Definition: pluginmanager.cpp:477
static bool disablePlugin(CAPlugin *plugin)
Definition: pluginmanager.cpp:189
QString _curActionFilename
Definition: pluginmanager.h:78
QString _curMenuParentMenu
Definition: pluginmanager.h:85
Definition: plugin.h:25