Doxygen
Loading...
Searching...
No Matches
GroupDefImpl Class Referencefinal
Inheritance diagram for GroupDefImpl:
Collaboration diagram for GroupDefImpl:

Public Member Functions

 GroupDefImpl (const DString &fileName, int line, const DString &name, const DString &title, const DString &refFileName=DString())
 ~GroupDefImpl () override
DefType definitionType () const override
CodeSymbolType codeSymbolType () const override
DString getOutputFileBase () const override
DString anchor () const override
DString displayName (bool=true) const override
DString groupTitle () const override
DString groupTitleAsText () const override
void setGroupTitle (const DString &newtitle) override
bool hasGroupTitle () const override
void addFile (FileDef *def) override
bool containsFile (const FileDef *def) const override
bool addClass (ClassDef *def) override
bool addConcept (ConceptDef *def) override
bool addModule (ModuleDef *def) override
bool addNamespace (NamespaceDef *def) override
void addGroup (GroupDef *def) override
void addPage (PageDef *def) override
void addExample (PageDef *def) override
void addDir (DirDef *dd) override
bool insertMember (MemberDef *def, bool docOnly=false) override
void removeMember (MemberDef *md) override
bool findGroup (const GroupDef *def) const override
void writeDocumentation (OutputList &ol) override
void writeMemberPages (OutputList &ol, int hierarchyLevel) override
void writeQuickMemberLinks (OutputList &ol, const MemberDef *currentMd) const override
void writeTagFile (TextStream &) override
size_t numDocMembers () const override
bool isLinkableInProject () const override
bool isLinkable () const override
bool isVisibleInHierarchy () const override
bool isASubGroup () const override
void computeAnchors () override
void countMembers () override
void addMembersToMemberGroup () override
void distributeMemberGroupDocumentation () override
void findSectionsInDocumentation () override
void addListReferences () override
void addRequirementReferences () override
void sortMemberLists () override
bool subGrouping () const override
void setGroupScope (Definition *d) override
DefinitiongetGroupScope () const override
MemberListgetMemberList (MemberListType lt) const override
const MemberListsgetMemberLists () const override
const MemberGroupListgetMemberGroups () const override
const FileListgetFiles () const override
const ClassLinkedRefMapgetClasses () const override
const ConceptLinkedRefMapgetConcepts () const override
const ModuleLinkedRefMapgetModules () const override
const NamespaceLinkedRefMapgetNamespaces () const override
const GroupListgetSubGroups () const override
const PageLinkedRefMapgetPages () const override
const DirListgetDirs () const override
const PageLinkedRefMapgetExamples () const override
bool hasDetailedDescription () const override
void sortSubGroups () override
void writeSummaryLinks (OutputList &ol) const override
void writePageNavigation (OutputList &ol) const override
bool hasGroupGraph () const override
void overrideGroupGraph (bool e) override
Public Member Functions inherited from DefinitionMixin< GroupDef >
 DefinitionMixin (const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
DefinitionMixinoperator= (const DefinitionMixin &other)
 ~DefinitionMixin () override=default
bool isAlias () const override
const DStringname () const override
bool isAnonymous () const override
const DStringlocalName () const override
DString qualifiedName () const override
DString symbolName () const override
DString getSourceFileBase () const override
DString getSourceAnchor () const override
DString documentation () const override
int docLine () const override
DString docFile () const override
DString briefDescription (bool abbreviate=false) const override
DString briefDescriptionAsTooltip () const override
int briefLine () const override
DString inbodyDocumentation () const override
DString inbodyFile () const override
int inbodyLine () const override
DString briefFile () const override
DString getDefFileName () const override
DString getDefFileExtension () const override
int getDefLine () const override
size_t 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
DString getReference () const override
bool isReference () const override
DString externalReference (const DString &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 RequirementRefsrequirementReferences () const override
const DefinitionfindInnerCompound (const DString &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
DString id () const override
const SectionRefsgetSectionRefs () const override
void setName (const DString &name) override
void setId (const DString &name) override
void setDefFile (const DString &df, int defLine, size_t defColumn) override
void setDocumentation (const DString &doc, const DString &docFile, int docLine, bool stripWhiteSpace=true) override
void setBriefDescription (const DString &brief, const DString &briefFile, int briefLine) override
void setInbodyDocumentation (const DString &doc, const DString &docFile, int docLine) override
void setReference (const DString &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 DString &sourceRefName) override
void addSourceReferences (MemberDef *md, const DString &sourceRefName) override
void setRefItems (const RefItemVector &sli) override
void setRequirementReferences (const RequirementRefs &rqli) override
void mergeRefItems (Definition *def) override
void mergeReferences (const Definition *other) override
void mergeReferencedBy (const Definition *other) override
void addInnerCompound (Definition *def) 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 DString &scopeName) const override
bool hasSourceRefs () const override
bool hasSourceReffedBy () const override
void writeSourceRefs (OutputList &ol, const DString &scopeName) const override
void writeSourceReffedBy (OutputList &ol, const DString &scopeName) const override
bool hasRequirementRefs () const override
void writeRequirementRefs (OutputList &ol) const override
void makePartOfGroup (GroupDef *gd) override
void writeNavigationPath (OutputList &ol) const override
DString navigationPathAsString () const override
DString pathFragment () const override
void writeDocAnchorsToTagFile (TextStream &fs) const override
void setLocalName (const DString &name) override
void writeToc (OutputList &ol, const LocalToc &lt) const override
void computeTooltip () override
void _setSymbolName (const DString &name) override
DString _symbolName () const override

Private Member Functions

void addMemberListToGroup (MemberList *, bool(MemberDef::*)() const)
void addMemberToList (MemberListType lt, MemberDef *md)
void writeMemberDeclarations (OutputList &ol, MemberListType lt, const DString &title)
void writeMemberDocumentation (OutputList &ol, MemberListType lt, const DString &title)
void removeMemberFromList (MemberListType lt, MemberDef *md)
void writeGroupGraph (OutputList &ol)
void writeFiles (OutputList &ol, const DString &title)
void writeNamespaces (OutputList &ol, const DString &title)
void writeNestedGroups (OutputList &ol, const DString &title)
void writeDirs (OutputList &ol, const DString &title)
void writeClasses (OutputList &ol, const DString &title)
void writeConcepts (OutputList &ol, const DString &title)
void writeModules (OutputList &ol, const DString &title)
void writeInlineClasses (OutputList &ol)
void writePageDocumentation (OutputList &ol)
void writeDetailedDescription (OutputList &ol, const DString &title)
void writeBriefDescription (OutputList &ol)
void writeMemberGroups (OutputList &ol)
void startMemberDeclarations (OutputList &ol)
void endMemberDeclarations (OutputList &ol)
void startMemberDocumentation (OutputList &ol)
void endMemberDocumentation (OutputList &ol)
void writeAuthorSection (OutputList &ol)
void updateLanguage (const Definition *)
void setGroupTitleLocal (const DString &title)

Private Attributes

DString m_title
DString m_titleAsText
bool m_titleSet
DString m_fileName
FileList m_fileList
ClassLinkedRefMap m_classes
ConceptLinkedRefMap m_concepts
ModuleLinkedRefMap m_modules
NamespaceLinkedRefMap m_namespaces
GroupList m_groups
PageLinkedRefMap m_pages
PageLinkedRefMap m_examples
DirList m_dirList
MemberList m_allMemberList
MemberNameInfoLinkedMap m_allMemberNameInfoLinkedMap
Definitionm_groupScope = nullptr
MemberLists m_memberLists
MemberGroupList m_memberGroups
bool m_subGrouping
bool m_hasGroupGraph = false

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 55 of file groupdef.cpp.

Constructor & Destructor Documentation

◆ GroupDefImpl()

GroupDefImpl::GroupDefImpl ( const DString & fileName,
int line,
const DString & name,
const DString & title,
const DString & refFileName = DString() )

Definition at line 189 of file groupdef.cpp.

190 : DefinitionMixin(df,dl,1,na),
191 m_allMemberList(MemberListType::AllMembersList(),MemberListContainer::Group)
192{
193 if (!refFileName.empty())
194 {
195 m_fileName=stripExtension(refFileName);
196 }
197 else
198 {
199 m_fileName = convertNameToFile(DString("group_")+na);
200 }
202
203 //visited = 0;
204 m_groupScope = nullptr;
205 m_subGrouping=Config_getBool(SUBGROUPING);
206 m_hasGroupGraph=Config_getBool(GROUP_GRAPHS);
207}
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:148
DefinitionMixin(const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
MemberList m_allMemberList
Definition groupdef.cpp:170
bool m_subGrouping
Definition groupdef.cpp:175
DString m_fileName
Definition groupdef.cpp:160
Definition * m_groupScope
Definition groupdef.cpp:172
void setGroupTitleLocal(const DString &title)
Definition groupdef.cpp:213
bool m_hasGroupGraph
Definition groupdef.cpp:176
#define Config_getBool(name)
Definition config.h:33
DString stripExtension(const DString &fName)
Definition util.cpp:3955
DString convertNameToFile(const DString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:2863

References Config_getBool, DefinitionMixin< GroupDef >::DefinitionMixin(), DString::empty(), Group, m_allMemberList, m_groupScope, m_hasGroupGraph, m_subGrouping, and setGroupTitleLocal().

◆ ~GroupDefImpl()

GroupDefImpl::~GroupDefImpl ( )
override

Definition at line 209 of file groupdef.cpp.

210{
211}

Member Function Documentation

◆ addClass()

bool GroupDefImpl::addClass ( ClassDef * def)
overridevirtual

Implements GroupDef.

Definition at line 283 of file groupdef.cpp.

284{
285 if (cd->isHidden()) return false;
286 updateLanguage(cd);
287 DString qn = cd->name();
288 if (m_classes.find(qn)==nullptr)
289 {
290 m_classes.add(qn,cd);
291 return true;
292 }
293 return false;
294}
void updateLanguage(const Definition *)
ClassLinkedRefMap m_classes
Definition groupdef.cpp:162
bool add(const char *k, T *obj)
Definition linkedmap.h:284
const T * find(const std::string &key) const
Definition linkedmap.h:243

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), LinkedRefMap< T, Hash, KeyEqual, Map >::find(), Definition::isHidden(), m_classes, Definition::name(), and updateLanguage().

◆ addConcept()

bool GroupDefImpl::addConcept ( ConceptDef * def)
overridevirtual

Implements GroupDef.

Definition at line 296 of file groupdef.cpp.

297{
298 if (cd->isHidden()) return false;
299 DString qn = cd->name();
300 if (m_concepts.find(qn)==nullptr)
301 {
302 m_concepts.add(qn,cd);
303 return true;
304 }
305 return false;
306}
ConceptLinkedRefMap m_concepts
Definition groupdef.cpp:163

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), LinkedRefMap< T, Hash, KeyEqual, Map >::find(), Definition::isHidden(), m_concepts, and Definition::name().

◆ addDir()

void GroupDefImpl::addDir ( DirDef * dd)
overridevirtual

Implements GroupDef.

Definition at line 333 of file groupdef.cpp.

334{
335 if (def->isHidden()) return;
336 m_dirList.push_back(def);
337}
DirList m_dirList
Definition groupdef.cpp:169

References Definition::isHidden(), and m_dirList.

◆ addExample()

void GroupDefImpl::addExample ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 347 of file groupdef.cpp.

348{
349 if (def->isHidden()) return;
350 m_examples.add(def->name(),def);
351}
virtual const DString & name() const =0
virtual bool isHidden() const =0
PageLinkedRefMap m_examples
Definition groupdef.cpp:168

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), Definition::isHidden(), m_examples, and Definition::name().

◆ addFile()

void GroupDefImpl::addFile ( FileDef * def)
overridevirtual

Implements GroupDef.

Definition at line 264 of file groupdef.cpp.

265{
266 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
267 if (def->isHidden()) return;
268 updateLanguage(def);
269 if (sortBriefDocs)
270 m_fileList.insert( std::upper_bound( m_fileList.begin(), m_fileList.end(), def,
271 [](const auto &fd1, const auto &fd2)
272 { return dstricmp_sort(fd1->name(),fd2->name())<0; }),
273 def);
274 else
275 m_fileList.push_back(def);
276}
FileList m_fileList
Definition groupdef.cpp:161

References Config_getBool, Definition::isHidden(), m_fileList, and updateLanguage().

◆ addGroup()

void GroupDefImpl::addGroup ( GroupDef * def)
overridevirtual

Implements GroupDef.

Definition at line 609 of file groupdef.cpp.

610{
611 //printf("adding group '%s' to group '%s'\n",qPrint(def->name()),qPrint(name()));
612 //if (Config_getBool(SORT_MEMBER_DOCS))
613 // groupList->inSort(def);
614 //else
615 m_groups.push_back(def);
616}
GroupList m_groups
Definition groupdef.cpp:166

References m_groups.

◆ addListReferences()

void GroupDefImpl::addListReferences ( )
overridevirtual

Implements GroupDef.

Definition at line 1807 of file groupdef.cpp.

1808{
1811 theTranslator->trGroup(true,true),
1813 DString(),
1814 nullptr
1815 );
1816 for (const auto &mg : m_memberGroups)
1817 {
1818 mg->addListReferences(this);
1819 }
1820 for (auto &ml : m_memberLists)
1821 {
1822 if (ml->listType().isDocumentation())
1823 {
1824 ml->addListReferences(this);
1825 }
1826 }
1827}
const DString & name() const override
const RefItemVector & xrefListItems() const override
DString getOutputFileBase() const override
MemberGroupList m_memberGroups
Definition groupdef.cpp:174
MemberLists m_memberLists
Definition groupdef.cpp:173
virtual DString trGroup(bool first_capital, bool singular)=0
Translator * theTranslator
Definition language.cpp:76
void addRefItem(const RefItemVector &sli, const DString &key, const DString &prefix, const DString &name, const DString &title, const DString &args, const Definition *scope)
Definition reflist.h:136

