Doxygen
Loading...
Searching...
No Matches
PageDefImpl Class Reference
+ Inheritance diagram for PageDefImpl:
+ Collaboration diagram for PageDefImpl:

Public Member Functions

 PageDefImpl (const QCString &f, int l, const QCString &n, const QCString &d, const QCString &t)
 
 ~PageDefImpl () override
 
void setFileName (const QCString &name) override
 
void setLocalToc (const LocalToc &tl) override
 
void setShowLineNo (bool) override
 
DefType definitionType () const override
 
CodeSymbolType codeSymbolType () const override
 
bool isLinkableInProject () const override
 
bool isLinkable () const override
 
QCString getOutputFileBase () const override
 
QCString anchor () const override
 
void findSectionsInDocumentation () override
 
QCString title () const override
 
const GroupDefgetGroupDef () const override
 
const PageLinkedRefMapgetSubPages () const override
 
void addInnerCompound (Definition *d) override
 
bool visibleInIndex () const override
 
bool documentedPage () const override
 
bool hasSubPages () const override
 
bool hasParentPage () const override
 
bool hasTitle () const override
 
LocalToc localToc () const override
 
void setPageScope (Definition *d) override
 
DefinitiongetPageScope () const override
 
QCString displayName (bool=TRUE) const override
 
bool showLineNo () const override
 
void setTitle (const QCString &title) override
 
void writeDocumentation (OutputList &ol) override
 
void writeTagFile (TextStream &) override
 
void setNestingLevel (int l) override
 
void writePageDocumentation (OutputList &ol) const override
 
void addSectionsToIndex () override
 
