]> git.sven.stormbind.net Git - sven/vym.git/blob - src/xml-freemind.h
Replace Pierre as the maintainer
[sven/vym.git] / src / xml-freemind.h
1 #ifndef XML_FREEMIND_H
2 #define XML_FREEMIND_H
3
4 #include "xml-base.h"
5
6 #include "vymnote.h"
7
8 class BranchItem;
9 class VymModel;
10
11 /*! \brief Parsing Freemind maps from XML documents */
12
13 class parseFreemindHandler : public parseBaseHandler {
14   private:
15     bool nodeLikeState();
16
17   public:
18     bool startDocument();
19     QString parseHREF(QString);
20     bool startElement(const QString &, const QString &, const QString &eName,
21                       const QXmlAttributes &atts);
22     bool endElement(const QString &, const QString &, const QString &);
23     bool characters(const QString &);
24     QString errorString();
25     bool readNodeAttr(const QXmlAttributes &);
26     bool readRichContentAttr(const QXmlAttributes &);
27
28   private:
29     QString errorProt;
30     enum State {
31         StateInit,
32         StateAttributeRegistry,
33         StateAttributeName,
34         StateAttributeValue,
35         StateMap,
36         StateCenter,
37         StateMainNode,
38         StateNode,
39         StateProperties,
40         StateMapStyles,
41         StateCloud,
42         StateEdge,
43         StateIcon,
44         StateFont,
45         StateArrowLink,
46         StateHook,
47         StateText,
48         StateRichContent,
49         StateHtml,
50         StateUnknown
51     };
52     enum HtmlPurpose { Node, Note, Unknown };
53     HtmlPurpose htmlPurpose;
54
55     State state;
56     QList<State> stateStack;
57     VymText vymtext;
58     BranchItem *lastBranch;
59     BranchItem *mapCenter;
60     BranchItem *mainBranchLeft;
61     BranchItem *mainBranchRight;
62 };
63 #endif