References addRefItem(), getOutputFileBase(), m_memberGroups, m_memberLists, DefinitionMixin< GroupDef >::name(), theTranslator, Translator::trGroup(), and DefinitionMixin< GroupDef >::xrefListItems().

◆ addMemberListToGroup()

void GroupDefImpl::addMemberListToGroup ( MemberList * ,
bool(MemberDef::*  )() const )
private

◆ addMembersToMemberGroup()

void GroupDefImpl::addMembersToMemberGroup ( )
overridevirtual

Implements GroupDef.

Definition at line 354 of file groupdef.cpp.

355{
356 for (auto &ml : m_memberLists)
357 {
358 if (ml->listType().isDeclaration())
359 {
361 }
362 }
363}
void addMembersToMemberGroup() override
Definition groupdef.cpp:354

References addMembersToMemberGroup(), m_memberGroups, and m_memberLists.

Referenced by addMembersToMemberGroup().

◆ addMemberToList()

void GroupDefImpl::addMemberToList ( MemberListType lt,
MemberDef * md )
private

Definition at line 1845 of file groupdef.cpp.

1846{
1847 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
1848 bool sortMemberDocs = Config_getBool(SORT_MEMBER_DOCS);
1849 const auto &ml = m_memberLists.get(lt,MemberListContainer::Group);
1850 ml->setNeedsSorting(
1851 (ml->listType().isDeclaration() && sortBriefDocs) ||
1852 (ml->listType().isDocumentation() && sortMemberDocs));
1853 ml->push_back(md);
1854}
const std::unique_ptr< MemberList > & get(MemberListType lt, MemberListContainer con)
Definition memberlist.h:192

References Config_getBool, MemberLists::get(), Group, and m_memberLists.

Referenced by insertMember().

◆ addModule()

bool GroupDefImpl::addModule ( ModuleDef * def)
overridevirtual

Implements GroupDef.

Definition at line 308 of file groupdef.cpp.

309{
310 if (mod->isHidden()) return false;
311 DString qn = mod->name();
312 if (m_modules.find(qn)==nullptr)
313 {
314 m_modules.add(qn,mod);
315 return true;
316 }
317 return false;
318}
ModuleLinkedRefMap m_modules
Definition groupdef.cpp:164

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), LinkedRefMap< T, Hash, KeyEqual, Map >::find(), Definition::isHidden(), m_modules, and Definition::name().

◆ addNamespace()

bool GroupDefImpl::addNamespace ( NamespaceDef * def)
overridevirtual

Implements GroupDef.

Definition at line 320 of file groupdef.cpp.

321{
322 //printf("adding namespace hidden=%d\n",def->isHidden());
323 if (def->isHidden()) return false;
324 if (m_namespaces.find(def->name())==nullptr)
325 {
326 updateLanguage(def);
327 m_namespaces.add(def->name(),def);
328 return true;
329 }
330 return false;
331}
NamespaceLinkedRefMap m_namespaces
Definition groupdef.cpp:165

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), LinkedRefMap< T, Hash, KeyEqual, Map >::find(), Definition::isHidden(), m_namespaces, Definition::name(), and updateLanguage().

◆ addPage()

void GroupDefImpl::addPage ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 339 of file groupdef.cpp.

340{
341 if (def->isHidden()) return;
342 //printf("Making page %s part of a group\n",qPrint(def->name));
343 m_pages.add(def->name(),def);
344 def->makePartOfGroup(this);
345}
virtual void makePartOfGroup(GroupDef *gd)=0
PageLinkedRefMap m_pages
Definition groupdef.cpp:167

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), Definition::isHidden(), m_pages, DefinitionMutable::makePartOfGroup(), and Definition::name().

◆ addRequirementReferences()

void GroupDefImpl::addRequirementReferences ( )
overridevirtual

Implements GroupDef.

Definition at line 1829 of file groupdef.cpp.

1830{
1832 for (const auto &mg : m_memberGroups)
1833 {
1834 mg->addRequirementReferences(this);
1835 }
1836 for (auto &ml : m_memberLists)
1837 {
1838 if (ml->listType().isDocumentation())
1839 {
1840 ml->addRequirementReferences(this);
1841 }
1842 }
1843}
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)

References RequirementManager::addRequirementRefsForSymbol(), RequirementManager::instance(), m_memberGroups, and m_memberLists.

◆ anchor()

DString GroupDefImpl::anchor ( ) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 65 of file groupdef.cpp.

65{ return DString(); }

◆ codeSymbolType()

CodeSymbolType GroupDefImpl::codeSymbolType ( ) const
inlineoverridevirtual

Used for syntax highlighting symbol class

Implements Definition.

Definition at line 63 of file groupdef.cpp.

References Default.

◆ computeAnchors()

void GroupDefImpl::computeAnchors ( )
overridevirtual

Compute the HTML anchor names for all members in the group

Implements GroupDef.

Definition at line 649 of file groupdef.cpp.

650{
651 //printf("GroupDefImpl::computeAnchors()\n");
653}
void setAnchors()

References m_allMemberList, and MemberList::setAnchors().

◆ containsFile()

bool GroupDefImpl::containsFile ( const FileDef * def) const
overridevirtual

Implements GroupDef.

Definition at line 278 of file groupdef.cpp.

279{
280 return std::find(m_fileList.cbegin(),m_fileList.cend(), def) != m_fileList.cend();
281}

References m_fileList.

◆ countMembers()

void GroupDefImpl::countMembers ( )
overridevirtual

Implements GroupDef.

Definition at line 623 of file groupdef.cpp.

624{
625 for (auto &ml : m_memberLists)
626 {
627 ml->countDecMembers();
628 ml->countDocMembers();
629 }
630 for (const auto &mg : m_memberGroups)
631 {
632 mg->countDecMembers();
633 mg->countDocMembers();
634 }
635}

References m_memberGroups, and m_memberLists.

◆ definitionType()

DefType GroupDefImpl::definitionType ( ) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 62 of file groupdef.cpp.

62{ return TypeGroup; }

References definitionType(), and Definition::TypeGroup.

Referenced by definitionType(), and insertMember().

◆ displayName()

DString GroupDefImpl::displayName ( bool includeScope = true) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 66 of file groupdef.cpp.

bool hasGroupTitle() const override
Definition groupdef.cpp:70
DString m_title
Definition groupdef.cpp:157

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

◆ distributeMemberGroupDocumentation()

void GroupDefImpl::distributeMemberGroupDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 236 of file groupdef.cpp.

237{
238 for (const auto &mg : m_memberGroups)
239 {
240 mg->distributeMemberGroupDocumentation();
241 }
242}

References m_memberGroups.

◆ endMemberDeclarations()

void GroupDefImpl::endMemberDeclarations ( OutputList & ol)
private

Definition at line 1129 of file groupdef.cpp.

1130{
1131 ol.endMemberSections();
1132}
void endMemberSections()
Definition outputlist.h:459

References OutputList::endMemberSections().

Referenced by writeDocumentation().

◆ endMemberDocumentation()

void GroupDefImpl::endMemberDocumentation ( OutputList & ol)
private

Definition at line 1145 of file groupdef.cpp.

1146{
1147 //printf("** GroupDefImpl::endMemberDocumentation()\n");
1148 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1149 {
1150 ol.popGeneratorState();
1152 }
1153}
static bool suppressDocWarnings
Definition doxygen.h:123
void popGeneratorState()

References Config_getBool, OutputList::popGeneratorState(), and Doxygen::suppressDocWarnings.

Referenced by writeDocumentation().

◆ findGroup()

bool GroupDefImpl::findGroup ( const GroupDef * def) const
overridevirtual

Implements GroupDef.

Definition at line 593 of file groupdef.cpp.

594{
595 if (this==def)
596 {
597 return true;
598 }
599 for (const auto &gd : m_groups)
600 {
601 if (gd->findGroup(def))
602 {
603 return true;
604 }
605 }
606 return false;
607}

References m_groups.

◆ findSectionsInDocumentation()

void GroupDefImpl::findSectionsInDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 244 of file groupdef.cpp.

245{
249
250 for (const auto &mg : m_memberGroups)
251 {
252 mg->findSectionsInDocumentation(this);
253 }
254
255 for (auto &ml : m_memberLists)
256 {
257 if (ml->listType().isDeclaration())
258 {
259 ml->findSectionsInDocumentation(this);
260 }
261 }
262}
DString docFile() const override
DString briefDescription(bool abbreviate=false) const override
DString documentation() const override
DString inbodyDocumentation() const override
void docFindSections(const DString &input, const Definition *d, const DString &fileName)

References DefinitionMixin< GroupDef >::briefDescription(), DefinitionMixin< GroupDef >::docFile(), docFindSections(), DefinitionMixin< GroupDef >::documentation(), DefinitionMixin< GroupDef >::inbodyDocumentation(), m_memberGroups, and m_memberLists.

◆ getClasses()

const ClassLinkedRefMap & GroupDefImpl::getClasses ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 115 of file groupdef.cpp.

115{ return m_classes; }

References m_classes.

◆ getConcepts()

const ConceptLinkedRefMap & GroupDefImpl::getConcepts ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 116 of file groupdef.cpp.

116{ return m_concepts; }

References m_concepts.

◆ getDirs()

const DirList & GroupDefImpl::getDirs ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 121 of file groupdef.cpp.

121{ return m_dirList; }

References m_dirList.

◆ getExamples()

const PageLinkedRefMap & GroupDefImpl::getExamples ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 122 of file groupdef.cpp.

122{ return m_examples; }

References m_examples.

◆ getFiles()

const FileList & GroupDefImpl::getFiles ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 114 of file groupdef.cpp.

114{ return m_fileList; }

References m_fileList.

◆ getGroupScope()

Definition * GroupDefImpl::getGroupScope ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 106 of file groupdef.cpp.

106{ return m_groupScope; }

References m_groupScope.

◆ getMemberGroups()

const MemberGroupList & GroupDefImpl::getMemberGroups ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 112 of file groupdef.cpp.