- Public Member Functions inherited from DefinitionMixin< PageDef >
 DefinitionMixin (const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
 
 DefinitionMixin (const DefinitionMixin &other)
 
 DefinitionMixin (DefinitionMixin &&)=delete
 
DefinitionMixinoperator= (const DefinitionMixin &other)
 
DefinitionMixinoperator= (DefinitionMixin &&)=delete
 
 ~DefinitionMixin () override=default
 
bool isAlias () const override
 
const QCStringname () const override
 
bool isAnonymous () const override
 
const QCStringlocalName () const override
 
QCString qualifiedName () const override
 
QCString symbolName () const override
 
QCString getSourceFileBase () const override
 
QCString getSourceAnchor () const override
 
QCString documentation () const override
 
int docLine () const override
 
QCString docFile () const override
 
QCString briefDescription (bool abbreviate=FALSE) const override
 
QCString briefDescriptionAsTooltip () const override
 
int briefLine () const override
 
QCString inbodyDocumentation () const override
 
QCString inbodyFile () const override
 
int inbodyLine () const override
 
QCString briefFile () const override
 
QCString getDefFileName () const override
 
QCString getDefFileExtension () const override
 
int getDefLine () const override
 
int getDefColumn () const override
 
bool hasDocumentation () const override
 
bool hasUserDocumentation () const override
 
bool isVisibleInProject () const override
 
bool isVisible () const override
 
bool isHidden () const override
 
bool isArtificial () const override
 
bool isExported () const override
 
QCString getReference () const override
 
bool isReference () const override
 
QCString externalReference (const QCString &relPath) const override
 
int getStartDefLine () const override
 
int getStartBodyLine () const override
 
int getEndBodyLine () const override
 
const FileDefgetBodyDef () const override
 
SrcLangExt getLanguage () const override
 
const GroupListpartOfGroups () const override
 
bool isLinkableViaGroup () const override
 
const RefItemVectorxrefListItems () const override
 
const DefinitionfindInnerCompound (const QCString &name) const override
 
DefinitiongetOuterScope () const override
 
const MemberVectorgetReferencesMembers () const override
 
const MemberVectorgetReferencedByMembers () const override
 
bool hasSections () const override
 
bool hasSources () const override
 
bool hasBriefDescription () const override
 
QCString id () const override
 
const SectionRefsgetSectionRefs () const override
 
void setName (const QCString &name) override
 
void setId (const QCString &name) override
 
void setDefFile (const QCString &df, int defLine, int defColumn) override
 
void setDocumentation (const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE) override
 
void setBriefDescription (const QCString &brief, const QCString &briefFile, int briefLine) override
 
void setInbodyDocumentation (const QCString &doc, const QCString &docFile, int docLine) override
 
void setReference (const QCString &r) override
 
void addSectionsToDefinition (const std::vector< const SectionInfo * > &anchorList) override
 
void setBodySegment (int defLine, int bls, int ble) override
 
void setBodyDef (const FileDef *fd) override
 
void addSourceReferencedBy (MemberDef *md, const QCString &sourceRefName) override
 
void addSourceReferences (MemberDef *md, const QCString &sourceRefName) override
 
void setRefItems (const RefItemVector &sli) override
 
void mergeRefItems (Definition *def) override
 
void mergeReferences (const Definition *other) override
 
void mergeReferencedBy (const Definition *other) override
 
void setOuterScope (Definition *def) override
 
void setHidden (bool b) override
 
void setArtificial (bool b) override
 
void setExported (bool b) override
 
void setLanguage (SrcLangExt lang) override
 
void writeSourceDef (OutputList &ol) const override
 
void writeInlineCode (OutputList &ol, const QCString &scopeName) const override
 
bool hasSourceRefs () const override
 
bool hasSourceReffedBy () const override
 
void writeSourceRefs (OutputList &ol, const QCString &scopeName) const override
 
void writeSourceReffedBy (OutputList &ol, const QCString &scopeName) const override
 
void makePartOfGroup (GroupDef *gd) override
 
void writeNavigationPath (OutputList &ol) const override
 
QCString navigationPathAsString () const override
 
void writeQuickMemberLinks (OutputList &ol, const MemberDef *md) const override
 
void writeSummaryLinks (OutputList &ol) const override
 
QCString pathFragment () const override
 
void writeDocAnchorsToTagFile (TextStream &fs) const override
 
void setLocalName (const QCString &name) override
 
void writeToc (OutputList &ol, const LocalToc &lt) const override
 
void computeTooltip () override
 
void _setSymbolName (const QCString &name) override
 
QCString _symbolName () const override
 
- Public Member Functions inherited from PageDef
- Public Member Functions inherited from DefinitionMutable
- Public Member Functions inherited from Definition

Private Attributes

QCString m_fileName
 
QCString m_title
 
PageLinkedRefMap m_subPages
 
Definitionm_pageScope
 
int m_nestingLevel
 
LocalToc m_localToc
 
bool m_showLineNo
 

Additional Inherited Members

- Public Types inherited from Definition
enum  DefType {
  TypeClass = 0 , TypeFile = 1 , TypeNamespace = 2 , TypeModule = 3 ,
  TypeMember = 4 , TypeGroup = 5 , TypePackage = 6 , TypePage = 7 ,
  TypeDir = 8 , TypeConcept = 9
}
 

Detailed Description

Definition at line 31 of file pagedef.cpp.

Constructor & Destructor Documentation

◆ PageDefImpl()

PageDefImpl::PageDefImpl ( const QCString & f,
int l,
const QCString & n,
const QCString & d,
const QCString & t )

Definition at line 86 of file pagedef.cpp.

88 : DefinitionMixin(f,l,1,n), m_title(!t.isEmpty() ? t : n)
89{
90 setDocumentation(d,f,l);
91 m_pageScope = nullptr;
95}
void setDocumentation(const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE) override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
bool m_showLineNo
Definition pagedef.cpp:76
Definition * m_pageScope
Definition pagedef.cpp:73
QCString m_title
Definition pagedef.cpp:71
int m_nestingLevel
Definition pagedef.cpp:74
QCString m_fileName
Definition pagedef.cpp:70
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:150
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:3858

References convertNameToFile(), DefinitionMixin< PageDef >::DefinitionMixin(), FALSE, m_fileName, m_nestingLevel, m_pageScope, m_showLineNo, m_title, DefinitionMixin< PageDef >::setDocumentation(), and TRUE.

◆ ~PageDefImpl()

PageDefImpl::~PageDefImpl ( )
override

Definition at line 97 of file pagedef.cpp.

98{
99}

Member Function Documentation

◆ addInnerCompound()

void PageDefImpl::addInnerCompound ( Definition * d)
overridevirtual

Reimplemented from DefinitionMixin< PageDef >.

Definition at line 126 of file pagedef.cpp.

127{
128 if (def->definitionType()==Definition::TypePage)
129 {
130 PageDef *pd = toPageDef(def);
131 if (pd)
132 {
133 m_subPages.add(pd->name(),pd);
134 pd->setOuterScope(this);
135 if (this==Doxygen::mainPage.get())
136 {
138 }
139 else
140 {
142 }
143 }
144 }
145}
virtual const QCString & name() const =0
virtual void setOuterScope(Definition *d)=0
static std::unique_ptr< PageDef > mainPage
Definition doxygen.h:101
virtual void setNestingLevel(int)=0
PageLinkedRefMap m_subPages
Definition pagedef.cpp:72
PageDef * toPageDef(Definition *d)
Definition pagedef.cpp:467

References Definition::definitionType(), m_nestingLevel, m_subPages, Doxygen::mainPage, Definition::name(), PageDef::setNestingLevel(), DefinitionMutable::setOuterScope(), toPageDef(), and Definition::TypePage.

◆ addSectionsToIndex()

void PageDefImpl::addSectionsToIndex ( )
overridevirtual

Implements PageDef.

Definition at line 147 of file pagedef.cpp.

148{
149 const SectionRefs &sectionRefs = getSectionRefs();
150 if (sectionRefs.empty()) return;
151 //printf("PageDefImpl::addSectionsToIndex()\n");
152 int level=1;
153 for (auto it = sectionRefs.begin(); it!=sectionRefs.end(); ++it)
154 {
155 const SectionInfo *si = *it;
156 SectionType type = si->type();
157 if (type.isSection())
158 {
159 //printf(" level=%d title=%s\n",level,qPrint(si->title));
160 int nextLevel = type.level();
161 if (nextLevel>level)
162 {
163 for (int i=level;i<nextLevel;i++)
164 {
166 }
167 }
168 else if (nextLevel<level)
169 {
170 for (int i=nextLevel;i<level;i++)
171 {
173 }
174 }
175 QCString title = si->title();
176 if (title.isEmpty()) title = si->label();
177 title = parseCommentAsText(this,nullptr,title,si->fileName(),si->lineNr());
178 // determine if there is a next level inside this item, but be aware of the anchor and table section references.
179 auto it_next = std::next(it);
180 bool isDir = (it_next!=sectionRefs.end()) ? ((*it_next)->type().isSection() && (*it_next)->type().level() > nextLevel) : false;
182 getReference(),
184 si->label(),
185 false,
186 true);
187 level = nextLevel;
188 }
189 }
190 while (level>1)
191 {
193 level--;
194 }
195}
QCString getReference() const override
const SectionRefs & getSectionRefs() const override
static IndexList * indexList
Definition doxygen.h:134
void decContentsDepth()
Definition indexlist.h:112
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)
Definition indexlist.h:115
void incContentsDepth()
Definition indexlist.h:109
QCString getOutputFileBase() const override
Definition pagedef.cpp:113
QCString title() const override
Definition pagedef.cpp:48
QCString label() const
Definition section.h:68
QCString fileName() const
Definition section.h:73
int lineNr() const
Definition section.h:72
QCString title() const
Definition section.h:69
SectionType type() const
Definition section.h:70
bool empty() const
Definition section.h:124
const_iterator end() const
Definition section.h:123
const_iterator begin() const
Definition section.h:122
constexpr bool isSection() const
Definition section.h:46
constexpr int level() const
Definition section.h:45
QCString parseCommentAsText(const Definition *scope, const MemberDef *md, const QCString &doc, const QCString &fileName, int lineNr)
Definition util.cpp:5707

