#ifndef XML_H
#define XML_H
#include "xml-base.h"
#include "vymnote.h"
class BranchItem;
class ImageItem;
class MapItem;
class SlideItem;
class Task;
/*! \brief Parsing VYM maps from XML documents */
enum Content {TreeContent = 0x0001, SlideContent = 0x0002, XLinkContent = 0x0004};
class parseVYMHandler : public parseBaseHandler
{
public:
parseVYMHandler();
void setContentFilter (const int &);
private:
int contentFilter;
public:
bool startDocument();
bool startElement ( const QString&, const QString&,
const QString& eName, const QXmlAttributes& atts );
bool endElement ( const QString&, const QString&, const QString& );
bool characters ( const QString&);
QString errorString();
bool readMapAttr (const QXmlAttributes&);
bool readBranchAttr (const QXmlAttributes&);
bool readFrameAttr (const QXmlAttributes&);
bool readOOAttr (const QXmlAttributes&);
bool readNoteAttr (const QXmlAttributes&);
bool readImageAttr (const QXmlAttributes&);
bool readXLinkAttr (const QXmlAttributes&);
bool readLinkNewAttr (const QXmlAttributes&);
bool readSettingAttr (const QXmlAttributes&);
bool readSlideAttr (const QXmlAttributes&);
bool readTaskAttr (const QXmlAttributes&);
private:
enum State
{
StateInit,
StateMap,
StateMapSelect,
StateMapSetting,
StateMapSlide,
StateMapCenter,
StateBranch,
StateBranchXLink, // Obsolete
StateVymNote,
StateHtmlNote, // Obsolete >= 1.13.6
StateHtml,
StateFrame,
StateStandardFlag,
StateNote, // Obsolete >= 1.4.6
StateImage,
StateHeading,
StateLink,
StateAttribute,
StateTask
};
int branchesCounter;
int branchesTotal;
State state;
QList <State> stateStack;
VymText vymtext;
BranchItem* lastBranch;
ImageItem* lastImage;
MapItem* lastMI;
SlideItem *lastSlide;
Task *lastTask;
QString lastSetting;
bool useProgress;
};
#endif