112{ return m_memberGroups; }

References m_memberGroups.

◆ getMemberList()

MemberList * GroupDefImpl::getMemberList ( MemberListType lt) const
overridevirtual

Implements GroupDef.

Definition at line 1966 of file groupdef.cpp.

1967{
1968 for (auto &ml : m_memberLists)
1969 {
1970 if (ml->listType()==lt)
1971 {
1972 return ml.get();
1973 }
1974 }
1975 return nullptr;
1976}

References m_memberLists.

Referenced by removeMemberFromList(), writeMemberDeclarations(), writeMemberDocumentation(), writeSummaryLinks(), and writeTagFile().

◆ getMemberLists()

const MemberLists & GroupDefImpl::getMemberLists ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 109 of file groupdef.cpp.

109{ return m_memberLists; }

References m_memberLists.

◆ getModules()

const ModuleLinkedRefMap & GroupDefImpl::getModules ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 117 of file groupdef.cpp.

117{ return m_modules; }

References m_modules.

◆ getNamespaces()

const NamespaceLinkedRefMap & GroupDefImpl::getNamespaces ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 118 of file groupdef.cpp.

118{ return m_namespaces; }

References m_namespaces.

◆ getOutputFileBase()

DString GroupDefImpl::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 1802 of file groupdef.cpp.

1803{
1804 return m_fileName;
1805}

References m_fileName.

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

◆ getPages()

const PageLinkedRefMap & GroupDefImpl::getPages ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 120 of file groupdef.cpp.

120{ return m_pages; }

References m_pages.

◆ getSubGroups()

const GroupList & GroupDefImpl::getSubGroups ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 119 of file groupdef.cpp.

119{ return m_groups; }

References m_groups.

Referenced by writeDocumentation().

◆ groupTitle()

DString GroupDefImpl::groupTitle ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 67 of file groupdef.cpp.

67{ return m_title; }

References m_title.

◆ groupTitleAsText()

DString GroupDefImpl::groupTitleAsText ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 68 of file groupdef.cpp.

68{ return m_titleAsText; }
DString m_titleAsText
Definition groupdef.cpp:158

References m_titleAsText.

◆ hasDetailedDescription()

bool GroupDefImpl::hasDetailedDescription ( ) const
overridevirtual

Implements GroupDef.

Definition at line 2063 of file groupdef.cpp.