References SectionRefs::begin(), SectionRefs::empty(), SectionRefs::end(), SectionInfo::fileName(), getOutputFileBase(), DefinitionMixin< PageDef >::getReference(), DefinitionMixin< PageDef >::getSectionRefs(), Doxygen::indexList, SectionType::isSection(), SectionInfo::label(), SectionType::level(), SectionInfo::lineNr(), parseCommentAsText(), title(), SectionInfo::title(), and SectionInfo::type().

◆ anchor()

QCString PageDefImpl::anchor ( ) const
inlineoverridevirtual

Returns the anchor within a page where this item can be found

Implements Definition.

Definition at line 46 of file pagedef.cpp.

46{ return QCString(); }

◆ codeSymbolType()

CodeSymbolType PageDefImpl::codeSymbolType ( ) const
inlineoverridevirtual

Used for syntax highlighting symbol class

Implements Definition.

Definition at line 42 of file pagedef.cpp.

References Default.

◆ definitionType()

DefType PageDefImpl::definitionType ( ) const
inlineoverridevirtual

Use this for dynamic inspection of the type of the derived class

Implements Definition.

Definition at line 41 of file pagedef.cpp.

41{ return TypePage; }

References Definition::TypePage.

◆ displayName()

QCString PageDefImpl::displayName ( bool includeScope = TRUE) const
inlineoverridevirtual

