34 PageDefImpl(
const QCString &f,
int l,
const QCString &n,
const QCString &d,
const QCString &t);
46 QCString
anchor()
const override {
return QCString(); }
81 return std::make_unique<PageDefImpl>(f,l,n,d,t);
150 if (sectionRefs.
empty())
return;
153 for (
auto it = sectionRefs.
begin(); it!=sectionRefs.
end(); ++it)
155 const SectionInfo *si = *it;
156 SectionType type = si->
type();
160 int nextLevel = type.
level();
163 for (
int i=level;i<nextLevel;i++)
168 else if (nextLevel<level)
170 for (
int i=nextLevel;i<level;i++)
179 auto it_next = std::next(it);
180 bool isDir = (it_next!=sectionRefs.
end()) ? ((*it_next)->type().isSection() && (*it_next)->type().level() > nextLevel) :
false;
208 if (rl->listName()==
name())
218 tagFile <<
" <compound kind=\"page\">\n";
219 tagFile <<
" <name>" <<
name() <<
"</name>\n";
221 tagFile <<
" <filename>" << fn <<
"</filename>\n";
224 QCString sfn = subPage->getOutputFileBase();
226 tagFile <<
" <subpage>" << sfn <<
"</subpage>\n";
229 tagFile <<
" </compound>\n";
236 int hierarchyLevel = -1;
245 QCString pageName,manPageName;
258 QCString() , hierarchyLevel);
262 QCString() , hierarchyLevel);
266 if (!generateTreeView)
290 if (si->
title() != manPageName)
309 if (!
title.isEmpty() && !
name().isEmpty() && si!=
nullptr)
469 if (d==
nullptr)
return nullptr;
472 return static_cast<PageDef*
>(d);
482 if (d==
nullptr)
return nullptr;
485 return static_cast<const PageDef*
>(d);
The common base class of all entity definitions found in the sources.
virtual bool hasSections() const =0
virtual DefType definitionType() const =0
virtual QCString getOutputFileBase() const =0
virtual Definition * getOuterScope() const =0
virtual const QCString & name() const =0
friend DefinitionMutable * toDefinitionMutable(Definition *)
bool isReference() const override
const QCString & name() const override
bool hasBriefDescription() const override
QCString docFile() const override
void setDocumentation(const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE) override
QCString briefDescription(bool abbreviate=FALSE) const override
Definition * getOuterScope() const override
QCString getReference() const override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
const GroupList & partOfGroups() const override
int getStartBodyLine() const override
void writeToc(OutputList &ol, const LocalToc <) const override
QCString inbodyDocumentation() const override
int docLine() const override
const SectionRefs & getSectionRefs() const override
QCString documentation() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
virtual void setOuterScope(Definition *d)=0
virtual void writeNavigationPath(OutputList &ol) const =0
static std::unique_ptr< PageDef > mainPage
static NamespaceDefMutable * globalScope
static IndexList * indexList
A model of a group of symbols.
void addContentsItem(bool isDir, const QCString &name, const QCString &ref, const QCString &file, const QCString &anchor, bool separateIndex=FALSE, bool addToNavIndex=FALSE, const Definition *def=nullptr)
std::unique_ptr< RefList > Ptr
const T * find(const std::string &key) const
Find an object given the key.
Class representing a list of output generators that are written to in parallel.
void endTextBlock(bool paraBreak=FALSE)
void writeString(const QCString &text)
void endTitleHead(const QCString &fileName, const QCString &name)
void endSection(const QCString &lab, SectionType t)
void disable(OutputType o)
void startTitleHead(const QCString &fileName)
void enable(OutputType o)
void startHeaderSection()
void startTextBlock(bool dense=FALSE)
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
void pushGeneratorState()
void disableAllBut(OutputType o)
void startPageDoc(const QCString &pageTitle)
void writePageLink(const QCString &name, bool first)
void parseText(const QCString &textStr)
A model of a page symbol.
virtual bool hasParentPage() const =0
virtual void setNestingLevel(int)=0
bool hasTitle() const override
void setNestingLevel(int l) override
void writeDocumentation(OutputList &ol) override
bool hasParentPage() const override
bool documentedPage() const override
LocalToc localToc() const override
PageDefImpl(const QCString &f, int l, const QCString &n, const QCString &d, const QCString &t)
void addInnerCompound(Definition *d) override
void writeTagFile(TextStream &) override
bool showLineNo() const override
void setFileName(const QCString &name) override
void findSectionsInDocumentation() override
DefType definitionType() const override
bool isLinkable() const override
QCString displayName(bool=TRUE) const override
bool isLinkableInProject() const override
void setTitle(const QCString &title) override
void setShowLineNo(bool) override
QCString getOutputFileBase() const override
const PageLinkedRefMap & getSubPages() const override
CodeSymbolType codeSymbolType() const override
const GroupDef * getGroupDef() const override
bool visibleInIndex() const override
void writePageDocumentation(OutputList &ol) const override
void addSectionsToIndex() override
QCString title() const override
void setLocalToc(const LocalToc &tl) override
void setPageScope(Definition *d) override
QCString anchor() const override
PageLinkedRefMap m_subPages
bool hasSubPages() const override
Definition * getPageScope() const override
This is an alternative implementation of QCString.
bool isEmpty() const
Returns TRUE iff the string is empty.
static RefListManager & instance()
QCString fileName() const
static SectionManager & instance()
returns a reference to the singleton
const_iterator end() const
const_iterator begin() const
constexpr bool isSection() const
constexpr int level() const
Text streaming class that buffers data.
virtual QCString trMainPage()=0
#define Config_getBool(name)
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)
static void writeTagFile()
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const QCString &navPath)
void startFile(OutputList &ol, const QCString &name, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel)
void endFileWithNavPath(OutputList &ol, const Definition *d)
Translator * theTranslator
std::unique_ptr< PageDef > createPageDef(const QCString &f, int l, const QCString &n, const QCString &d, const QCString &t)
PageDef * toPageDef(Definition *d)
QCString parseCommentAsText(const Definition *scope, const MemberDef *md, const QCString &doc, const QCString &fileName, int lineNr)
QCString escapeCharsInString(const QCString &name, bool allowDots, bool allowUnderscore)
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
QCString convertToXML(const QCString &s, bool keepEntities)
void addHtmlExtensionIfMissing(QCString &fName)
A bunch of utility functions.