2064{
2065 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
2066 return ((!briefDescription().empty() && repeatBrief) ||
2067 !documentation().empty() ||
2068 !inbodyDocumentation().empty() ||
2070}
bool hasRequirementRefs() const override

References DefinitionMixin< GroupDef >::briefDescription(), Config_getBool, DefinitionMixin< GroupDef >::documentation(), DefinitionMixin< GroupDef >::hasRequirementRefs(), and DefinitionMixin< GroupDef >::inbodyDocumentation().

Referenced by writeBriefDescription(), and writeDetailedDescription().

◆ hasGroupGraph()

bool GroupDefImpl::hasGroupGraph ( ) const
overridevirtual

Implements GroupDef.

Definition at line 2077 of file groupdef.cpp.

2078{
2079 return m_hasGroupGraph;
2080}

References m_hasGroupGraph.

◆ hasGroupTitle()

bool GroupDefImpl::hasGroupTitle ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 70 of file groupdef.cpp.

70{ return m_titleSet; }

References m_titleSet.

Referenced by displayName().

◆ insertMember()

bool GroupDefImpl::insertMember ( MemberDef * def,
bool docOnly = false )
overridevirtual

Implements GroupDef.

Definition at line 366 of file groupdef.cpp.

367{
368 if (md->isHidden()) return false;
369 updateLanguage(md);
370 //printf("GroupDef(%s)::insertMember(%s)\n", qPrint(title), qPrint(md->name()));
371 MemberNameInfo *mni = m_allMemberNameInfoLinkedMap.add(md->name());
372 for (auto &srcMi : *mni)
373 {
374 const MemberDef *srcMd = srcMi->memberDef();
375 if (srcMd==md) return false; // already added before!
376
377 bool sameScope = srcMd->getOuterScope()==md->getOuterScope() || // same class or namespace
378 // both inside a file => definition and declaration do not have to be in the same file
381
382 const ArgumentList &srcMdAl = srcMd->argumentList();
383 const ArgumentList &mdAl = md->argumentList();
384 const ArgumentList &tSrcMdAl = srcMd->templateArguments();
385 const ArgumentList &tMdAl = md->templateArguments();
386
387 if (srcMd->isFunction() && md->isFunction() && // both are a function
388 (tSrcMdAl.size()==tMdAl.size()) && // same number of template arguments
389 matchArguments2(srcMd->getOuterScope(),srcMd->getFileDef(),srcMd->typeString(),&srcMdAl,
390 md->getOuterScope(), md->getFileDef(), md->typeString(),&mdAl,
391 true,srcMd->getLanguage()
392 ) && // matching parameters
393 sameScope // both are found in the same scope
394 )
395 {
396 MemberDefMutable *mdm = toMemberDefMutable(md);
397 if (mdm && srcMd->getGroupAlias()==nullptr)
398 {
399 mdm->setGroupAlias(srcMd);
400 }
401 else if (mdm && md!=srcMd->getGroupAlias())
402 {
403 mdm->setGroupAlias(srcMd->getGroupAlias());
404 }
405 return false; // member is the same as one that is already added
406 }
407 }
408 mni->push_back(std::make_unique<MemberInfo>(md,md->protection(),md->virtualness(),false,false));
409 //printf("Added member!\n");
411 switch(md->memberType())
412 {
413 case MemberType::Variable:
414 if (!docOnly)
415 {
416 addMemberToList(MemberListType::DecVarMembers(),md);
417 }
418 addMemberToList(MemberListType::DocVarMembers(),md);
419 break;
420 case MemberType::Function:
421 if (!docOnly)
422 {
423 addMemberToList(MemberListType::DecFuncMembers(),md);
424 }
425 addMemberToList(MemberListType::DocFuncMembers(),md);
426 break;
427 case MemberType::Typedef:
428 if (!docOnly)
429 {
430 addMemberToList(MemberListType::DecTypedefMembers(),md);
431 }
432 addMemberToList(MemberListType::DocTypedefMembers(),md);
433 break;
434 case MemberType::Enumeration:
435 if (!docOnly)
436 {
437 addMemberToList(MemberListType::DecEnumMembers(),md);
438 }
439 addMemberToList(MemberListType::DocEnumMembers(),md);
440 break;
441 case MemberType::EnumValue:
442 if (!docOnly)
443 {
444 addMemberToList(MemberListType::DecEnumValMembers(),md);
445 }
446 addMemberToList(MemberListType::DocEnumValMembers(),md);
447 break;
448 case MemberType::Define:
449 if (!docOnly)
450 {
451 addMemberToList(MemberListType::DecDefineMembers(),md);
452 }
453 addMemberToList(MemberListType::DocDefineMembers(),md);
454 break;
455 case MemberType::Signal:
456 if (!docOnly)
457 {
458 addMemberToList(MemberListType::DecSignalMembers(),md);
459 }
460 addMemberToList(MemberListType::DocSignalMembers(),md);
461 break;
462 case MemberType::Slot:
463 if (md->protection()==Protection::Public)
464 {
465 if (!docOnly)
466 {
467 addMemberToList(MemberListType::DecPubSlotMembers(),md);
468 }
469 addMemberToList(MemberListType::DocPubSlotMembers(),md);
470 }
471 else if (md->protection()==Protection::Protected)
472 {
473 if (!docOnly)
474 {
475 addMemberToList(MemberListType::DecProSlotMembers(),md);
476 }
477 addMemberToList(MemberListType::DocProSlotMembers(),md);
478 }
479 else
480 {
481 if (!docOnly)
482 {
483 addMemberToList(MemberListType::DecPriSlotMembers(),md);
484 }
485 addMemberToList(MemberListType::DocPriSlotMembers(),md);
486 }
487 break;
488 case MemberType::Event:
489 if (!docOnly)
490 {
491 addMemberToList(MemberListType::DecEventMembers(),md);
492 }
493 addMemberToList(MemberListType::DocEventMembers(),md);
494 break;
495 case MemberType::Property:
496 if (!docOnly)
497 {
498 addMemberToList(MemberListType::DecPropMembers(),md);
499 }
500 addMemberToList(MemberListType::DocPropMembers(),md);
501 break;
502 case MemberType::Friend:
503 if (!docOnly)
504 {
505 addMemberToList(MemberListType::DecFriendMembers(),md);
506 }
507 addMemberToList(MemberListType::DocFriendMembers(),md);
508 break;
509 default:
510 err("GroupDefImpl::insertMembers(): "
511 "member '{}' (typeid='{}') with scope '{}' inserted in group scope '{}'!\n",
512 md->name(),md->memberTypeName(),
513 md->getClassDef() ? md->getClassDef()->name() : "",
514 name());
515 }
516 return true;
517}
size_t size() const
Definition arguments.h:101
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual DefType definitionType() const =0
virtual Definition * getOuterScope() const =0
MemberNameInfoLinkedMap m_allMemberNameInfoLinkedMap
Definition groupdef.cpp:171
DefType definitionType() const override
Definition groupdef.cpp:62
void addMemberToList(MemberListType lt, MemberDef *md)
T * add(const char *k, Args &&... args)
Definition linkedmap.h:90
virtual const MemberDef * getGroupAlias() const =0
virtual const ArgumentList & templateArguments() const =0
virtual const FileDef * getFileDef() const =0
virtual const ArgumentList & argumentList() const =0
virtual bool isFunction() const =0
virtual DString typeString() const =0
virtual void setGroupAlias(const MemberDef *md)=0
void push_back(Ptr &&p)
Definition membername.h:139
void push_back(const T &value)
Definition memberlist.h:49
MemberDefMutable * toMemberDefMutable(Definition *d)
#define err(fmt,...)
Definition message.h:127
bool matchArguments2(const Definition *srcScope, const FileDef *srcFileScope, const DString &srcReturnType, const ArgumentList *srcAl, const Definition *dstScope, const FileDef *dstFileScope, const DString &dstReturnType, const ArgumentList *dstAl, bool checkCV, SrcLangExt lang)
Definition util.cpp:1589

References LinkedMap< T, Hash, KeyEqual, Map >::add(), addMemberToList(), MemberDef::argumentList(), Definition::definitionType(), definitionType(), err, MemberDef::getClassDef(), MemberDef::getFileDef(), MemberDef::getGroupAlias(), Definition::getLanguage(), Definition::getOuterScope(), MemberDef::isFunction(), Definition::isHidden(), m_allMemberList, m_allMemberNameInfoLinkedMap, matchArguments2(), MemberDef::memberType(), MemberDef::memberTypeName(), Definition::name(), DefinitionMixin< GroupDef >::name(), MemberDef::protection(), MemberNameInfo::push_back(), MemberVector::push_back(), MemberDefMutable::setGroupAlias(), ArgumentList::size(), MemberDef::templateArguments(), toMemberDefMutable(), Definition::TypeFile, MemberDef::typeString(), updateLanguage(), and MemberDef::virtualness().

◆ isASubGroup()

bool GroupDefImpl::isASubGroup ( ) const
overridevirtual

Implements GroupDef.

Definition at line 618 of file groupdef.cpp.

619{
620 return !partOfGroups().empty();
621}
const GroupList & partOfGroups() const override

References DefinitionMixin< GroupDef >::partOfGroups().

◆ isLinkable()

bool GroupDefImpl::isLinkable ( ) const
overridevirtual

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 2048 of file groupdef.cpp.

2049{
2050 return hasUserDocumentation();
2051}
bool hasUserDocumentation() const override

References DefinitionMixin< GroupDef >::hasUserDocumentation().

Referenced by isLinkableInProject(), and isVisibleInHierarchy().

◆ isLinkableInProject()

bool GroupDefImpl::isLinkableInProject ( ) const
overridevirtual

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

Implements Definition.

Definition at line 2043 of file groupdef.cpp.

2044{
2045 return !isReference() && isLinkable();
2046}
bool isReference() const override
bool isLinkable() const override

References isLinkable(), and DefinitionMixin< GroupDef >::isReference().

◆ isVisibleInHierarchy()

bool GroupDefImpl::isVisibleInHierarchy ( ) const
overridevirtual

Implements GroupDef.

Definition at line 2037 of file groupdef.cpp.

2038{
2039 bool allExternals = Config_getBool(EXTERNAL_GROUPS);
2040 return (allExternals || hasNonReferenceNestedGroupRec(this,0)) && isLinkable();
2041}
static bool hasNonReferenceNestedGroupRec(const GroupDef *gd, int level)

References Config_getBool, hasNonReferenceNestedGroupRec(), and isLinkable().

◆ numDocMembers()

size_t GroupDefImpl::numDocMembers ( ) const
overridevirtual

Implements GroupDef.

Definition at line 637 of file groupdef.cpp.

638{
639 return m_fileList.size()+
640 m_classes.size()+
642 m_groups.size()+
644 m_pages.size()+
646}
size_t size() const
Definition linkedmap.h:375
size_type size() const noexcept
Definition memberlist.h:60

References m_allMemberList, m_classes, m_examples, m_fileList, m_groups, m_namespaces, m_pages, LinkedRefMap< T, Hash, KeyEqual, Map >::size(), and MemberVector::size().

Referenced by writeBriefDescription(), and writeDetailedDescription().

◆ overrideGroupGraph()

void GroupDefImpl::overrideGroupGraph ( bool e)
overridevirtual

Implements GroupDef.

Definition at line 2072 of file groupdef.cpp.

2073{
2075}

References m_hasGroupGraph.

◆ removeMember()

void GroupDefImpl::removeMember ( MemberDef * md)
overridevirtual

Implements GroupDef.

Definition at line 519 of file groupdef.cpp.

520{
521 // fprintf(stderr, "GroupDef(%s)::removeMember( %s )\n", qPrint(title), qPrint(md->name()));
522 MemberNameInfo *mni = m_allMemberNameInfoLinkedMap.find(md->name());
523 if (mni)
524 {
526
527 removeMemberFromList(MemberListType::AllMembersList(),md);
528 switch(md->memberType())
529 {
530 case MemberType::Variable:
531 removeMemberFromList(MemberListType::DecVarMembers(),md);
532 removeMemberFromList(MemberListType::DocVarMembers(),md);
533 break;
534 case MemberType::Function:
535 removeMemberFromList(MemberListType::DecFuncMembers(),md);
536 removeMemberFromList(MemberListType::DocFuncMembers(),md);
537 break;
538 case MemberType::Typedef:
539 removeMemberFromList(MemberListType::DecTypedefMembers(),md);
540 removeMemberFromList(MemberListType::DocTypedefMembers(),md);
541 break;
542 case MemberType::Enumeration:
543 removeMemberFromList(MemberListType::DecEnumMembers(),md);
544 removeMemberFromList(MemberListType::DocEnumMembers(),md);
545 break;
546 case MemberType::EnumValue:
547 removeMemberFromList(MemberListType::DecEnumValMembers(),md);
548 removeMemberFromList(MemberListType::DocEnumValMembers(),md);
549 break;
550 case MemberType::Define:
551 removeMemberFromList(MemberListType::DecDefineMembers(),md);
552 removeMemberFromList(MemberListType::DocDefineMembers(),md);
553 break;
554 case MemberType::Signal:
555 removeMemberFromList(MemberListType::DecSignalMembers(),md);
556 removeMemberFromList(MemberListType::DocSignalMembers(),md);
557 break;
558 case MemberType::Slot:
559 if (md->protection()==Protection::Public)
560 {
561 removeMemberFromList(MemberListType::DecPubSlotMembers(),md);
562 removeMemberFromList(MemberListType::DocPubSlotMembers(),md);
563 }
564 else if (md->protection()==Protection::Protected)
565 {
566 removeMemberFromList(MemberListType::DecProSlotMembers(),md);
567 removeMemberFromList(MemberListType::DocProSlotMembers(),md);
568 }
569 else
570 {
571 removeMemberFromList(MemberListType::DecPriSlotMembers(),md);
572 removeMemberFromList(MemberListType::DocPriSlotMembers(),md);
573 }
574 break;
575 case MemberType::Event:
576 removeMemberFromList(MemberListType::DecEventMembers(),md);
577 removeMemberFromList(MemberListType::DocEventMembers(),md);
578 break;
579 case MemberType::Property:
580 removeMemberFromList(MemberListType::DecPropMembers(),md);
581 removeMemberFromList(MemberListType::DocPropMembers(),md);
582 break;
583 case MemberType::Friend:
584 removeMemberFromList(MemberListType::DecFriendMembers(),md);
585 removeMemberFromList(MemberListType::DocFriendMembers(),md);
586 break;
587 default:
588 err("GroupDefImpl::removeMember(): unexpected member remove in file!\n");
589 }
590 }
591}
void removeMemberFromList(MemberListType lt, MemberDef *md)
bool del(const DString &key)
Definition linkedmap.h:183
const T * find(const std::string &key) const
Definition linkedmap.h:47
virtual Protection protection() const =0
virtual MemberType memberType() const =0

References LinkedMap< T, Hash, KeyEqual, Map >::del(), err, LinkedMap< T, Hash, KeyEqual, Map >::find(), m_allMemberNameInfoLinkedMap, MemberDef::memberType(), Definition::name(), MemberDef::protection(), and removeMemberFromList().

◆ removeMemberFromList()

void GroupDefImpl::removeMemberFromList ( MemberListType lt,
MemberDef * md )
private

Definition at line 2000 of file groupdef.cpp.

2001{
2002 MemberList *ml = getMemberList(lt);
2003 if (ml) ml->remove(md);
2004}
MemberList * getMemberList(MemberListType lt) const override
void remove(const MemberDef *md)
Definition memberlist.h:85

References getMemberList(), and MemberVector::remove().

Referenced by removeMember().

◆ setGroupScope()

void GroupDefImpl::setGroupScope ( Definition * d)
inlineoverridevirtual

Implements GroupDef.

Definition at line 105 of file groupdef.cpp.

105{ m_groupScope = d; }

References m_groupScope.

◆ setGroupTitle()

void GroupDefImpl::setGroupTitle ( const DString & newtitle)
overridevirtual

Implements GroupDef.

Definition at line 230 of file groupdef.cpp.

231{
233}

References setGroupTitleLocal().

◆ setGroupTitleLocal()

void GroupDefImpl::setGroupTitleLocal ( const DString & title)
private

Definition at line 213 of file groupdef.cpp.

214{
215 if ( !t.empty())
216 {
217 m_title = t;
218 m_titleAsText = parseCommentAsText(this,nullptr,t,docFile(),docLine());
219 m_titleSet = true;
220 }
221 else
222 {
223 m_title = name();
224 m_title[0]=static_cast<char>(toupper(m_title[0]));
226 m_titleSet = false;
227 }
228}
int docLine() const override
DString parseCommentAsText(const Definition *scope, const MemberDef *md, const DString &doc, const DString &fileName, int lineNr)

References DefinitionMixin< GroupDef >::docFile(), DefinitionMixin< GroupDef >::docLine(), DString::empty(), m_title, m_titleAsText, m_titleSet, DefinitionMixin< GroupDef >::name(), and parseCommentAsText().

Referenced by GroupDefImpl(), and setGroupTitle().

◆ sortMemberLists()

void GroupDefImpl::sortMemberLists ( )
overridevirtual

Implements GroupDef.

Definition at line 1916 of file groupdef.cpp.

1917{
1918 for (auto &ml : m_memberLists)
1919 {
1920 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(false); }
1921 }
1922 if (Config_getBool(SORT_BRIEF_DOCS))
1923 {
1924 std::stable_sort(m_dirList.begin(), m_dirList.end(), compareDirDefs);
1925
1926 auto classComp = [](const ClassLinkedRefMap::Ptr &c1,const ClassLinkedRefMap::Ptr &c2)
1927 {
1928 return Config_getBool(SORT_BY_SCOPE_NAME) ?
1929 dstricmp_sort(c1->name(), c2->name())<0 :
1930 dstricmp_sort(c1->className(), c2->className())<0;
1931 };
1932 std::stable_sort(m_classes.begin(), m_classes.end(), classComp);
1933
1934 auto namespaceComp = [](const NamespaceLinkedRefMap::Ptr &n1,const NamespaceLinkedRefMap::Ptr &n2)
1935 {
1936 return dstricmp_sort(n1->name(),n2->name())<0;
1937 };
1938
1939 std::stable_sort(m_namespaces.begin(),m_namespaces.end(),namespaceComp);
1940
1941 auto moduleComp = [](const ModuleLinkedRefMap::Ptr &m1,const ModuleLinkedRefMap::Ptr &m2)
1942 {
1943 return dstricmp_sort(m1->name(),m2->name())<0;
1944 };
1945
1946 std::stable_sort(m_modules.begin(), m_modules.end(), moduleComp);
1947
1948 auto conceptComp = [](const ConceptLinkedRefMap::Ptr &c1,const ConceptLinkedRefMap::Ptr &c2)
1949 {
1950 return dstricmp_sort(c1->name(),c2->name())<0;
1951 };
1952
1953 std::stable_sort(m_concepts.begin(), m_concepts.end(), conceptComp);
1954
1955 std::stable_sort(m_dirList.begin(), m_dirList.end(), compareDirDefs);
1956 std::stable_sort(m_fileList.begin(), m_fileList.end(), compareFileDefs);
1957
1958 }
1959 else
1960 {
1963 }
1964}
virtual DString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
iterator end()
Definition linkedmap.h:367
iterator begin()
Definition linkedmap.h:366
bool compareDirDefs(const DirDef *item1, const DirDef *item2)
Definition dirdef.cpp:1211
int dstricmp_sort(const char *str1, const char *str2)
Definition dstring.h:67
bool compareFileDefs(const FileDef *fd1, const FileDef *fd2)
Definition filedef.cpp:2021
static void groupClassesWithSameScope(Vec &vec)

References LinkedRefMap< T, Hash, KeyEqual, Map >::begin(), ClassDef::className(), compareDirDefs(), compareFileDefs(), Config_getBool, dstricmp_sort(), LinkedRefMap< T, Hash, KeyEqual, Map >::end(), groupClassesWithSameScope(), m_classes, m_concepts, m_dirList, m_fileList, m_memberLists, m_modules, m_namespaces, and Definition::name().

◆ sortSubGroups()

void GroupDefImpl::sortSubGroups ( )
overridevirtual

Implements GroupDef.

Definition at line 2006 of file groupdef.cpp.

2007{
2008 std::stable_sort(m_groups.begin(),
2009 m_groups.end(),
2010 [](const auto &g1,const auto &g2)
2011 { return g1->groupTitle() < g2->groupTitle(); });
2012}

References m_groups.

◆ startMemberDeclarations()

void GroupDefImpl::startMemberDeclarations ( OutputList & ol)
private

Definition at line 1124 of file groupdef.cpp.

1125{
1127}
void startMemberSections()
Definition outputlist.h:457

References OutputList::startMemberSections().

Referenced by writeDocumentation().

◆ startMemberDocumentation()

void GroupDefImpl::startMemberDocumentation ( OutputList & ol)
private

Definition at line 1134 of file groupdef.cpp.

1135{
1136 //printf("** GroupDefImpl::startMemberDocumentation()\n");
1137 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1138 {
1139 ol.pushGeneratorState();
1142 }
1143}
void disable(OutputType o)
void pushGeneratorState()

References Config_getBool, OutputList::disable(), Html, OutputList::pushGeneratorState(), and Doxygen::suppressDocWarnings.

Referenced by writeDocumentation().

◆ subGrouping()

bool GroupDefImpl::subGrouping ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 103 of file groupdef.cpp.

103{ return m_subGrouping; }