Returns the name of the definition as it appears in the output

Implements Definition.

Definition at line 60 of file pagedef.cpp.

60{ return hasTitle() ? m_title : DefinitionMixin::name(); }
const QCString & name() const override
bool hasTitle() const override
Definition pagedef.cpp:455

References hasTitle(), m_title, DefinitionMixin< Base >::name(), and TRUE.

◆ documentedPage()

bool PageDefImpl::documentedPage ( ) const
overridevirtual

Implements PageDef.

Definition at line 422 of file pagedef.cpp.

423{
424 return // not part of a group
425 !getGroupDef() &&
426 // not an externally defined page
427 !isReference();
428}
bool isReference() const override
const GroupDef * getGroupDef() const override
Definition pagedef.cpp:108

References getGroupDef(), and DefinitionMixin< PageDef >::isReference().

◆ findSectionsInDocumentation()

void PageDefImpl::findSectionsInDocumentation ( )
overridevirtual

Implements PageDef.

Definition at line 101 of file pagedef.cpp.

102{
106}
QCString docFile() const override
QCString briefDescription(bool abbreviate=FALSE) const override
QCString inbodyDocumentation() const override
QCString documentation() const override
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)

References DefinitionMixin< PageDef >::briefDescription(), DefinitionMixin< PageDef >::docFile(), docFindSections(), DefinitionMixin< PageDef >::documentation(), and DefinitionMixin< PageDef >::inbodyDocumentation().

◆ getGroupDef()

const GroupDef * PageDefImpl::getGroupDef ( ) const
overridevirtual

Implements PageDef.

Definition at line 108 of file pagedef.cpp.

109{
110 return !partOfGroups().empty() ? partOfGroups().front() : nullptr;
111}
const GroupList & partOfGroups() const override

References DefinitionMixin< PageDef >::partOfGroups().

Referenced by documentedPage(), getOutputFileBase(), and visibleInIndex().

◆ getOutputFileBase()

QCString PageDefImpl::getOutputFileBase ( ) const
overridevirtual

Returns the base file name (without extension) of this definition. as it is referenced to/written to disk.

Implements Definition.

Definition at line 113 of file pagedef.cpp.

114{
115 if (getGroupDef())
116 return getGroupDef()->getOutputFileBase();
117 else
118 return m_fileName;
119}
virtual QCString getOutputFileBase() const =0

References getGroupDef(), Definition::getOutputFileBase(), and m_fileName.

Referenced by addSectionsToIndex(), writeDocumentation(), and writeTagFile().

◆ getPageScope()

Definition * PageDefImpl::getPageScope ( ) const
inlineoverridevirtual

Implements PageDef.

Definition at line 59 of file pagedef.cpp.

59{ return m_pageScope; }

References m_pageScope.

◆ getSubPages()

const PageLinkedRefMap & PageDefImpl::getSubPages ( ) const
inlineoverridevirtual

Implements PageDef.

Definition at line 50 of file pagedef.cpp.

50{ return m_subPages; }

References m_subPages.

◆ hasParentPage()

bool PageDefImpl::hasParentPage ( ) const
overridevirtual

Implements PageDef.

Definition at line 197 of file pagedef.cpp.

198{
199 return getOuterScope() &&
201}
virtual DefType definitionType() const =0
Definition * getOuterScope() const override

References Definition::definitionType(), DefinitionMixin< PageDef >::getOuterScope(), and Definition::TypePage.

◆ hasSubPages()

