summaryrefslogtreecommitdiffstats
path: root/src/docvisitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/docvisitor.cpp')
-rw-r--r--src/docvisitor.cpp19
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;
+}