References m_subGrouping.

◆ updateLanguage()

void GroupDefImpl::updateLanguage ( const Definition * d)
private

Definition at line 2055 of file groupdef.cpp.

2056{
2057 if (getLanguage()==SrcLangExt::Unknown && d->getLanguage()!=SrcLangExt::Unknown)
2058 {
2060 }
2061}
void setLanguage(SrcLangExt lang) override
SrcLangExt getLanguage() const override

References Definition::getLanguage(), DefinitionMixin< GroupDef >::getLanguage(), and DefinitionMixin< GroupDef >::setLanguage().

Referenced by addClass(), addFile(), addNamespace(), and insertMember().

◆ writeAuthorSection()

void GroupDefImpl::writeAuthorSection ( OutputList & ol)
private

Definition at line 1155 of file groupdef.cpp.

1156{
1157 // write Author section (Man only)
1158 ol.pushGeneratorState();
1160 ol.startGroupHeader();
1161 ol.parseText(theTranslator->trAuthor(true,true));
1162 ol.endGroupHeader();
1164 ol.popGeneratorState();
1165}
void parseText(const DString &textStr)
void disableAllBut(OutputType o)
void endGroupHeader(int extraLevels=0)
Definition outputlist.h:451
void startGroupHeader(const DString &id=DString(), int extraLevels=0)
Definition outputlist.h:449
virtual DString trAuthor(bool first_capital, bool singular)=0
virtual DString trGeneratedAutomatically(const DString &s)=0
#define Config_getString(name)
Definition config.h:32

References Config_getString, OutputList::disableAllBut(), OutputList::endGroupHeader(), Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startGroupHeader(), theTranslator, Translator::trAuthor(), and Translator::trGeneratedAutomatically().

Referenced by writeDocumentation().

◆ writeBriefDescription()

void GroupDefImpl::writeBriefDescription ( OutputList & ol)
private

Definition at line 869 of file groupdef.cpp.

870{
872 {
873 auto parser { createDocParser() };
874 auto ast { validatingParseDoc(*parser.get(),
875 briefFile(),
876 briefLine(),
877 this,
878 nullptr,
880 DocOptions()
881 .setIndexWords(true)
882 .setSingleLine(true))
883 };
884 if (!ast->empty())
885 {
886 ol.startParagraph();
889 ol.writeString(" - ");
891 ol.writeDoc(ast.get(),this,nullptr);
894 ol.writeString(" \n");
896
897 if (hasDetailedDescription() && m_pages.size()!=numDocMembers()) // group with non-page members
898 {
900 ol.startTextLink(DString(),"details");
902 ol.endTextLink();
903 }
905 ol.endParagraph();
906 }
907 }
908 ol.writeSynopsis();
909}
virtual DString briefFile() const =0
bool hasBriefDescription() const override
int briefLine() const override
bool hasDetailedDescription() const override
size_t numDocMembers() const override
Definition groupdef.cpp:637
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
Definition outputlist.h:379
void startParagraph(const DString &classDef=DString())
Definition outputlist.h:403
void enable(OutputType o)
void writeString(const DString &text)
Definition outputlist.h:407
void endParagraph()
Definition outputlist.h:405
void endTextLink()
Definition outputlist.h:440
void writeSynopsis()
Definition outputlist.h:588
void startTextLink(const DString &file, const DString &anchor)
Definition outputlist.h:438
virtual DString trMore()=0
IDocParserPtr createDocParser()
factory function to create a parser
Definition docparser.cpp:59
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &input, const DocOptions &options)

References DefinitionMixin< GroupDef >::briefDescription(), DefinitionMixin< GroupDef >::briefFile(), DefinitionMixin< GroupDef >::briefLine(), createDocParser(), OutputList::disable(), OutputList::disableAllBut(), OutputList::enable(), OutputList::endParagraph(), OutputList::endTextLink(), DefinitionMixin< GroupDef >::hasBriefDescription(), hasDetailedDescription(), Html, m_pages, Man, numDocMembers(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, LinkedRefMap< T, Hash, KeyEqual, Map >::size(), OutputList::startParagraph(), OutputList::startTextLink(), theTranslator, Translator::trMore(), validatingParseDoc(), OutputList::writeDoc(), OutputList::writeString(), and OutputList::writeSynopsis().

Referenced by writeDocumentation().

◆ writeClasses()

void GroupDefImpl::writeClasses ( OutputList & ol,
const DString & title )
private

Definition at line 1064 of file groupdef.cpp.

1065{
1066 // write list of classes
1067 m_classes.writeDeclaration(ol,nullptr,title,false);
1068}
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const DString &header, bool localNames) const
Definition classlist.cpp:51

References m_classes, and ClassLinkedRefMap::writeDeclaration().

Referenced by writeDocumentation().

◆ writeConcepts()

void GroupDefImpl::writeConcepts ( OutputList & ol,
const DString & title )
private

Definition at line 1070 of file groupdef.cpp.

1071{
1072 // write list of concepts
1073 m_concepts.writeDeclaration(ol,title,false);
1074}
void writeDeclaration(OutputList &ol, const DString &header, bool localNames) const

References m_concepts, and ConceptLinkedRefMap::writeDeclaration().

Referenced by writeDocumentation().

◆ writeDetailedDescription()

void GroupDefImpl::writeDetailedDescription ( OutputList & ol,
const DString & title )
private

Definition at line 791 of file groupdef.cpp.

792{
794 {
796 if (m_pages.size()!=numDocMembers()) // not only pages -> classical layout
797 {
800 ol.writeRuler();
804 ol.writeAnchor(DString(),"details");
806 }
807 else
808 {
809 ol.disableAllBut(OutputType::Man); // always print title for man page
810 }
811 ol.startGroupHeader("details");
812 ol.parseText(title);
813 ol.endGroupHeader();
815
816 // repeat brief description
817 ol.startTextBlock();
818 if (!briefDescription().empty() && Config_getBool(REPEAT_BRIEF))
819 {
821 briefLine(),
822 this,
823 nullptr,
825 DocOptions());
826 }
827 // write separator between brief and details
828 if (!briefDescription().empty() && Config_getBool(REPEAT_BRIEF) &&
829 !documentation().empty())
830 {
834 ol.enableAll();
837 ol.writeString("\n\n");
839 }
840
841 // write detailed documentation
842 if (!documentation().empty())
843 {
844 ol.generateDoc(docFile(),
845 docLine(),
846 this,
847 nullptr,
848 documentation()+"\n",
849 DocOptions()
850 .setIndexWords(true));
851 }
852
853 // write inbody documentation
854 if (!inbodyDocumentation().empty())
855 {
857 inbodyLine(),
858 this,
859 nullptr,
860 inbodyDocumentation()+"\n",
861 DocOptions()
862 .setIndexWords(true));
863 }
865 ol.endTextBlock();
866 }
867}
DString briefFile() const override
DString inbodyFile() const override
void writeRequirementRefs(OutputList &ol) const override
int inbodyLine() const override
void writeRuler()
Definition outputlist.h:517
void endTextBlock(bool paraBreak=false)
Definition outputlist.h:668
void writeAnchor(const DString &fileName, const DString &name)
Definition outputlist.h:519
void startTextBlock(bool dense=false)
Definition outputlist.h:666
void generateDoc(const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &docStr, const DocOptions &options)
void enableAll()

References DefinitionMixin< GroupDef >::briefDescription(), DefinitionMixin< GroupDef >::briefFile(), DefinitionMixin< GroupDef >::briefLine(), Config_getBool, OutputList::disable(), OutputList::disableAllBut(), DefinitionMixin< GroupDef >::docFile(), DefinitionMixin< GroupDef >::docLine(), DefinitionMixin< GroupDef >::documentation(), OutputList::enable(), OutputList::enableAll(), OutputList::endGroupHeader(), OutputList::endTextBlock(), OutputList::generateDoc(), hasDetailedDescription(), DefinitionMixin< GroupDef >::hasRequirementRefs(), Html, DefinitionMixin< GroupDef >::inbodyDocumentation(), DefinitionMixin< GroupDef >::inbodyFile(), DefinitionMixin< GroupDef >::inbodyLine(), Latex, m_pages, Man, numDocMembers(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, LinkedRefMap< T, Hash, KeyEqual, Map >::size(), OutputList::startGroupHeader(), OutputList::startTextBlock(), OutputList::writeAnchor(), DefinitionMixin< GroupDef >::writeRequirementRefs(), OutputList::writeRuler(), and OutputList::writeString().

Referenced by writeDocumentation().

◆ writeDirs()

void GroupDefImpl::writeDirs ( OutputList & ol,
const DString & title )
private

Definition at line 1025 of file groupdef.cpp.

1026{
1027 // write list of directories
1028 if (!m_dirList.empty())
1029 {
1030 ol.startMemberHeader("dirs");
1031 ol.parseText(title);
1032 ol.endMemberHeader();
1033 ol.startMemberList();
1034 for(const auto &dd : m_dirList)
1035 {
1036 if (!dd->hasDocumentation()) continue;
1038 DString anc = dd->anchor();
1039 if (anc.empty()) anc=dd->shortName(); else anc.prepend(dd->shortName()+"_");
1041 ol.parseText(theTranslator->trDir(false,true));
1042 ol.insertMemberAlign();
1043 ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),DString(),dd->shortName());
1045 if (!dd->briefDescription().empty() && Config_getBool(BRIEF_MEMBER_DESC))
1046 {
1047 ol.startMemberDescription(dd->getOutputFileBase());
1049 briefLine(),
1050 dd,
1051 nullptr,
1052 dd->briefDescription(),
1053 DocOptions()
1054 .setSingleLine(true));
1056 }
1057 ol.endMemberDeclaration(DString(),DString());
1058 }
1059
1060 ol.endMemberList();
1061 }
1062}
DString & prepend(const char *s)
Definition dstring.h:515
void startMemberDeclaration()
Definition outputlist.h:565
void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)
Definition outputlist.h:435
void endMemberDescription()
Definition outputlist.h:563
void endMemberDeclaration(const DString &anchor, const DString &inheritId)
Definition outputlist.h:567
void startMemberHeader(const DString &anchor, int typ=2)
Definition outputlist.h:465
void insertMemberAlign(bool templ=false)
Definition outputlist.h:513
void startMemberList()
Definition outputlist.h:477
void endMemberItem(OutputGenerator::MemberItemType type)
Definition outputlist.h:491
void endMemberList()
Definition outputlist.h:479
void startMemberItem(const DString &anchor, OutputGenerator::MemberItemType type, const DString &id=DString())
Definition outputlist.h:489
void startMemberDescription(const DString &anchor, const DString &inheritId=DString(), bool typ=false)
Definition outputlist.h:561
void endMemberHeader()
Definition outputlist.h:467
virtual DString trDir(bool first_capital, bool singular)=0

