Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
17 class CAMainWin;
18 class CADocument;
19 class CAPlugin;
20 class CAPluginAction;
21 
22 class QEvent;
23 class QPoint;
24 
26 public:
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 
55 private:
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
72  QString _curActionName;
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_*/
static bool enablePlugins(CAMainWin *mainWin)
Definition: pluginmanager.cpp:119
bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attributes)
Definition: pluginmanager.cpp:237
bool fatalError(const QXmlParseException &exception)
Definition: pluginmanager.cpp:426
QHash< QString, QString > _curMenuTitle
Definition: pluginmanager.h:83
~CAPluginManager()
Definition: pluginmanager.cpp:73
static QMultiHash< QString, CAPlugin * > _actionMap
Definition: pluginmanager.h:57
static bool exportFilterExists(const QString filter)
Definition: pluginmanager.h:37
QString _curMenuName
Definition: pluginmanager.h:82
bool characters(const QString &ch)
Definition: pluginmanager.cpp:430
QString _curActionFilename
Definition: pluginmanager.h:78
QStack< QString > _tree
Definition: pluginmanager.h:64
static bool importFilterExists(const QString filter)
Definition: pluginmanager.h:39
QString _curActionParentMenu
Definition: pluginmanager.h:76
static const QList< CAPlugin * > pluginList()
Definition: pluginmanager.h:45
bool _curActionRefresh
Definition: pluginmanager.h:77
QHash< QString, QString > _curActionExportFilter
Definition: pluginmanager.h:75
QString _curPluginLocale
Definition: pluginmanager.h:68
static QHash< QString, CAPluginAction * > _importFilterMap
Definition: pluginmanager.h:59
Class which represents the current document.
Definition: document.h:19
QString _curActionParentToolbar
Definition: pluginmanager.h:76
CAMainWin * _mainWin
Definition: pluginmanager.h:62
static bool disablePlugins()
Definition: pluginmanager.cpp:136
CAPluginManager(CAMainWin *mainWin, CAPlugin *plugin)
Definition: pluginmanager.cpp:67
QString _curActionLocale
Definition: pluginmanager.h:73
QString _curChars
Definition: pluginmanager.h:63
static void action(QString onAction, CADocument *document, QEvent *evt, QPoint *coords, CAMainWin *mainWin)
Definition: pluginmanager.cpp:483
QString _curActionLang
Definition: pluginmanager.h:78
QString _curMenuLocale
Definition: pluginmanager.h:84
static QHash< QString, CAPluginAction * > _exportFilterMap
Definition: pluginmanager.h:58
Definition: pluginaction.h:15
QString _curActionName
Definition: pluginmanager.h:72
static bool removePlugin(CAPlugin *plugin)
Definition: pluginmanager.cpp:229
static void importAction(QString filter, CADocument *document, QString filename)
Definition: pluginmanager.cpp:471
static bool disablePlugin(CAPlugin *plugin)
Definition: pluginmanager.cpp:186
static QList< CAPlugin * > _pluginList
Definition: pluginmanager.h:56
QString _curPluginCanorusVersion
Definition: pluginmanager.h:67
bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Definition: pluginmanager.cpp:283
QHash< QString, QString > _curActionText
Definition: pluginmanager.h:71
QString _curActionOnAction
Definition: pluginmanager.h:74
QHash< QString, QString > _curActionImportFilter
Definition: pluginmanager.h:75
static void exportAction(QString filter, CADocument *document, QString filename)
Definition: pluginmanager.cpp:451
static void readPlugins()
Definition: pluginmanager.cpp:84
CAPlugin * _curPlugin
Definition: pluginmanager.h:66
QString _curMenuParentMenu
Definition: pluginmanager.h:85
Definition: pluginmanager.h:25
Canorus main window Class CAMainWin represents Canorus main window. The core layout is generated usin...
Definition: plugins_swig.h:6
QString _curActionFunction
Definition: pluginmanager.h:78
Definition: plugin.h:26
static bool installPlugin(QString path)
Definition: pluginmanager.cpp:220
QList< QString > _curActionArgs
Definition: pluginmanager.h:79
static bool enablePlugin(CAPlugin *plugin, CAMainWin *mainWin)
Definition: pluginmanager.cpp:153