diff options
Diffstat (limited to 'src/docvisitor.cpp')
-rw-r--r-- | src/docvisitor.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/docvisitor.cpp b/src/docvisitor.cpp index d46d8c0..506c9f8 100644 --- a/src/docvisitor.cpp +++ b/src/docvisitor.cpp @@ -14,6 +14,7 @@ #include <unordered_map> +#include <stack> #include "parserintf.h" #include "docvisitor.h" @@ -25,6 +26,7 @@ struct DocVisitor::Private { int id; std::unordered_map< std::string, std::unique_ptr<CodeParserInterface> > parserFactoryMap; + std::stack<bool> hidden; }; DocVisitor::DocVisitor(int id) : m_p(std::make_unique<Private>()) @@ -36,9 +38,9 @@ DocVisitor::~DocVisitor() { } -CodeParserInterface &DocVisitor::getCodeParser(const char *extension) +CodeParserInterface &DocVisitor::getCodeParser(const QCString &extension) { - std::string ext(extension?extension:""); + std::string ext = extension.str(); // for each extension we create a code parser once per visitor, so that // the context of the same parser object is reused throughout multiple passes for instance // for code fragments shown via dontinclude. @@ -56,3 +58,16 @@ int DocVisitor::id() const { return m_p->id; } + +void DocVisitor::pushHidden(bool hide) +{ + m_p->hidden.push(hide); +} + +bool DocVisitor::popHidden() +{ + if (m_p->hidden.empty()) return false; + bool v = m_p->hidden.top(); + m_p->hidden.pop(); + return v; +} |