References DefinitionMixin< GroupDef >::briefFile(), DefinitionMixin< GroupDef >::briefLine(), Config_getBool, DString::empty(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberHeader(), OutputList::endMemberItem(), OutputList::endMemberList(), OutputList::generateDoc(), OutputList::insertMemberAlign(), m_dirList, OutputGenerator::Normal, OutputList::parseText(), DString::prepend(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberHeader(), OutputList::startMemberItem(), OutputList::startMemberList(), theTranslator, Translator::trDir(), and OutputList::writeObjectLink().

Referenced by writeDocumentation().

◆ writeDocumentation()

void GroupDefImpl::writeDocumentation ( OutputList & ol)
overridevirtual

Implements GroupDef.

Definition at line 1224 of file groupdef.cpp.

1225{
1226 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
1227 ol.pushGeneratorState();
1228
1229 // Find out how deep this group is nested. In case of multiple parents, use the first one.
1230 int hierarchyLevel = 0;
1231 const GroupDef *gd = this;
1232 while (!gd->partOfGroups().empty())
1233 {
1234 gd = gd->partOfGroups().front();
1235 ++hierarchyLevel;
1236 }
1237
1239 false /* additionalIndices*/, DString() /*altSidebarName*/, hierarchyLevel);
1240
1241 ol.startHeaderSection();
1242 bool writeOutlinePanel = generateTreeView && Config_getBool(PAGE_OUTLINE_PANEL);
1243 if (!writeOutlinePanel) writeSummaryLinks(ol);
1245 //1.{
1246 ol.pushGeneratorState();
1248 ol.generateDoc(docFile(),
1250 this,
1251 nullptr,
1252 m_title,
1253 DocOptions()
1254 .setIndexWords(true)
1255 .setSingleLine(true)
1256 .setAutolinkSupport(false));
1257 ol.popGeneratorState();
1258 //1.}
1259 addGroupListToTitle(ol,this);
1260 //2.{
1261 ol.pushGeneratorState();
1264 ol.popGeneratorState();
1265 //2.}
1266 //3.{
1267 ol.pushGeneratorState();
1270 if (!m_titleAsText.empty())
1271 {
1272 ol.writeString(" - ");
1274 }
1275 ol.popGeneratorState();
1276 //3.}
1277 ol.endHeaderSection();
1278 ol.startContents();
1279
1280 //---------------------------------------- start flexible part -------------------------------
1281
1282 SrcLangExt lang=getLanguage();
1283 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Group))
1284 {
1285 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
1286 switch (lde->kind())
1287 {
1288 case LayoutDocEntry::BriefDesc:
1290 break;
1291 case LayoutDocEntry::MemberDeclStart:
1293 break;
1294 case LayoutDocEntry::GroupClasses:
1295 if (ls) writeClasses(ol,ls->title(lang));
1296 break;
1297 case LayoutDocEntry::GroupConcepts:
1298 if (ls) writeConcepts(ol,ls->title(lang));
1299 break;
1300 case LayoutDocEntry::GroupModules:
1301 if (ls) writeModules(ol,ls->title(lang));
1302 break;
1303 case LayoutDocEntry::GroupInlineClasses:
1305 break;
1306 case LayoutDocEntry::GroupNamespaces:
1307 if (ls) writeNamespaces(ol,ls->title(lang));
1308 break;
1309 case LayoutDocEntry::MemberGroups:
1311 break;
1312 case LayoutDocEntry::MemberDecl:
1313 {
1314 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
1315 if (lmd)
1316 {
1317 writeMemberDeclarations(ol,lmd->type,lmd->title(lang));
1318 }
1319 }
1320 break;
1321 case LayoutDocEntry::MemberDeclEnd:
1323 break;
1324 case LayoutDocEntry::DetailedDesc:
1325 if (ls) writeDetailedDescription(ol,ls->title(lang));
1326 break;
1327 case LayoutDocEntry::MemberDefStart:
1329 break;
1330 case LayoutDocEntry::MemberDef:
1331 {
1332 const LayoutDocEntryMemberDef *lmd = dynamic_cast<const LayoutDocEntryMemberDef*>(lde.get());
1333 if (lmd)
1334 {
1335 writeMemberDocumentation(ol,lmd->type,lmd->title(lang));
1336 }
1337 }
1338 break;
1339 case LayoutDocEntry::MemberDefEnd:
1341 break;
1342 case LayoutDocEntry::GroupNestedGroups:
1343 if (ls) writeNestedGroups(ol,ls->title(lang));
1344 break;
1345 case LayoutDocEntry::GroupPageDocs:
1347 break;
1348 case LayoutDocEntry::GroupDirs:
1349 if (ls) writeDirs(ol,ls->title(lang));
1350 break;
1351 case LayoutDocEntry::GroupFiles:
1352 if (ls) writeFiles(ol,ls->title(lang));
1353 break;
1354 case LayoutDocEntry::GroupGraph:
1355 writeGroupGraph(ol);
1356 break;
1357 case LayoutDocEntry::AuthorSection:
1359 break;
1360 case LayoutDocEntry::ClassIncludes:
1361 case LayoutDocEntry::ClassInheritanceGraph:
1362 case LayoutDocEntry::ClassNestedClasses:
1363 case LayoutDocEntry::ClassCollaborationGraph:
1364 case LayoutDocEntry::ClassAllMembersLink:
1365 case LayoutDocEntry::ClassUsedFiles:
1366 case LayoutDocEntry::ClassInlineClasses:
1367 case LayoutDocEntry::NamespaceNestedNamespaces:
1368 case LayoutDocEntry::NamespaceNestedConstantGroups:
1369 case LayoutDocEntry::NamespaceClasses:
1370 case LayoutDocEntry::NamespaceConcepts:
1371 case LayoutDocEntry::NamespaceInterfaces:
1372 case LayoutDocEntry::NamespaceStructs:
1373 case LayoutDocEntry::NamespaceExceptions:
1374 case LayoutDocEntry::NamespaceInlineClasses:
1375 case LayoutDocEntry::ConceptDefinition:
1376 case LayoutDocEntry::FileClasses:
1377 case LayoutDocEntry::FileConcepts:
1378 case LayoutDocEntry::FileInterfaces:
1379 case LayoutDocEntry::FileStructs:
1380 case LayoutDocEntry::FileExceptions:
1381 case LayoutDocEntry::FileNamespaces:
1382 case LayoutDocEntry::FileConstantGroups:
1383 case LayoutDocEntry::FileIncludes:
1384 case LayoutDocEntry::FileIncludeGraph:
1385 case LayoutDocEntry::FileIncludedByGraph:
1386 case LayoutDocEntry::FileSourceLink:
1387 case LayoutDocEntry::FileInlineClasses:
1388 case LayoutDocEntry::ModuleExports:
1389 case LayoutDocEntry::ModuleClasses:
1390 case LayoutDocEntry::ModuleConcepts:
1391 case LayoutDocEntry::ModuleUsedFiles:
1392 case LayoutDocEntry::DirSubDirs:
1393 case LayoutDocEntry::DirFiles:
1394 case LayoutDocEntry::DirGraph:
1395 err("Internal inconsistency: member '{}' should not be part of "
1396 "LayoutDocManager::Group entry list\n",lde->entryToString());
1397 break;
1398 }
1399 }
1400
1401 //---------------------------------------- end flexible part -------------------------------
1402
1403 for (auto &subgd : getSubGroups())
1404 {
1405 if (!subgd->isReference())
1406 {
1407 if (subgd->partOfGroups().front() == this)
1408 {
1409 ol.writePageLink(subgd->getOutputFileBase(), false);
1410 }
1411 else
1412 {
1413 // Could write a note explaining that the subgroup belongs to another
1414 // group and add a link here.
1415 }
1416 }
1417 }
1418 if (generateTreeView && Config_getBool(PAGE_OUTLINE_PANEL))
1419 {
1420 ol.pushGeneratorState();
1422 ol.endContents();
1423 ol.writeString("</div><!-- doc-content -->\n");
1425 ol.writeString("</div><!-- container -->\n");
1426 ol.popGeneratorState();
1427 endFile(ol,true,true);
1428 }
1429 else
1430 {
1431 endFile(ol);
1432 }
1433
1434 ol.popGeneratorState();
1435
1436 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1437 {
1439 writeMemberPages(ol, hierarchyLevel + 1);
1440 }
1441}
virtual const GroupList & partOfGroups() const =0
int getStartBodyLine() const override
void writeConcepts(OutputList &ol, const DString &title)
void endMemberDeclarations(OutputList &ol)
void startMemberDocumentation(OutputList &ol)
void writeSummaryLinks(OutputList &ol) const override
void startMemberDeclarations(OutputList &ol)
void writeInlineClasses(OutputList &ol)
void writeGroupGraph(OutputList &ol)
Definition groupdef.cpp:911
void writeAuthorSection(OutputList &ol)
void endMemberDocumentation(OutputList &ol)
void writeNamespaces(OutputList &ol, const DString &title)
Definition groupdef.cpp:974
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const DString &title)
void writeModules(OutputList &ol, const DString &title)
void writeClasses(OutputList &ol, const DString &title)
void writeNestedGroups(OutputList &ol, const DString &title)
Definition groupdef.cpp:980
const GroupList & getSubGroups() const override
Definition groupdef.cpp:119
void writePageDocumentation(OutputList &ol)
void writeFiles(OutputList &ol, const DString &title)
Definition groupdef.cpp:936
void writeMemberGroups(OutputList &ol)
void writeDirs(OutputList &ol, const DString &title)
void writeMemberPages(OutputList &ol, int hierarchyLevel) override
void writePageNavigation(OutputList &ol) const override
void writeDetailedDescription(OutputList &ol, const DString &title)
Definition groupdef.cpp:791
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const DString &title)
void writeBriefDescription(OutputList &ol)
Definition groupdef.cpp:869
static LayoutDocManager & instance()
Returns a reference to this singleton.
Definition layout.cpp:1438
void sort()
Definition memberlist.h:77
void startTitleHead(const DString &fileName)
Definition outputlist.h:399
void endTitleHead(const DString &fileName, const DString &name)
Definition outputlist.h:401
void writePageLink(const DString &name, bool first)
Definition outputlist.h:385
void endContents()
Definition outputlist.h:616
void endHeaderSection()
Definition outputlist.h:463
void startHeaderSection()
Definition outputlist.h:461
void startContents()
Definition outputlist.h:614
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const DString &navPath)
Definition index.cpp:431
void startFile(OutputList &ol, const DString &name, bool isSource, const DString &manName, const DString &title, HighlightedItem hli, bool additionalIndices, const DString &altSidebarName, int hierarchyLevel, const DString &allMembersFile)
Definition index.cpp:405
MemberListType type
Definition layout.h:117
DString title(SrcLangExt lang) const
Definition layout.cpp:1789
MemberListType type
Definition layout.h:136
DString title(SrcLangExt lang) const
Definition layout.cpp:1801
DString title(SrcLangExt lang) const
Definition layout.cpp:1782
SrcLangExt
Definition types.h:207
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:3921

References addGroupListToTitle(), Config_getBool, OutputList::disable(), OutputList::disableAllBut(), DefinitionMixin< GroupDef >::docFile(), DString::empty(), OutputList::endContents(), endFile(), OutputList::endHeaderSection(), endMemberDeclarations(), endMemberDocumentation(), OutputList::endTitleHead(), err, OutputList::generateDoc(), DefinitionMixin< GroupDef >::getLanguage(), getOutputFileBase(), DefinitionMixin< GroupDef >::getStartBodyLine(), getSubGroups(), Html, LayoutDocManager::instance(), m_allMemberList, m_title, m_titleAsText, Man, DefinitionMixin< GroupDef >::name(), OutputList::parseText(), Definition::partOfGroups(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), MemberVector::sort(), OutputList::startContents(), startFile(), OutputList::startHeaderSection(), startMemberDeclarations(), startMemberDocumentation(), OutputList::startTitleHead(), LayoutDocEntryMemberDecl::title(), LayoutDocEntryMemberDef::title(), LayoutDocEntrySection::title(), Topics, LayoutDocEntryMemberDecl::type, LayoutDocEntryMemberDef::type, writeAuthorSection(), writeBriefDescription(), writeClasses(), writeConcepts(), writeDetailedDescription(), writeDirs(), writeFiles(), writeGroupGraph(), writeInlineClasses(), writeMemberDeclarations(), writeMemberDocumentation(), writeMemberGroups(), writeMemberPages(), writeModules(), writeNamespaces(), writeNestedGroups(), writePageDocumentation(), OutputList::writePageLink(), writePageNavigation(), OutputList::writeString(), and writeSummaryLinks().

◆ writeFiles()

void GroupDefImpl::writeFiles ( OutputList & ol,
const DString & title )
private

Definition at line 936 of file groupdef.cpp.