bool PageDefImpl::hasSubPages ( ) const
overridevirtual

Implements PageDef.

Definition at line 430 of file pagedef.cpp.

431{
432 return !m_subPages.empty();
433}

References m_subPages.

Referenced by writePageDocumentation().

◆ hasTitle()

bool PageDefImpl::hasTitle ( ) const
overridevirtual

Implements PageDef.

Definition at line 455 of file pagedef.cpp.

456{
457 return !m_title.isEmpty() && m_title.lower()!="notitle";
458}

References m_title.

Referenced by displayName(), and writeDocumentation().

◆ isLinkable()

bool PageDefImpl::isLinkable ( ) const
inlineoverridevirtual

Returns TRUE iff it is possible to link to this item. This can be a link to another project imported via a tag file.

Implements Definition.

Definition at line 44 of file pagedef.cpp.

44{ return isLinkableInProject() || isReference(); }
bool isLinkableInProject() const override
Definition pagedef.cpp:43

References isLinkableInProject(), and DefinitionMixin< PageDef >::isReference().

◆ isLinkableInProject()

bool PageDefImpl::isLinkableInProject ( ) const
inlineoverridevirtual

Returns TRUE iff it is possible to link to this item within this project.

Implements Definition.

Definition at line 43 of file pagedef.cpp.

43{ return /*hasDocumentation() &&*/ !isReference(); }

References DefinitionMixin< PageDef >::isReference().

Referenced by isLinkable().

◆ localToc()

LocalToc PageDefImpl::localToc ( ) const
inlineoverridevirtual

Implements PageDef.

Definition at line 57 of file pagedef.cpp.

57{ return m_localToc; }
LocalToc m_localToc
Definition pagedef.cpp:75

References m_localToc.

◆ setFileName()

void PageDefImpl::setFileName ( const QCString & name)
overridevirtual

Implements PageDef.

Definition at line 121 of file pagedef.cpp.

122{
124}

References m_fileName, and DefinitionMixin< PageDef >::name().

◆ setLocalToc()

void PageDefImpl::setLocalToc ( const LocalToc & tl)
overridevirtual

Implements PageDef.

Definition at line 440 of file pagedef.cpp.

441{
442 m_localToc = lt;
443}

References m_localToc.

◆ setNestingLevel()

void PageDefImpl::setNestingLevel ( int l)
overridevirtual

Implements PageDef.

Definition at line 435 of file pagedef.cpp.

436{
437 m_nestingLevel = l;
438}

References m_nestingLevel.

◆ setPageScope()

void PageDefImpl::setPageScope ( Definition * d)
inlineoverridevirtual

Implements PageDef.

Definition at line 58 of file pagedef.cpp.

58{ m_pageScope = d; }

References m_pageScope.

◆ setShowLineNo()

void PageDefImpl::setShowLineNo ( bool b)
overridevirtual

Implements PageDef.

Definition at line 445 of file pagedef.cpp.

446{
447 m_showLineNo = b;
448}

References m_showLineNo.

◆ setTitle()

void PageDefImpl::setTitle ( const QCString & title)
overridevirtual

Implements PageDef.

Definition at line 460 of file pagedef.cpp.

461{
462 m_title = title;
463}

References m_title, and title().

◆ showLineNo()

bool PageDefImpl::showLineNo ( ) const
overridevirtual

Implements PageDef.

Definition at line 450 of file pagedef.cpp.

451{
452 return m_showLineNo;
453}

References m_showLineNo.

◆ title()

QCString PageDefImpl::title ( ) const
inlineoverridevirtual

Implements PageDef.

Definition at line 48 of file pagedef.cpp.

48{ return m_title; }

References m_title.

Referenced by addSectionsToIndex(), setTitle(), writeDocumentation(), and writeTagFile().

◆ visibleInIndex()

bool PageDefImpl::visibleInIndex ( ) const
overridevirtual

Implements PageDef.

Definition at line 413 of file pagedef.cpp.

414{
415 bool externalPages = Config_getBool(EXTERNAL_PAGES);
416 return // not part of a group
417 !getGroupDef() &&
418 // not an externally defined page
419 (!isReference() || externalPages);
420}
#define Config_getBool(name)
Definition config.h:33

