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 
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_*/
CAPlugin::addAction
void addAction(CAPluginAction *action)
Definition: plugin.cpp:281
pluginmanager.h
CAPluginManager::disablePlugin
static bool disablePlugin(CAPlugin *plugin)
Definition: pluginmanager.cpp:189
CAPluginManager::_curActionRefresh
bool _curActionRefresh
Definition: pluginmanager.h:77
CAPluginManager::_curChars
QString _curChars
Definition: pluginmanager.h:63
CAMainWin::exportDialog
QFileDialog * exportDialog()
Definition: mainwin.h:112
CADocument
Class which represents the current document.
Definition: document.h:19
CAPluginManager::_curActionExportFilter
QHash< QString, QString > _curActionExportFilter
Definition: pluginmanager.h:75
CAPluginManager::exportAction
static void exportAction(QString filter, CADocument *document, QString filename)
Definition: pluginmanager.cpp:457
CAPluginManager::importFilterExists
static bool importFilterExists(const QString filter)
Definition: pluginmanager.h:39
CAPluginManager::endElement
bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Definition: pluginmanager.cpp:289
CAPluginManager::CAPluginManager
CAPluginManager(CAMainWin *mainWin, CAPlugin *plugin)
Definition: pluginmanager.cpp:67
CAPluginManager::~CAPluginManager
~CAPluginManager()
Definition: pluginmanager.cpp:73
CAPluginManager::_curMenuLocale
QString _curMenuLocale
Definition: pluginmanager.h:84
CAPlugin::setHomeUrl
void setHomeUrl(QString homeUrl)
Definition: plugin.h:87
plugin.h
CAPluginManager::disablePlugins
static bool disablePlugins()
Definition: pluginmanager.cpp:139
CAPluginManager::action
static void action(QString onAction, CADocument *document, QEvent *evt, QPoint *coords, CAMainWin *mainWin)
Definition: pluginmanager.cpp:489
CAPluginManager::_curActionOnAction
QString _curActionOnAction
Definition: pluginmanager.h:74
CAPluginManager::_mainWin
CAMainWin * _mainWin
Definition: pluginmanager.h:62
CAPlugin::isEnabled
bool isEnabled()
Definition: plugin.h:68
CAPluginManager::_curActionFunction
QString _curActionFunction
Definition: pluginmanager.h:78
CAPluginManager::startElement
bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attributes)
Definition: pluginmanager.cpp:243
plugins_swig.h
CAPlugin::setUpdateUrl
void setUpdateUrl(QString updateUrl)
Definition: plugin.h:88
CACanorus::mainWinList
static const QList< CAMainWin * > & mainWinList()
Definition: canorus.h:49
CAPlugin::action
bool action(QString onAction, CAMainWin *mainWin=0, CADocument *document=0, QEvent *evt=0, QPoint *coords=0)
Definition: plugin.cpp:66
CAPluginManager::removePlugin
static bool removePlugin(CAPlugin *plugin)
Definition: pluginmanager.cpp:235
CAPluginManager::_curMenuParentMenu
QString _curMenuParentMenu
Definition: pluginmanager.h:85
CAPlugin::setDirName
void setDirName(QString dirName)
Definition: plugin.h:86
CAPluginManager::enablePlugin
static bool enablePlugin(CAPlugin *plugin, CAMainWin *mainWin)
Definition: pluginmanager.cpp:156
CAPluginManager::_tree
QStack< QString > _tree
Definition: pluginmanager.h:64
CAPluginManager::_importFilterMap
static QHash< QString, CAPluginAction * > _importFilterMap
Definition: pluginmanager.h:59
CAPluginManager::_curActionText
QHash< QString, QString > _curActionText
Definition: pluginmanager.h:71
CAPluginManager::importAction
static void importAction(QString filter, CADocument *document, QString filename)
Definition: pluginmanager.cpp:477
CAPluginManager::_exportFilterMap
static QHash< QString, CAPluginAction * > _exportFilterMap
Definition: pluginmanager.h:58
CAPlugin
Definition: plugin.h:25
CAPlugin::menu
QMenu * menu(QString menuName)
Definition: plugin.h:79
CAPluginManager::enablePlugins
static bool enablePlugins(CAMainWin *mainWin)
Definition: pluginmanager.cpp:122
CAPluginManager::fatalError
bool fatalError(const QXmlParseException &exception)
Definition: pluginmanager.cpp:432
CAPluginManager::_curActionParentToolbar
QString _curActionParentToolbar
Definition: pluginmanager.h:76
CAPluginManager::_pluginList
static QList< CAPlugin * > _pluginList
Definition: pluginmanager.h:56
CAPluginManager::_curMenuName
QString _curMenuName
Definition: pluginmanager.h:82
pluginaction.h
CAPlugin::setDescription
void setDescription(QString desc, QString lang=QString(""))
Definition: plugin.h:82
CAPluginManager::readPlugins
static void readPlugins()
Definition: pluginmanager.cpp:84
CAPluginManager::_curMenuTitle
QHash< QString, QString > _curMenuTitle
Definition: pluginmanager.h:83
CAPlugin::dirName
QString dirName()
Definition: plugin.h:74
CAPluginManager::characters
bool characters(const QString &ch)
Definition: pluginmanager.cpp:436
CAPluginManager::installPlugin
static bool installPlugin(QString path)
Definition: pluginmanager.cpp:225
CAPluginManager::exportFilterExists
static bool exportFilterExists(const QString filter)
Definition: pluginmanager.h:37
CAPluginManager::pluginList
static const QList< CAPlugin * > pluginList()
Definition: pluginmanager.h:45
CAPluginManager::_curPluginLocale
QString _curPluginLocale
Definition: pluginmanager.h:68
CAPluginManager
Definition: pluginmanager.h:25
CAPluginManager::_curActionFilename
QString _curActionFilename
Definition: pluginmanager.h:78
CAPluginManager::_curActionLang
QString _curActionLang
Definition: pluginmanager.h:78
CAPluginManager::_curPluginCanorusVersion
QString _curPluginCanorusVersion
Definition: pluginmanager.h:67
CAMainWin
Canorus main window Class CAMainWin represents Canorus main window. The core layout is generated usin...
Definition: plugins_swig.h:6
CAPluginManager::_curActionArgs
QList< QString > _curActionArgs
Definition: pluginmanager.h:79
canorus.h
CAPlugin::setVersion
void setVersion(QString version)
Definition: plugin.h:84
CAPluginManager::_curActionName
QString _curActionName
Definition: pluginmanager.h:72
CAMainWin::importDialog
QFileDialog * importDialog()
Definition: mainwin.h:113
QXmlDefaultHandler
CAPluginManager::_curPlugin
CAPlugin * _curPlugin
Definition: pluginmanager.h:66
CAPlugin::actionList
QList< QString > actionList()
Definition: plugin.h:95
CAPlugin::setAuthor
void setAuthor(QString author)
Definition: plugin.h:83
CAPluginAction
Definition: pluginaction.h:15
CAPlugin::addMenu
void addMenu(QString name, QMenu *menu)
Definition: plugin.h:65
CAPluginManager::_curActionImportFilter
QHash< QString, QString > _curActionImportFilter
Definition: pluginmanager.h:75
CAPlugin::setEnabled
void setEnabled(bool enabled)
Definition: plugin.h:67
CAPluginManager::_curActionLocale
QString _curActionLocale
Definition: pluginmanager.h:73
CAPlugin::setName
void setName(QString name)
Definition: plugin.h:81
CAPluginManager::_curActionParentMenu
QString _curActionParentMenu
Definition: pluginmanager.h:76
CAPluginManager::_actionMap
static QMultiHash< QString, CAPlugin * > _actionMap
Definition: pluginmanager.h:57