937{
938 // write list of files
939 if (!m_fileList.empty())
940 {
941 ol.startMemberHeader("files");
942 ol.parseText(title);
943 ol.endMemberHeader();
944 ol.startMemberList();
945 for (const auto &fd : m_fileList)
946 {
947 if (!fd->hasDocumentation()) continue;
949 DString anc = fd->anchor();
950 if (anc.empty()) anc=fd->docName(); else anc.prepend(fd->docName()+"_");
952 ol.docify(theTranslator->trFile(false,true)+" ");
954 ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),DString(),fd->docName());
956 if (!fd->briefDescription().empty() && Config_getBool(BRIEF_MEMBER_DESC))
957 {
958 ol.startMemberDescription(fd->getOutputFileBase());
960 briefLine(),
961 fd,
962 nullptr,
963 fd->briefDescription(),
964 DocOptions()
965 .setSingleLine(true));
967 }
968 ol.endMemberDeclaration(DString(),DString());
969 }
970 ol.endMemberList();
971 }
972}
void docify(const DString &s)
Definition outputlist.h:433
virtual DString trFile(bool first_capital, bool singular)=0

References DefinitionMixin< GroupDef >::briefFile(), DefinitionMixin< GroupDef >::briefLine(), Config_getBool, OutputList::docify(), DString::empty(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberHeader(), OutputList::endMemberItem(), OutputList::endMemberList(), OutputList::generateDoc(), OutputList::insertMemberAlign(), m_fileList, OutputGenerator::Normal, OutputList::parseText(), DString::prepend(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberHeader(), OutputList::startMemberItem(), OutputList::startMemberList(), theTranslator, Translator::trFile(), and OutputList::writeObjectLink().

Referenced by writeDocumentation().

◆ writeGroupGraph()

void GroupDefImpl::writeGroupGraph ( OutputList & ol)
private

Definition at line 911 of file groupdef.cpp.

912{
913 if (Config_getBool(HAVE_DOT) && m_hasGroupGraph /*&& Config_getBool(GROUP_GRAPHS)*/)
914 {
915 DotGroupCollaboration graph(this);
916 if (graph.isTooBig())
917 {
918 warn_uncond("Group dependency graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
919 name(), graph.numNodes(), Config_getInt(DOT_GRAPH_MAX_NODES));
920 }
921 else if (!graph.isTrivial())
922 {
923 msg("Generating dependency graph for group {}\n",qualifiedName());
926 //ol.startParagraph();
929 ol.endGroupCollaboration(graph);
930 //ol.endParagraph();
932 }
933 }
934}
DString qualifiedName() const override
void endGroupCollaboration(DotGroupCollaboration &g)
Definition outputlist.h:662
void startGroupCollaboration()
Definition outputlist.h:660
virtual DString trCollaborationDiagram(const DString &clName)=0
#define Config_getInt(name)
Definition config.h:34
#define warn_uncond(fmt,...)
Definition message.h:122
#define msg(fmt,...)
Definition message.h:94

References Config_getBool, Config_getInt, OutputList::disable(), OutputList::endGroupCollaboration(), DotGroupCollaboration::isTooBig(), DotGroupCollaboration::isTrivial(), m_hasGroupGraph, m_title, Man, msg, DefinitionMixin< GroupDef >::name(), DotGroupCollaboration::numNodes(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), DefinitionMixin< GroupDef >::qualifiedName(), OutputList::startGroupCollaboration(), theTranslator, Translator::trCollaborationDiagram(), and warn_uncond.

Referenced by writeDocumentation().

◆ writeInlineClasses()

void GroupDefImpl::writeInlineClasses ( OutputList & ol)
private

Definition at line 1083 of file groupdef.cpp.

1084{
1086}
void writeDocumentation(OutputList &ol, const Definition *container=nullptr) const
Definition classlist.cpp:72

References m_classes, and ClassLinkedRefMap::writeDocumentation().

Referenced by writeDocumentation().

◆ writeMemberDeclarations()

void GroupDefImpl::writeMemberDeclarations ( OutputList & ol,
MemberListType lt,
const DString & title )
private

Definition at line 1978 of file groupdef.cpp.

1979{
1980 bool optimizeVhdl = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
1981
1982 MemberList * ml = getMemberList(lt);
1983 if (optimizeVhdl && ml)
1984 {
1985 VhdlDocGen::writeVhdlDeclarations(ml,ol,this,nullptr,nullptr,nullptr,nullptr);
1986 return;
1987 }
1988 if (ml)
1989 {
1990 ml->writeDeclarations(ol,nullptr,nullptr,nullptr,this,nullptr,title,DString());
1991 }
1992}
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, const DString &title, const DString &subtitle, bool showEnumValues=false, bool showInline=false, const ClassDef *inheritedFrom=nullptr, MemberListType lt=MemberListType::PubMethods(), bool showSectionTitle=true) const
Writes the list of members to the output.
static void writeVhdlDeclarations(const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *, const ModuleDef *)

References Config_getBool, getMemberList(), MemberList::writeDeclarations(), and VhdlDocGen::writeVhdlDeclarations().

Referenced by writeDocumentation().

◆ writeMemberDocumentation()

void GroupDefImpl::writeMemberDocumentation ( OutputList & ol,
MemberListType lt,
const DString & title )
private

Definition at line 1994 of file groupdef.cpp.

1995{
1996 MemberList * ml = getMemberList(lt);
1997 if (ml) ml->writeDocumentation(ol,name(),this,title,ml->listType().toLabel());
1998}
void writeDocumentation(OutputList &ol, const DString &scopeName, const Definition *container, const DString &title, const DString &anchor, bool showEnumValues=false, bool showInline=false) const
MemberListType listType() const
Definition memberlist.h:131
constexpr const char * toLabel() const noexcept
Definition types.h:402

References getMemberList(), MemberList::listType(), DefinitionMixin< GroupDef >::name(), MemberListType::toLabel(), and MemberList::writeDocumentation().

Referenced by writeDocumentation().

◆ writeMemberGroups()

void GroupDefImpl::writeMemberGroups ( OutputList & ol)
private

Definition at line 1115 of file groupdef.cpp.

1116{
1117 /* write user defined member groups */
1118 for (const auto &mg : m_memberGroups)
1119 {
1120 mg->writeDeclarations(ol,nullptr,nullptr,nullptr,this,nullptr);
1121 }
1122}

References m_memberGroups.

Referenced by writeDocumentation().

◆ writeMemberPages()

void GroupDefImpl::writeMemberPages ( OutputList & ol,
int hierarchyLevel )
overridevirtual

Implements GroupDef.

Definition at line 1443 of file groupdef.cpp.

1444{
1445 ol.pushGeneratorState();
1447
1448 for (const auto &ml : m_memberLists)
1449 {
1450 if (ml->listType().isDocumentation())
1451 {
1452 ml->writeDocumentationPage(ol,name(),this,hierarchyLevel);
1453 }
1454 }
1455
1456 ol.popGeneratorState();
1457}

References OutputList::disableAllBut(), Html, m_memberLists, DefinitionMixin< GroupDef >::name(), OutputList::popGeneratorState(), and OutputList::pushGeneratorState().

Referenced by writeDocumentation().

◆ writeModules()

void GroupDefImpl::writeModules ( OutputList & ol,
const DString & title )
private

Definition at line 1076 of file groupdef.cpp.

1077{
1078 // write list of modules
1079 m_modules.writeDeclaration(ol,title,false);
1080}
void writeDeclaration(OutputList &ol, const DString &header, bool localNames) const

References m_modules, and ModuleLinkedRefMap::writeDeclaration().

Referenced by writeDocumentation().

◆ writeNamespaces()

void GroupDefImpl::writeNamespaces ( OutputList & ol,
const DString & title )
private

Definition at line 974 of file groupdef.cpp.

975{
976 // write list of namespaces
978}
void writeDeclaration(OutputList &ol, const DString &title, bool isConstantGroup=false, bool localName=false)

References m_namespaces, and NamespaceLinkedRefMap::writeDeclaration().

Referenced by writeDocumentation().

◆ writeNestedGroups()

void GroupDefImpl::writeNestedGroups ( OutputList & ol,
const DString & title )
private

Definition at line 980 of file groupdef.cpp.

981{
982 // write list of groups
983 int count=0;
984 for (const auto &gd : m_groups)
985 {
986 if (gd->isVisible()) count++;
987 }
988 if (count>0)
989 {
990 ol.startMemberHeader("groups");
991 ol.parseText(title);
992 ol.endMemberHeader();
993 ol.startMemberList();
994 for (const auto &gd : m_groups)
995 {
996 if (gd->isVisible())
997 {
998 if (!gd->hasDocumentation()) continue;
1000 DString anc = gd->anchor();
1001 if (anc.empty()) anc=gd->name(); else anc.prepend(gd->name()+"_");
1003 ol.insertMemberAlign();
1004 ol.writeObjectLink(gd->getReference(),gd->getOutputFileBase(),DString(),gd->groupTitleAsText());
1006 if (!gd->briefDescription().empty() && Config_getBool(BRIEF_MEMBER_DESC))
1007 {
1008 ol.startMemberDescription(gd->getOutputFileBase());
1010 briefLine(),
1011 gd,
1012 nullptr,
1013 gd->briefDescription(),
1014 DocOptions()
1015 .setSingleLine(true));
1017 }
1018 ol.endMemberDeclaration(DString(),DString());
1019 }
1020 }
1021 ol.endMemberList();
1022 }
1023}