References Config_getBool, getGroupDef(), and DefinitionMixin< PageDef >::isReference().

◆ writeDocumentation()

void PageDefImpl::writeDocumentation ( OutputList & ol)
overridevirtual

Implements PageDef.

Definition at line 233 of file pagedef.cpp.

234{
235 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
236 int hierarchyLevel = -1; // Pages start at the root
237 PageDef *pd = this;
238 while (pd->hasParentPage())
239 {
240 pd = (PageDef *)pd->getOuterScope();
241 ++hierarchyLevel;
242 }
243
244 //outputList->disable(OutputType::Man);
245 QCString pageName,manPageName;
246 pageName = escapeCharsInString(name(),FALSE,TRUE);
247 manPageName = escapeCharsInString(name(),TRUE,TRUE);
248
249 //printf("PageDefImpl::writeDocumentation: %s\n",getOutputFileBase().data());
250
252 //1.{
253
255 //2.{
257 startFile(ol,getOutputFileBase(),manPageName,title(),HighlightedItem::Pages,!generateTreeView,
258 QCString() /* altSidebarName */, hierarchyLevel);
259 ol.enableAll();
261 startFile(ol,getOutputFileBase(),pageName,title(),HighlightedItem::Pages,!generateTreeView,
262 QCString() /* altSidebarName */, hierarchyLevel);
264 //2.}
265
266 if (!generateTreeView)
267 {
268 if (getOuterScope()!=Doxygen::globalScope && !Config_getBool(DISABLE_INDEX))
269 {
270 DefinitionMutable *outerScope = toDefinitionMutable(getOuterScope());
271 if (outerScope)
272 {
273 outerScope->writeNavigationPath(ol);
274 }
275 }
276 ol.endQuickIndices();
277 }
278 const SectionInfo *si=SectionManager::instance().find(name());
279
280 // save old generator state and write title only to Man generator
282 //2.{
284 ol.startTitleHead(manPageName);
285 ol.endTitleHead(manPageName, manPageName);
286 if (si)
287 {
288 ol.writeString(" - ");
289
290 if (si->title() != manPageName)
291 {
292 ol.generateDoc(docFile(),getStartBodyLine(),this,nullptr,si->title(),TRUE,FALSE,
293 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
294 ol.endSection(si->label(),si->type());
295 }
296 }
298 //2.}
299
301 //2.{
303 QCString title;
304 if (this == Doxygen::mainPage.get() && !hasTitle())
306 else
307 title = m_title;
308
309 if (!title.isEmpty() && !name().isEmpty() && si!=nullptr)
310 {
311 ol.startPageDoc(si->title());
312 //ol.startSection(si->label,si->title,si->type);
315 ol.parseText(title);
317 ol.endHeaderSection();
318
319 /*ol.generateDoc(docFile(),getStartBodyLine(),this,nullptr,si->title(),TRUE,FALSE,
320 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));*/
321 }
322 else
323 ol.startPageDoc("");
325 //2.}
326
327 ol.startContents();
328 if ((m_localToc.isHtmlEnabled() || m_localToc.isLatexEnabled() || m_localToc.isDocbookEnabled())
329 && hasSections())
330 {
331 writeToc(ol, m_localToc);
332 }
333
335 ol.endContents();
336 ol.endPageDoc();
337
338 if (generateTreeView && getOuterScope()!=Doxygen::globalScope && !Config_getBool(DISABLE_INDEX))
339 {
341 }
342 else
343 {
344 endFile(ol,FALSE,TRUE);
345 }
346
348 //1.}
349}
virtual bool hasSections() const =0
virtual Definition * getOuterScope() const =0
friend DefinitionMutable * toDefinitionMutable(Definition *)
int getStartBodyLine() const override
void writeToc(OutputList &ol, const LocalToc &lt) const override
virtual void writeNavigationPath(OutputList &ol) const =0
static NamespaceDefMutable * globalScope
Definition doxygen.h:121
const T * find(const std::string &key) const
Find an object given the key.
Definition linkedmap.h:47
void writeString(const QCString &text)
Definition outputlist.h:412
void endTitleHead(const QCString &fileName, const QCString &name)
Definition outputlist.h:406
void endSection(const QCString &lab, SectionType t)
Definition outputlist.h:589
void disable(OutputType o)
void startTitleHead(const QCString &fileName)
Definition outputlist.h:404
void endContents()
Definition outputlist.h:619
void endHeaderSection()
Definition outputlist.h:468
void startHeaderSection()
Definition outputlist.h:466
void endPageDoc()
Definition outputlist.h:623
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 popGeneratorState()
void endQuickIndices()
Definition outputlist.h:605
void startPageDoc(const QCString &pageTitle)
Definition outputlist.h:621
void startContents()
Definition outputlist.h:617
void enableAll()
void parseText(const QCString &textStr)
virtual bool hasParentPage() const =0
void writePageDocumentation(OutputList &ol) const override
Definition pagedef.cpp:351
static SectionManager & instance()
returns a reference to the singleton
Definition section.h:175
virtual QCString trMainPage()=0
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const QCString &navPath)
Definition index.cpp:421
void startFile(OutputList &ol, const QCString &name, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel)
Definition index.cpp:402
void endFileWithNavPath(OutputList &ol, const Definition *d)
Definition index.cpp:441
Translator * theTranslator
Definition language.cpp:71
QCString escapeCharsInString(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:3684

References Config_getBool, OutputList::disable(), OutputList::disableAllBut(), DefinitionMixin< PageDef >::docFile(), OutputList::enableAll(), OutputList::endContents(), endFile(), endFileWithNavPath(), OutputList::endHeaderSection(), OutputList::endPageDoc(), OutputList::endQuickIndices(), OutputList::endSection(), OutputList::endTitleHead(), escapeCharsInString(), FALSE, LinkedMap< T, Hash, KeyEqual, Map >::find(), OutputList::generateDoc(), Definition::getOuterScope(), DefinitionMixin< PageDef >::getOuterScope(), getOutputFileBase(), DefinitionMixin< PageDef >::getStartBodyLine(), Doxygen::globalScope, PageDef::hasParentPage(), DefinitionMixin< PageDef >::hasSections(), hasTitle(), SectionManager::instance(), SectionInfo::label(), m_localToc, m_title, Doxygen::mainPage, Man, DefinitionMixin< PageDef >::name(), Pages, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startContents(), startFile(), OutputList::startHeaderSection(), OutputList::startPageDoc(), OutputList::startTitleHead(), theTranslator, title(), SectionInfo::title(), Definition::toDefinitionMutable, TRUE, SectionInfo::type(), DefinitionMutable::writeNavigationPath(), writePageDocumentation(), OutputList::writeString(), and DefinitionMixin< PageDef >::writeToc().

◆ writePageDocumentation()

void PageDefImpl::writePageDocumentation ( OutputList & ol) const
overridevirtual

Implements PageDef.

Definition at line 351 of file pagedef.cpp.

352{
353 ol.startTextBlock();
354 QCString docStr = (briefDescription().isEmpty()?"":briefDescription()+"\n\n")+documentation()+inbodyDocumentation();
356 {
359 ol.writeString(" - ");
361 }
363 ol.generateDoc(
364 docFile(), // fileName
365 docLine(), // startLine
366 this, // context
367 nullptr, // memberdef
368 docStr, // docStr
369 true, // index words
370 false, // not an example
371 QCString(), // exampleName
372 false, // singleLine
373 false, // linkFromIndex
374 TRUE // markdown support
375 );
376 ol.enableAll();
378 ol.generateDoc(
379 docFile(), // fileName
380 docLine(), // startLine
381 this, // context
382 nullptr, // memberdef
383 docStr, // docStr
384 false, // index words
385 false, // not an example
386 QCString(), // exampleName
387 false, // singleLine
388 false, // linkFromIndex
389 TRUE // markdown support
390 );
392 ol.endTextBlock();
393
394 if (hasSubPages())
395 {
396 // for printed documentation we write subpages as section's of the
397 // parent page.
399 ol.disableAll();
403
404 for (const auto &subPage : m_subPages)
405 {
406 ol.writePageLink(subPage->getOutputFileBase(), FALSE);
407 }
408
410 }
411}
bool hasBriefDescription() const override
int docLine() const override
void endTextBlock(bool paraBreak=FALSE)
Definition outputlist.h:671
void enable(OutputType o)
void startTextBlock(bool dense=FALSE)
Definition outputlist.h:669
void disableAll()
void writePageLink(const QCString &name, bool first)
Definition outputlist.h:390
bool hasSubPages() const override
Definition pagedef.cpp:430

References DefinitionMixin< PageDef >::briefDescription(), OutputList::disable(), OutputList::disableAll(), OutputList::disableAllBut(), Docbook, DefinitionMixin< PageDef >::docFile(), DefinitionMixin< PageDef >::docLine(), DefinitionMixin< PageDef >::documentation(), OutputList::enable(), OutputList::enableAll(), OutputList::endTextBlock(), FALSE, OutputList::generateDoc(), DefinitionMixin< PageDef >::hasBriefDescription(), hasSubPages(), Html, DefinitionMixin< PageDef >::inbodyDocumentation(), SectionManager::instance(), QCString::isEmpty(), Latex, m_subPages, Man, DefinitionMixin< PageDef >::name(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, OutputList::startTextBlock(), TRUE, OutputList::writePageLink(), and OutputList::writeString().

Referenced by writeDocumentation().

◆ writeTagFile()

void PageDefImpl::writeTagFile ( TextStream & tagFile)
overridevirtual

Implements PageDef.

Definition at line 203 of file pagedef.cpp.

204{
205 bool found = name()=="citelist";
207 {
208 if (rl->listName()==name())
209 {
210 found=TRUE;
211 break;
212 }
213 }
214 if (!found) // not one of the generated related pages
215 {
216 QCString fn = getOutputFileBase();
218 tagFile << " <compound kind=\"page\">\n";
219 tagFile << " <name>" << name() << "</name>\n";
220 tagFile << " <title>" << convertToXML(title()) << "</title>\n";
221 tagFile << " <filename>" << fn << "</filename>\n";
222 for (const auto &subPage : m_subPages)
223 {
224 QCString sfn = subPage->getOutputFileBase();
226 tagFile << " <subpage>" << sfn << "</subpage>\n";
227 }
229 tagFile << " </compound>\n";
230 }
231}
void writeDocAnchorsToTagFile(TextStream &fs) const override
std::unique_ptr< RefList > Ptr
Definition linkedmap.h:38
static RefListManager & instance()
Definition reflist.h:121
bool found
Definition util.cpp:984
QCString convertToXML(const QCString &s, bool keepEntities)
Definition util.cpp:4266
void addHtmlExtensionIfMissing(QCString &fName)
Definition util.cpp:5243

References addHtmlExtensionIfMissing(), convertToXML(), found, getOutputFileBase(), RefListManager::instance(), m_subPages, DefinitionMixin< PageDef >::name(), title(), TRUE, and DefinitionMixin< PageDef >::writeDocAnchorsToTagFile().

Member Data Documentation

◆ m_fileName

QCString PageDefImpl::m_fileName
private

Definition at line 70 of file pagedef.cpp.

Referenced by getOutputFileBase(), PageDefImpl(), and setFileName().

◆ m_localToc

LocalToc PageDefImpl::m_localToc
private

Definition at line 75 of file pagedef.cpp.

Referenced by localToc(), setLocalToc(), and writeDocumentation().

◆ m_nestingLevel

int PageDefImpl::m_nestingLevel
private

Definition at line 74 of file pagedef.cpp.

Referenced by addInnerCompound(), PageDefImpl(), and setNestingLevel().

◆ m_pageScope

Definition* PageDefImpl::m_pageScope
private

Definition at line 73 of file pagedef.cpp.

Referenced by getPageScope(), PageDefImpl(), and setPageScope().

◆ m_showLineNo

bool PageDefImpl::m_showLineNo
private

Definition at line 76 of file pagedef.cpp.

Referenced by PageDefImpl(), setShowLineNo(), and showLineNo().

◆ m_subPages

PageLinkedRefMap PageDefImpl::m_subPages
private

◆ m_title

QCString PageDefImpl::m_title
private

Definition at line 71 of file pagedef.cpp.

Referenced by displayName(), hasTitle(), PageDefImpl(), setTitle(), title(), and writeDocumentation().


The documentation for this class was generated from the following file: