diff -r d8fccb2cd802 -r 468f4c8d3d5b Orb/Doxygen/src/xmlditadocvisitor.h --- a/Orb/Doxygen/src/xmlditadocvisitor.h Fri Apr 23 20:47:58 2010 +0100 +++ b/Orb/Doxygen/src/xmlditadocvisitor.h Wed Aug 11 14:49:30 2010 +0100 @@ -4,6 +4,7 @@ #include "docvisitor.h" #include "xmlwriter.h" +#include "xmlditaparammap.h" #include #include #include @@ -18,7 +19,7 @@ class XmlDitaDocVisitor : public DocVisitor { public: - XmlDitaDocVisitor(XmlStream &s,CodeOutputInterface &ci); + XmlDitaDocVisitor(XmlStream &s,CodeOutputInterface &ci, DocBlockContents *docBlockMaps); //-------------------------------------- // visitor functions for leaf nodes @@ -117,11 +118,7 @@ virtual ~XmlDitaDocVisitor() {} - const QString query(const QString ¶mName) const; - QDictIterator queryIterator() - { - return QDictIterator(paramDict); - } + //const QString query(const QString ¶mName) const; private: //-------------------------------------- @@ -133,14 +130,22 @@ const QString &anchor); void endLink(); + bool canWriteToXmlStream() const; + bool shouldAddTextToReturnDoc() const; + bool canLoadParameterMap() const; + void checkSimpleTable(const QString &tagName); + void addStrowToSimpleTableOnPop(const QString &tagName); void write(const QString &string); void push(const QString &tagName); void push(const QString &tagName, const QString &key, const QString &value); void push(const QString &tagName, AttributeMap &map); + void pop(); void pop(const QString &tagName); void pushpop(const QString &tagName); - void pushpop(const QString &tagName, const QString &text); - + void pushpop(const QString &tagName, const QString &text); + // Definition list stuff + void pushDl(const QString &outputClass); + void popDl(); void pushEnabled(); void popEnabled(); // Default pop of a single element @@ -162,10 +167,29 @@ bool m_hide; QStack m_enabled; QCString m_langExt; + // Parameter capture bool m_insideParamlist; - QMap paramMap; - QDict paramDict; + bool m_paramIsTemplate; + //QDict paramDict; QString currParam; + DocBlockContents *m_docBlockMaps; + // State flag for when we are writing definition lists + bool m_writingDl; + // Used to detect if we need to insert an empty \ + // in a \. This is set/cleared by push/pop. + bool m_mustInsertStrow; + // This is used to help lazy evaluation of a stentry that might be + // either within a sthead or a strow. It is only at the point of + // getting a stentry that we can decide which one to use + bool m_strowOrStheadIsPending; + // Adds text to m_docBlockMaps->returnDoc + bool m_addTextToReturnDoc; + // Keeps track of the number of XmlDitaDocVisitor::visitPre(DocPara*) events + // that do NOT result in a

element being written. + // This is incremented by XmlDitaDocVisitor::visitPre(DocPara*) when canPushPara() + // and is decremented by XmlDitaDocVisitor::visitPost(DocPara*). Only when this is + // zero can a XmlDitaDocVisitor::visitPost(DocPara*) cause a

+ int m_paraRefCount; }; #endif //_XMLDITADOCVISITOR_H