References DefinitionMixin< GroupDef >::briefFile(), DefinitionMixin< GroupDef >::briefLine(), Config_getBool, DString::empty(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberHeader(), OutputList::endMemberItem(), OutputList::endMemberList(), OutputList::generateDoc(), OutputList::insertMemberAlign(), m_groups, OutputGenerator::Normal, OutputList::parseText(), DString::prepend(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberHeader(), OutputList::startMemberItem(), OutputList::startMemberList(), and OutputList::writeObjectLink().

Referenced by writeDocumentation().

◆ writePageDocumentation()

void GroupDefImpl::writePageDocumentation ( OutputList & ol)
private

Definition at line 1088 of file groupdef.cpp.

1089{
1090 for (const auto *pd : m_pages)
1091 {
1092 if (!pd->isReference())
1093 {
1094 const SectionInfo *si=nullptr;
1095 if (pd->hasTitle() && !pd->name().empty() &&
1096 (si=SectionManager::instance().find(pd->name()))!=nullptr)
1097 {
1099 ol.docify(si->title());
1101 }
1102 ol.startTextBlock();
1103 ol.generateDoc(pd->docFile(),
1104 pd->docLine(),
1105 pd,
1106 nullptr,
1107 (pd->documentation()+pd->inbodyDocumentation()),
1108 DocOptions()
1109 .setIndexWords(true));
1110 ol.endTextBlock();
1111 }
1112 }
1113}
void endSection(const DString &lab, SectionType t)
Definition outputlist.h:584
void startSection(const DString &lab, const DString &title, SectionType t)
Definition outputlist.h:582
DString title() const
Definition section.h:70
DString label() const
Definition section.h:69
static SectionManager & instance()
returns a reference to the singleton
Definition section.h:179
static constexpr int Subsection
Definition section.h:34

References OutputList::docify(), OutputList::endSection(), OutputList::endTextBlock(), LinkedMap< T, Hash, KeyEqual, Map >::find(), OutputList::generateDoc(), SectionManager::instance(), SectionInfo::label(), m_pages, OutputList::startSection(), OutputList::startTextBlock(), SectionType::Subsection, and SectionInfo::title().

Referenced by writeDocumentation().

◆ writePageNavigation()

void GroupDefImpl::writePageNavigation ( OutputList & ol) const
overridevirtual

Reimplemented from DefinitionMixin< GroupDef >.

Definition at line 1219 of file groupdef.cpp.

1220{
1221 ol.writePageOutline();
1222}
void writePageOutline()
Definition outputlist.h:612

References OutputList::writePageOutline().

Referenced by writeDocumentation().

◆ writeQuickMemberLinks()

void GroupDefImpl::writeQuickMemberLinks ( OutputList & ol,
const MemberDef * currentMd ) const
overridevirtual

Reimplemented from DefinitionMixin< GroupDef >.

Definition at line 1459 of file groupdef.cpp.

1460{
1461 bool createSubDirs=Config_getBool(CREATE_SUBDIRS);
1462
1463 ol.writeString(" <div class=\"navtab\">\n");
1464 ol.writeString(" <table>\n");
1465
1466 for (const auto *md : m_allMemberList)
1467 {
1468 if (md->getGroupDef()==this && md->isLinkable() && !md->isEnumValue())
1469 {
1470 if (md->isLinkableInProject())
1471 {
1472 DString fn = md->getOutputFileBase();
1474 if (md==currentMd) // selected item => highlight
1475 {
1476 ol.writeString(" <tr><td class=\"navtabHL\">");
1477 }
1478 else
1479 {
1480 ol.writeString(" <tr><td class=\"navtab\">");
1481 }
1482 ol.writeString("<span class=\"label\"><a ");
1483 ol.writeString("href=\"");
1484 if (createSubDirs) ol.writeString("../../");
1485 ol.writeString(fn+"#"+md->anchor());
1486 ol.writeString("\">");
1487 ol.writeString(convertToHtml(md->localName()));
1488 ol.writeString("</a></span>");
1489 ol.writeString("</td></tr>\n");
1490 }
1491 }
1492 }
1493 ol.writeString(" </table>\n");
1494 ol.writeString(" </div>\n");
1495}
void createSubDirs(const Dir &d)
Definition util.cpp:2969
DString convertToHtml(const DString &s, bool keepEntities)
Definition util.cpp:3291
void addHtmlExtensionIfMissing(DString &fName)
Definition util.cpp:3931

References addHtmlExtensionIfMissing(), Config_getBool, convertToHtml(), createSubDirs(), m_allMemberList, and OutputList::writeString().

◆ writeSummaryLinks()

void GroupDefImpl::writeSummaryLinks ( OutputList & ol) const
overridevirtual

Reimplemented from DefinitionMixin< GroupDef >.

Definition at line 1167 of file groupdef.cpp.

1168{
1169 ol.pushGeneratorState();
1171 bool first=true;
1172 SrcLangExt lang = getLanguage();
1173 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Group))
1174 {
1175 if ((lde->kind()==LayoutDocEntry::GroupClasses && m_classes.declVisible()) ||
1176 (lde->kind()==LayoutDocEntry::GroupConcepts && m_concepts.declVisible()) ||
1177 (lde->kind()==LayoutDocEntry::GroupModules && m_modules.declVisible()) ||
1178 (lde->kind()==LayoutDocEntry::GroupNamespaces && m_namespaces.declVisible(false)) ||
1179 (lde->kind()==LayoutDocEntry::GroupFiles && !m_fileList.empty()) ||
1180 (lde->kind()==LayoutDocEntry::GroupNestedGroups && !m_groups.empty()) ||
1181 (lde->kind()==LayoutDocEntry::GroupDirs && !m_dirList.empty())
1182 )
1183 {
1184 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
1185 if (ls)
1186 {
1187 DString label = lde->kind()==LayoutDocEntry::GroupClasses ? "nested-classes" :
1188 lde->kind()==LayoutDocEntry::GroupConcepts ? "concepts" :
1189 lde->kind()==LayoutDocEntry::GroupModules ? "modules" :
1190 lde->kind()==LayoutDocEntry::GroupNamespaces ? "namespaces" :
1191 lde->kind()==LayoutDocEntry::GroupFiles ? "files" :
1192 lde->kind()==LayoutDocEntry::GroupNestedGroups ? "groups" :
1193 "dirs";
1194 ol.writeSummaryLink(DString(),label,ls->title(lang),first);
1195 first=false;
1196 }
1197 }
1198 else if (lde->kind()==LayoutDocEntry::MemberDecl)
1199 {
1200 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
1201 if (lmd)
1202 {
1203 MemberList * ml = getMemberList(lmd->type);
1204 if (ml && ml->declVisible())
1205 {
1206 ol.writeSummaryLink(DString(),ml->listType().toLabel(),lmd->title(lang),first);
1207 first=false;
1208 }
1209 }
1210 }
1211 }
1212 if (!first)
1213 {
1214 ol.writeString(" </div>\n");
1215 }
1216 ol.popGeneratorState();
1217}
bool declVisible(const ClassDef::CompoundType *filter=nullptr) const
Definition classlist.cpp:27
bool declVisible() const
bool declVisible() const
bool declVisible() const
bool declVisible(bool isContantGroup) const
void writeSummaryLink(const DString &file, const DString &anchor, const DString &title, bool first)
Definition outputlist.h:610

References ClassLinkedRefMap::declVisible(), ConceptLinkedRefMap::declVisible(), MemberList::declVisible(), ModuleLinkedRefMap::declVisible(), NamespaceLinkedRefMap::declVisible(), OutputList::disableAllBut(), DefinitionMixin< GroupDef >::getLanguage(), getMemberList(), Html, LayoutDocManager::instance(), MemberList::listType(), m_classes, m_concepts, m_dirList, m_fileList, m_groups, m_modules, m_namespaces, OutputList::popGeneratorState(), OutputList::pushGeneratorState(), LayoutDocEntryMemberDecl::title(), LayoutDocEntrySection::title(), MemberListType::toLabel(), LayoutDocEntryMemberDecl::type, OutputList::writeString(), and OutputList::writeSummaryLink().

Referenced by writeDocumentation().

◆ writeTagFile()

void GroupDefImpl::writeTagFile ( TextStream & tagFile)
overridevirtual

Implements GroupDef.

Definition at line 655 of file groupdef.cpp.

656{
657 DString fn = getOutputFileBase();
659 tagFile << " <compound kind=\"group\">\n";
660 tagFile << " <name>" << convertToXML(name()) << "</name>\n";
661 tagFile << " <title>" << convertToXML(m_titleAsText) << "</title>\n";
662 tagFile << " <filename>" << fn << "</filename>\n";
663 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Group))
664 {
665 switch (lde->kind())
666 {
667 case LayoutDocEntry::GroupClasses:
668 {
669 for (const auto &cd : m_classes)
670 {
671 if (cd->isLinkableInProject())
672 {
673 tagFile << " <class kind=\"" << cd->compoundTypeString()
674 << "\">" << convertToXML(cd->name()) << "</class>\n";
675 }
676 }
677 }
678 break;
679 case LayoutDocEntry::GroupConcepts:
680 {
681 for (const auto &cd : m_concepts)
682 {
683 if (cd->isLinkableInProject())
684 {
685 tagFile << " <concept>" << convertToXML(cd->name())
686 << "</concept>\n";
687 }
688 }
689 }
690 break;
691 case LayoutDocEntry::GroupModules:
692 {
693 for (const auto &mod : m_modules)
694 {
695 if (mod->isLinkableInProject())
696 {
697 tagFile << " <module>" << convertToXML(mod->name())
698 << "</module>\n";
699 }
700 }
701 }
702 break;
703 case LayoutDocEntry::GroupNamespaces:
704 {
705 for (const auto &nd : m_namespaces)
706 {
707 if (nd->isLinkableInProject())
708 {
709 tagFile << " <namespace>" << convertToXML(nd->name())
710 << "</namespace>\n";
711 }
712 }
713 }
714 break;
715 case LayoutDocEntry::GroupFiles:
716 {
717 for (const auto &fd : m_fileList)
718 {
719 if (fd->isLinkableInProject())
720 {
721 tagFile << " <file path=\""
722 << convertToXML(stripFromPath(fd->getPath())) << "\">"
723 << convertToXML(fd->name()) << "</file>\n";
724 }
725 }
726 }
727 break;
728 case LayoutDocEntry::GroupPageDocs:
729 {
730 for (const auto &pd : m_pages)
731 {
732 DString pageName = pd->getOutputFileBase();
733 if (pd->isLinkableInProject())
734 {
735 tagFile << " <page>" << convertToXML(pageName) << "</page>\n";
736 }
737 }
738 }
739 break;
740 case LayoutDocEntry::GroupDirs:
741 {
742 for (const auto &dd : m_dirList)
743 {
744 if (dd->isLinkableInProject())
745 {
746 tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>\n";
747 }
748 }
749 }
750 break;
751 case LayoutDocEntry::GroupNestedGroups:
752 {
753 for (const auto &gd : m_groups)
754 {
755 if (gd->isVisible())
756 {
757 tagFile << " <subgroup>" << convertToXML(gd->name()) << "</subgroup>\n";
758 }
759 }
760 }
761 break;
762 case LayoutDocEntry::MemberDecl:
763 {
764 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
765 if (lmd)
766 {
767 MemberList * ml = getMemberList(lmd->type);
768 if (ml)
769 {
770 ml->writeTagFile(tagFile,true);
771 }
772 }
773 }
774 break;
775 case LayoutDocEntry::MemberGroups:
776 {
777 for (const auto &mg : m_memberGroups)
778 {
779 mg->writeTagFile(tagFile,true);
780 }
781 }
782 break;
783 default:
784 break;
785 }
786 }
788 tagFile << " </compound>\n";
789}
void writeDocAnchorsToTagFile(TextStream &fs) const override
void writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
DString convertToXML(const DString &s, bool keepEntities, const bool citeEntry)
Definition util.cpp:3232
DString stripFromPath(const DString &path)
Definition util.cpp:219

References addHtmlExtensionIfMissing(), convertToXML(), getMemberList(), getOutputFileBase(), LayoutDocManager::instance(), m_classes, m_concepts, m_dirList, m_fileList, m_groups, m_memberGroups, m_modules, m_namespaces, m_pages, m_titleAsText, DefinitionMixin< GroupDef >::name(), stripFromPath(), LayoutDocEntryMemberDecl::type, DefinitionMixin< GroupDef >::writeDocAnchorsToTagFile(), and MemberList::writeTagFile().

Member Data Documentation

◆ m_allMemberList

MemberList GroupDefImpl::m_allMemberList
private

◆ m_allMemberNameInfoLinkedMap

MemberNameInfoLinkedMap GroupDefImpl::m_allMemberNameInfoLinkedMap
private

Definition at line 171 of file groupdef.cpp.

Referenced by insertMember(), and removeMember().

◆ m_classes

◆ m_concepts

ConceptLinkedRefMap GroupDefImpl::m_concepts
private

◆ m_dirList

DirList GroupDefImpl::m_dirList
private

◆ m_examples

PageLinkedRefMap GroupDefImpl::m_examples
private

Definition at line 168 of file groupdef.cpp.

Referenced by addExample(), getExamples(), and numDocMembers().

◆ m_fileList

FileList GroupDefImpl::m_fileList
private

◆ m_fileName

DString GroupDefImpl::m_fileName
private

Definition at line 160 of file groupdef.cpp.

Referenced by getOutputFileBase().

◆ m_groups

GroupList GroupDefImpl::m_groups
private

◆ m_groupScope

Definition* GroupDefImpl::m_groupScope = nullptr
private

Definition at line 172 of file groupdef.cpp.

Referenced by getGroupScope(), GroupDefImpl(), and setGroupScope().

◆ m_hasGroupGraph

bool GroupDefImpl::m_hasGroupGraph = false
private

Definition at line 176 of file groupdef.cpp.

Referenced by GroupDefImpl(), hasGroupGraph(), overrideGroupGraph(), and writeGroupGraph().

◆ m_memberGroups

◆ m_memberLists

◆ m_modules

ModuleLinkedRefMap GroupDefImpl::m_modules
private

◆ m_namespaces

NamespaceLinkedRefMap GroupDefImpl::m_namespaces
private

◆ m_pages

◆ m_subGrouping

bool GroupDefImpl::m_subGrouping
private

Definition at line 175 of file groupdef.cpp.

Referenced by GroupDefImpl(), and subGrouping().

◆ m_title

DString GroupDefImpl::m_title
private

◆ m_titleAsText

DString GroupDefImpl::m_titleAsText
private

◆ m_titleSet

bool GroupDefImpl::m_titleSet
private

Definition at line 159 of file groupdef.cpp.

Referenced by hasGroupTitle(), and setGroupTitleLocal().


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