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

Public Member Functions

 GroupDefImpl (const QCString &fileName, int line, const QCString &name, const QCString &title, const QCString &refFileName=QCString())
 ~GroupDefImpl () override
DefType definitionType () const override
CodeSymbolType codeSymbolType () const override
QCString getOutputFileBase () const override
QCString anchor () const override
QCString displayName (bool=TRUE) const override
QCString groupTitle () const override
void setGroupTitle (const QCString &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 QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
DefinitionMixinoperator= (const DefinitionMixin &other)
 ~DefinitionMixin () override=default
bool isAlias () const override
const QCStringname () const override
bool isAnonymous () const override
const QCStringlocalName () const override
QCString qualifiedName () const override
QCString symbolName () const override
QCString getSourceFileBase () const override
QCString getSourceAnchor () const override
QCString documentation () const override
int docLine () const override
QCString docFile () const override
QCString briefDescription (bool abbreviate=FALSE) const override
QCString briefDescriptionAsTooltip () const override
int briefLine () const override
QCString inbodyDocumentation () const override
QCString inbodyFile () const override
int inbodyLine () const override
QCString briefFile () const override
QCString getDefFileName () const override
QCString getDefFileExtension () const override
int getDefLine () const override
int getDefColumn () const override
bool hasDocumentation () const override
bool hasUserDocumentation () const override
bool isVisibleInProject () const override
bool isVisible () const override
bool isHidden () const override
bool isArtificial () const override
bool isExported () const override
QCString getReference () const override
bool isReference () const override
QCString externalReference (const QCString &relPath) const override
int getStartDefLine () const override
int getStartBodyLine () const override
int getEndBodyLine () const override
const FileDefgetBodyDef () const override
SrcLangExt getLanguage () const override
const GroupListpartOfGroups () const override
bool isLinkableViaGroup () const override
const RefItemVectorxrefListItems () const override
const RequirementRefsrequirementReferences () const override
const DefinitionfindInnerCompound (const QCString &name) const override
DefinitiongetOuterScope () const override
const MemberVectorgetReferencesMembers () const override
const MemberVectorgetReferencedByMembers () const override
bool hasSections () const override
bool hasSources () const override
bool hasBriefDescription () const override
QCString id () const override
const SectionRefsgetSectionRefs () const override
void setName (const QCString &name) override
void setId (const QCString &name) override
void setDefFile (const QCString &df, int defLine, int defColumn) override
void setDocumentation (const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE) override
void setBriefDescription (const QCString &brief, const QCString &briefFile, int briefLine) override
void setInbodyDocumentation (const QCString &doc, const QCString &docFile, int docLine) override
void setReference (const QCString &r) override
void addSectionsToDefinition (const std::vector< const SectionInfo * > &anchorList) override
void setBodySegment (int defLine, int bls, int ble) override
void setBodyDef (const FileDef *fd) override
void addSourceReferencedBy (MemberDef *md, const QCString &sourceRefName) override
void addSourceReferences (MemberDef *md, const QCString &sourceRefName) override
void setRefItems (const RefItemVector &sli) override
void 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 QCString &scopeName) const override
bool hasSourceRefs () const override
bool hasSourceReffedBy () const override
void writeSourceRefs (OutputList &ol, const QCString &scopeName) const override
void writeSourceReffedBy (OutputList &ol, const QCString &scopeName) const override
bool hasRequirementRefs () const override
void writeRequirementRefs (OutputList &ol) const override
void makePartOfGroup (GroupDef *gd) override
void writeNavigationPath (OutputList &ol) const override
QCString navigationPathAsString () const override
QCString pathFragment () const override
void writeDocAnchorsToTagFile (TextStream &fs) const override
void setLocalName (const QCString &name) override
void writeToc (OutputList &ol, const LocalToc &lt) const override
void computeTooltip () override
void _setSymbolName (const QCString &name) override
QCString _symbolName () const override

Private Member Functions

void addMemberListToGroup (MemberList *, bool(MemberDef::*)() const)
void addMemberToList (MemberListType lt, MemberDef *md)
void writeMemberDeclarations (OutputList &ol, MemberListType lt, const QCString &title)
void writeMemberDocumentation (OutputList &ol, MemberListType lt, const QCString &title)
void removeMemberFromList (MemberListType lt, MemberDef *md)
void writeGroupGraph (OutputList &ol)
void writeFiles (OutputList &ol, const QCString &title)
void writeNamespaces (OutputList &ol, const QCString &title)
void writeNestedGroups (OutputList &ol, const QCString &title)
void writeDirs (OutputList &ol, const QCString &title)
void writeClasses (OutputList &ol, const QCString &title)
void writeConcepts (OutputList &ol, const QCString &title)
void writeModules (OutputList &ol, const QCString &title)
void writeInlineClasses (OutputList &ol)
void writePageDocumentation (OutputList &ol)
void writeDetailedDescription (OutputList &ol, const QCString &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 QCString &title)

Private Attributes

QCString m_title
QCString m_titleAsText
bool m_titleSet
QCString 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 53 of file groupdef.cpp.

Constructor & Destructor Documentation

◆ GroupDefImpl()

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

Definition at line 186 of file groupdef.cpp.

187 : DefinitionMixin(df,dl,1,na),
188 m_allMemberList(MemberListType::AllMembersList(),MemberListContainer::Group)
189{
190 if (!refFileName.isEmpty())
191 {
192 m_fileName=stripExtension(refFileName);
193 }
194 else
195 {
196 m_fileName = convertNameToFile(QCString("group_")+na);
197 }
199
200 //visited = 0;
201 m_groupScope = nullptr;
202 m_subGrouping=Config_getBool(SUBGROUPING);
203 m_hasGroupGraph=Config_getBool(GROUP_GRAPHS);
204}
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
void setGroupTitleLocal(const QCString &title)
Definition groupdef.cpp:210
MemberList m_allMemberList
Definition groupdef.cpp:167
QCString m_fileName
Definition groupdef.cpp:157
bool m_subGrouping
Definition groupdef.cpp:172
Definition * m_groupScope
Definition groupdef.cpp:169
bool m_hasGroupGraph
Definition groupdef.cpp:173
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:163
#define Config_getBool(name)
Definition config.h:33
QCString stripExtension(const QCString &fName)
Definition util.cpp:4924
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:3485

References Config_getBool, DefinitionMixin< GroupDef >::DefinitionMixin(), QCString::isEmpty(), m_allMemberList, m_groupScope, m_hasGroupGraph, m_subGrouping, and setGroupTitleLocal().

◆ ~GroupDefImpl()

GroupDefImpl::~GroupDefImpl ( )
override

Definition at line 206 of file groupdef.cpp.

207{
208}

Member Function Documentation

◆ addClass()

bool GroupDefImpl::addClass ( ClassDef * def)
overridevirtual

Implements GroupDef.

Definition at line 280 of file groupdef.cpp.

281{
282 if (cd->isHidden()) return FALSE;
283 updateLanguage(cd);
284 QCString qn = cd->name();
285 if (m_classes.find(qn)==nullptr)
286 {
287 m_classes.add(qn,cd);
288 return TRUE;
289 }
290 return FALSE;
291}
void updateLanguage(const Definition *)
ClassLinkedRefMap m_classes
Definition groupdef.cpp:159
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34

References FALSE, Definition::isHidden(), m_classes, Definition::name(), TRUE, and updateLanguage().

◆ addConcept()

bool GroupDefImpl::addConcept ( ConceptDef * def)
overridevirtual

Implements GroupDef.

Definition at line 293 of file groupdef.cpp.

294{
295 if (cd->isHidden()) return FALSE;
296 QCString qn = cd->name();
297 if (m_concepts.find(qn)==nullptr)
298 {
299 m_concepts.add(qn,cd);
300 return TRUE;
301 }
302 return FALSE;
303}
ConceptLinkedRefMap m_concepts
Definition groupdef.cpp:160

References FALSE, Definition::isHidden(), m_concepts, Definition::name(), and TRUE.

◆ addDir()

void GroupDefImpl::addDir ( DirDef * dd)
overridevirtual

Implements GroupDef.

Definition at line 330 of file groupdef.cpp.

331{
332 if (def->isHidden()) return;
333 m_dirList.push_back(def);
334}
DirList m_dirList
Definition groupdef.cpp:166

References Definition::isHidden(), and m_dirList.

◆ addExample()

void GroupDefImpl::addExample ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 344 of file groupdef.cpp.

345{
346 if (def->isHidden()) return;
347 m_examples.add(def->name(),def);
348}
virtual bool isHidden() const =0
virtual const QCString & name() const =0
PageLinkedRefMap m_examples
Definition groupdef.cpp:165

References Definition::isHidden(), m_examples, and Definition::name().

◆ addFile()

void GroupDefImpl::addFile ( FileDef * def)
overridevirtual

Implements GroupDef.

Definition at line 261 of file groupdef.cpp.

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

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

◆ addGroup()

void GroupDefImpl::addGroup ( GroupDef * def)
overridevirtual

Implements GroupDef.

Definition at line 606 of file groupdef.cpp.

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

References m_groups.

◆ addListReferences()

void GroupDefImpl::addListReferences ( )
overridevirtual

Implements GroupDef.

Definition at line 1809 of file groupdef.cpp.

1810{
1815 QCString(),
1816 nullptr
1817 );
1818 for (const auto &mg : m_memberGroups)
1819 {
1820 mg->addListReferences(this);
1821 }
1822 for (auto &ml : m_memberLists)
1823 {
1824 if (ml->listType().isDocumentation())
1825 {
1826 ml->addListReferences(this);
1827 }
1828 }
1829}
const QCString & name() const override
const RefItemVector & xrefListItems() const override
MemberGroupList m_memberGroups
Definition groupdef.cpp:171
QCString getOutputFileBase() const override
MemberLists m_memberLists
Definition groupdef.cpp:170
virtual QCString trGroup(bool first_capital, bool singular)=0
Translator * theTranslator
Definition language.cpp:71
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
Definition util.cpp:4805

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

◆ addMemberListToGroup()

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

◆ addMembersToMemberGroup()

void GroupDefImpl::addMembersToMemberGroup ( )
overridevirtual

Implements GroupDef.

Definition at line 351 of file groupdef.cpp.

352{
353 for (auto &ml : m_memberLists)
354 {
355 if (ml->listType().isDeclaration())
356 {
358 }
359 }
360}
void addMembersToMemberGroup() override
Definition groupdef.cpp:351

References addMembersToMemberGroup(), m_memberGroups, and m_memberLists.

Referenced by addMembersToMemberGroup().

◆ addMemberToList()

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

Definition at line 1847 of file groupdef.cpp.

1848{
1849 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
1850 bool sortMemberDocs = Config_getBool(SORT_MEMBER_DOCS);
1851 const auto &ml = m_memberLists.get(lt,MemberListContainer::Group);
1852 ml->setNeedsSorting(
1853 (ml->listType().isDeclaration() && sortBriefDocs) ||
1854 (ml->listType().isDocumentation() && sortMemberDocs));
1855 ml->push_back(md);
1856}

References Config_getBool, Group, and m_memberLists.

Referenced by insertMember().

◆ addModule()

bool GroupDefImpl::addModule ( ModuleDef * def)
overridevirtual

Implements GroupDef.

Definition at line 305 of file groupdef.cpp.

306{
307 if (mod->isHidden()) return false;
308 QCString qn = mod->name();
309 if (m_modules.find(qn)==nullptr)
310 {
311 m_modules.add(qn,mod);
312 return true;
313 }
314 return false;
315}
ModuleLinkedRefMap m_modules
Definition groupdef.cpp:161

References Definition::isHidden(), m_modules, and Definition::name().

◆ addNamespace()

bool GroupDefImpl::addNamespace ( NamespaceDef * def)
overridevirtual

Implements GroupDef.

Definition at line 317 of file groupdef.cpp.

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

References Definition::isHidden(), m_namespaces, Definition::name(), and updateLanguage().

◆ addPage()

void GroupDefImpl::addPage ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 336 of file groupdef.cpp.

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

References Definition::isHidden(), m_pages, DefinitionMutable::makePartOfGroup(), and Definition::name().

◆ addRequirementReferences()

void GroupDefImpl::addRequirementReferences ( )
overridevirtual

Implements GroupDef.

Definition at line 1831 of file groupdef.cpp.

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

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

◆ anchor()

QCString GroupDefImpl::anchor ( ) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 63 of file groupdef.cpp.

63{ return QCString(); }

◆ codeSymbolType()

CodeSymbolType GroupDefImpl::codeSymbolType ( ) const
inlineoverridevirtual

Used for syntax highlighting symbol class

Implements Definition.

Definition at line 61 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 646 of file groupdef.cpp.

647{
648 //printf("GroupDefImpl::computeAnchors()\n");
649 m_allMemberList.setAnchors();
650}

References m_allMemberList.

◆ containsFile()

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

Implements GroupDef.

Definition at line 275 of file groupdef.cpp.

276{
277 return std::find(m_fileList.cbegin(),m_fileList.cend(), def) != m_fileList.cend();
278}

References m_fileList.

◆ countMembers()

void GroupDefImpl::countMembers ( )
overridevirtual

Implements GroupDef.

Definition at line 620 of file groupdef.cpp.

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

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

60{ return TypeGroup; }

References definitionType(), and Definition::TypeGroup.

Referenced by definitionType(), and insertMember().

◆ displayName()

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

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

Implements Definition.

Definition at line 64 of file groupdef.cpp.

bool hasGroupTitle() const override
Definition groupdef.cpp:67
QCString m_title
Definition groupdef.cpp:154

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

◆ distributeMemberGroupDocumentation()

void GroupDefImpl::distributeMemberGroupDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 233 of file groupdef.cpp.

234{
235 for (const auto &mg : m_memberGroups)
236 {
237 mg->distributeMemberGroupDocumentation();
238 }
239}

References m_memberGroups.

◆ endMemberDeclarations()

void GroupDefImpl::endMemberDeclarations ( OutputList & ol)
private

Definition at line 1131 of file groupdef.cpp.

1132{
1133 ol.endMemberSections();
1134}
void endMemberSections()
Definition outputlist.h:463

References OutputList::endMemberSections().

Referenced by writeDocumentation().

◆ endMemberDocumentation()

void GroupDefImpl::endMemberDocumentation ( OutputList & ol)
private

Definition at line 1147 of file groupdef.cpp.

1148{
1149 //printf("** GroupDefImpl::endMemberDocumentation()\n");
1150 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1151 {
1152 ol.popGeneratorState();
1154 }
1155}
static bool suppressDocWarnings
Definition doxygen.h:131
void popGeneratorState()

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

Referenced by writeDocumentation().

◆ findGroup()

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

Implements GroupDef.

Definition at line 590 of file groupdef.cpp.

591{
592 if (this==def)
593 {
594 return TRUE;
595 }
596 for (const auto &gd : m_groups)
597 {
598 if (gd->findGroup(def))
599 {
600 return TRUE;
601 }
602 }
603 return FALSE;
604}

References FALSE, m_groups, and TRUE.

◆ findSectionsInDocumentation()

void GroupDefImpl::findSectionsInDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 241 of file groupdef.cpp.

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

References DefinitionMixin< 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 112 of file groupdef.cpp.

112{ return m_classes; }

References m_classes.

◆ getConcepts()

const ConceptLinkedRefMap & GroupDefImpl::getConcepts ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 113 of file groupdef.cpp.

113{ return m_concepts; }

References m_concepts.

◆ getDirs()

const DirList & GroupDefImpl::getDirs ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 118 of file groupdef.cpp.

118{ return m_dirList; }

References m_dirList.

◆ getExamples()

const PageLinkedRefMap & GroupDefImpl::getExamples ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 119 of file groupdef.cpp.

119{ return m_examples; }

References m_examples.

◆ getFiles()

const FileList & GroupDefImpl::getFiles ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 111 of file groupdef.cpp.

111{ return m_fileList; }

References m_fileList.

◆ getGroupScope()

Definition * GroupDefImpl::getGroupScope ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 103 of file groupdef.cpp.

103{ return m_groupScope; }

References m_groupScope.

◆ getMemberGroups()

const MemberGroupList & GroupDefImpl::getMemberGroups ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 109 of file groupdef.cpp.

109{ return m_memberGroups; }

References m_memberGroups.

◆ getMemberList()

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

Implements GroupDef.

Definition at line 1968 of file groupdef.cpp.

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

References m_memberLists.

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

◆ getMemberLists()

const MemberLists & GroupDefImpl::getMemberLists ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 106 of file groupdef.cpp.

106{ return m_memberLists; }

References m_memberLists.

◆ getModules()

const ModuleLinkedRefMap & GroupDefImpl::getModules ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 114 of file groupdef.cpp.

114{ return m_modules; }

References m_modules.

◆ getNamespaces()

const NamespaceLinkedRefMap & GroupDefImpl::getNamespaces ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 115 of file groupdef.cpp.

115{ return m_namespaces; }

References m_namespaces.

◆ getOutputFileBase()

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

1805{
1806 return m_fileName;
1807}

References m_fileName.

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

◆ getPages()

const PageLinkedRefMap & GroupDefImpl::getPages ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 117 of file groupdef.cpp.

117{ return m_pages; }

References m_pages.

◆ getSubGroups()

const GroupList & GroupDefImpl::getSubGroups ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 116 of file groupdef.cpp.

116{ return m_groups; }

References m_groups.

Referenced by writeDocumentation().

◆ groupTitle()

QCString GroupDefImpl::groupTitle ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 65 of file groupdef.cpp.

65{ return m_title; }

References m_title.

◆ hasDetailedDescription()

bool GroupDefImpl::hasDetailedDescription ( ) const
overridevirtual

Implements GroupDef.

Definition at line 2065 of file groupdef.cpp.

2066{
2067 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
2068 return ((!briefDescription().isEmpty() && repeatBrief) ||
2069 !documentation().isEmpty() ||
2070 !inbodyDocumentation().isEmpty() ||
2071 hasRequirementRefs()) &&
2072 (m_pages.size()!=numDocMembers());
2073}
bool hasRequirementRefs() const override
size_t numDocMembers() const override
Definition groupdef.cpp:634

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

Referenced by writeBriefDescription(), and writeDetailedDescription().

◆ hasGroupGraph()

bool GroupDefImpl::hasGroupGraph ( ) const
overridevirtual

Implements GroupDef.

Definition at line 2080 of file groupdef.cpp.

2081{
2082 return m_hasGroupGraph;
2083}

References m_hasGroupGraph.

◆ hasGroupTitle()

bool GroupDefImpl::hasGroupTitle ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 67 of file groupdef.cpp.

67{ return m_titleSet; }

References m_titleSet.

Referenced by displayName().

◆ insertMember()

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

Implements GroupDef.

Definition at line 363 of file groupdef.cpp.

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

References addMemberToList(), MemberDef::argumentList(), Define, Definition::definitionType(), definitionType(), Enumeration, EnumValue, err, Event, FALSE, Friend, Function, 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(), Property, MemberDef::protection(), MemberNameInfo::push_back(), MemberDefMutable::setGroupAlias(), Signal, ArgumentList::size(), Slot, MemberDef::templateArguments(), toMemberDefMutable(), TRUE, Typedef, Definition::TypeFile, MemberDef::typeString(), updateLanguage(), Variable, and MemberDef::virtualness().

◆ isASubGroup()

bool GroupDefImpl::isASubGroup ( ) const
overridevirtual

Implements GroupDef.

Definition at line 615 of file groupdef.cpp.

616{
617 return !partOfGroups().empty();
618}
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 2050 of file groupdef.cpp.

2051{
2052 return hasUserDocumentation();
2053}
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 2045 of file groupdef.cpp.

2046{
2047 return !isReference() && isLinkable();
2048}
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 2039 of file groupdef.cpp.

2040{
2041 bool allExternals = Config_getBool(EXTERNAL_GROUPS);
2042 return (allExternals || hasNonReferenceNestedGroupRec(this,0)) && isLinkable();
2043}
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 634 of file groupdef.cpp.

635{
636 return m_fileList.size()+
637 m_classes.size()+
638 m_namespaces.size()+
639 m_groups.size()+
640 m_allMemberList.size()+
641 m_pages.size()+
642 m_examples.size();
643}

References m_allMemberList, m_classes, m_examples, m_fileList, m_groups, m_namespaces, and m_pages.

Referenced by hasDetailedDescription(), and writeDetailedDescription().

◆ overrideGroupGraph()

void GroupDefImpl::overrideGroupGraph ( bool e)
overridevirtual

Implements GroupDef.

Definition at line 2075 of file groupdef.cpp.

2076{
2078}

References m_hasGroupGraph.

◆ removeMember()

void GroupDefImpl::removeMember ( MemberDef * md)
overridevirtual

Implements GroupDef.

Definition at line 516 of file groupdef.cpp.

517{
518 // fprintf(stderr, "GroupDef(%s)::removeMember( %s )\n", qPrint(title), qPrint(md->name()));
519 MemberNameInfo *mni = m_allMemberNameInfoLinkedMap.find(md->name());
520 if (mni)
521 {
523
524 removeMemberFromList(MemberListType::AllMembersList(),md);
525 switch(md->memberType())
526 {
528 removeMemberFromList(MemberListType::DecVarMembers(),md);
529 removeMemberFromList(MemberListType::DocVarMembers(),md);
530 break;
532 removeMemberFromList(MemberListType::DecFuncMembers(),md);
533 removeMemberFromList(MemberListType::DocFuncMembers(),md);
534 break;
536 removeMemberFromList(MemberListType::DecTypedefMembers(),md);
537 removeMemberFromList(MemberListType::DocTypedefMembers(),md);
538 break;
540 removeMemberFromList(MemberListType::DecEnumMembers(),md);
541 removeMemberFromList(MemberListType::DocEnumMembers(),md);
542 break;
544 removeMemberFromList(MemberListType::DecEnumValMembers(),md);
545 removeMemberFromList(MemberListType::DocEnumValMembers(),md);
546 break;
548 removeMemberFromList(MemberListType::DecDefineMembers(),md);
549 removeMemberFromList(MemberListType::DocDefineMembers(),md);
550 break;
552 removeMemberFromList(MemberListType::DecSignalMembers(),md);
553 removeMemberFromList(MemberListType::DocSignalMembers(),md);
554 break;
555 case MemberType::Slot:
556 if (md->protection()==Protection::Public)
557 {
558 removeMemberFromList(MemberListType::DecPubSlotMembers(),md);
559 removeMemberFromList(MemberListType::DocPubSlotMembers(),md);
560 }
561 else if (md->protection()==Protection::Protected)
562 {
563 removeMemberFromList(MemberListType::DecProSlotMembers(),md);
564 removeMemberFromList(MemberListType::DocProSlotMembers(),md);
565 }
566 else
567 {
568 removeMemberFromList(MemberListType::DecPriSlotMembers(),md);
569 removeMemberFromList(MemberListType::DocPriSlotMembers(),md);
570 }
571 break;
573 removeMemberFromList(MemberListType::DecEventMembers(),md);
574 removeMemberFromList(MemberListType::DocEventMembers(),md);
575 break;
577 removeMemberFromList(MemberListType::DecPropMembers(),md);
578 removeMemberFromList(MemberListType::DocPropMembers(),md);
579 break;
581 removeMemberFromList(MemberListType::DecFriendMembers(),md);
582 removeMemberFromList(MemberListType::DocFriendMembers(),md);
583 break;
584 default:
585 err("GroupDefImpl::removeMember(): unexpected member remove in file!\n");
586 }
587 }
588}
void removeMemberFromList(MemberListType lt, MemberDef *md)
virtual Protection protection() const =0
virtual MemberType memberType() const =0

References Define, Enumeration, EnumValue, err, Event, Friend, Function, m_allMemberNameInfoLinkedMap, MemberDef::memberType(), Definition::name(), Property, MemberDef::protection(), removeMemberFromList(), Signal, Slot, Typedef, and Variable.

◆ removeMemberFromList()

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

Definition at line 2002 of file groupdef.cpp.

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

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

Referenced by removeMember().

◆ setGroupScope()

void GroupDefImpl::setGroupScope ( Definition * d)
inlineoverridevirtual

Implements GroupDef.

Definition at line 102 of file groupdef.cpp.

102{ m_groupScope = d; }

References m_groupScope.

◆ setGroupTitle()

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

Implements GroupDef.

Definition at line 227 of file groupdef.cpp.

228{
230}

References setGroupTitleLocal().

◆ setGroupTitleLocal()

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

Definition at line 210 of file groupdef.cpp.

211{
212 if ( !t.isEmpty())
213 {
214 m_title = t;
215 m_titleAsText = parseCommentAsText(this,nullptr,t,docFile(),docLine());
217 }
218 else
219 {
220 m_title = name();
221 m_title[0]=static_cast<char>(toupper(m_title[0]));
224 }
225}
int docLine() const override
QCString m_titleAsText
Definition groupdef.cpp:155
QCString parseCommentAsText(const Definition *scope, const MemberDef *md, const QCString &doc, const QCString &fileName, int lineNr)
Definition util.cpp:5349

References DefinitionMixin< GroupDef >::docFile(), DefinitionMixin< GroupDef >::docLine(), FALSE, QCString::isEmpty(), m_title, m_titleAsText, m_titleSet, DefinitionMixin< GroupDef >::name(), parseCommentAsText(), and TRUE.

Referenced by GroupDefImpl(), and setGroupTitle().

◆ sortMemberLists()

void GroupDefImpl::sortMemberLists ( )
overridevirtual

Implements GroupDef.

Definition at line 1918 of file groupdef.cpp.

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

References ClassDef::className(), compareDirDefs(), compareFileDefs(), Config_getBool, FALSE, groupClassesWithSameScope(), m_classes, m_concepts, m_dirList, m_fileList, m_memberLists, m_modules, m_namespaces, Definition::name(), and qstricmp_sort().

◆ sortSubGroups()

void GroupDefImpl::sortSubGroups ( )
overridevirtual

Implements GroupDef.

Definition at line 2008 of file groupdef.cpp.

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

References m_groups.

◆ startMemberDeclarations()

void GroupDefImpl::startMemberDeclarations ( OutputList & ol)
private

Definition at line 1126 of file groupdef.cpp.

1127{
1129}
void startMemberSections()
Definition outputlist.h:461

References OutputList::startMemberSections().

Referenced by writeDocumentation().

◆ startMemberDocumentation()

void GroupDefImpl::startMemberDocumentation ( OutputList & ol)
private

Definition at line 1136 of file groupdef.cpp.

1137{
1138 //printf("** GroupDefImpl::startMemberDocumentation()\n");
1139 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1140 {
1141 ol.pushGeneratorState();
1144 }
1145}
void disable(OutputType o)
void pushGeneratorState()

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

Referenced by writeDocumentation().

◆ subGrouping()

bool GroupDefImpl::subGrouping ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 100 of file groupdef.cpp.

100{ return m_subGrouping; }

References m_subGrouping.

◆ updateLanguage()

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

Definition at line 2057 of file groupdef.cpp.

2058{
2059 if (getLanguage()==SrcLangExt::Unknown && d->getLanguage()!=SrcLangExt::Unknown)
2060 {
2062 }
2063}
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 1157 of file groupdef.cpp.

1158{
1159 // write Author section (Man only)
1160 ol.pushGeneratorState();
1162 ol.startGroupHeader();
1164 ol.endGroupHeader();
1166 ol.popGeneratorState();
1167}
void startGroupHeader(const QCString &id=QCString(), int extraLevels=0)
Definition outputlist.h:453
void disableAllBut(OutputType o)
void endGroupHeader(int extraLevels=0)
Definition outputlist.h:455
void parseText(const QCString &textStr)
virtual QCString trGeneratedAutomatically(const QCString &s)=0
virtual QCString trAuthor(bool first_capital, bool singular)=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, and TRUE.

Referenced by writeDocumentation().

◆ writeBriefDescription()

void GroupDefImpl::writeBriefDescription ( OutputList & ol)
private

Definition at line 864 of file groupdef.cpp.

865{
867 {
868 auto parser { createDocParser() };
869 auto ast { validatingParseDoc(*parser.get(),
870 briefFile(),
871 briefLine(),
872 this,
873 nullptr,
875 DocOptions()
876 .setIndexWords(true)
877 .setSingleLine(true))
878 };
879 if (!ast->isEmpty())
880 {
881 ol.startParagraph();
884 ol.writeString(" - ");
886 ol.writeDoc(ast.get(),this,nullptr);
889 ol.writeString(" \n");
891
893 {
895 ol.startTextLink(QCString(),"details");
897 ol.endTextLink();
898 }
900 ol.endParagraph();
901 }
902 }
903 ol.writeSynopsis();
904}
virtual QCString briefFile() const =0
bool hasBriefDescription() const override
int briefLine() const override
bool hasDetailedDescription() const override
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
Definition outputlist.h:383
void writeString(const QCString &text)
Definition outputlist.h:411
void enable(OutputType o)
void startParagraph(const QCString &classDef=QCString())
Definition outputlist.h:407
void endParagraph()
Definition outputlist.h:409
void endTextLink()
Definition outputlist.h:444
void writeSynopsis()
Definition outputlist.h:592
void startTextLink(const QCString &file, const QCString &anchor)
Definition outputlist.h:442
virtual QCString trMore()=0
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, const DocOptions &options)
IDocParserPtr createDocParser()
factory function to create a parser
Definition docparser.cpp:55

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, Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, OutputList::startParagraph(), OutputList::startTextLink(), theTranslator, validatingParseDoc(), OutputList::writeDoc(), OutputList::writeString(), and OutputList::writeSynopsis().

Referenced by writeDocumentation().

◆ writeClasses()

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

Definition at line 1066 of file groupdef.cpp.

1067{
1068 // write list of classes
1069 m_classes.writeDeclaration(ol,nullptr,title,FALSE);
1070}

References FALSE, and m_classes.

Referenced by writeDocumentation().

◆ writeConcepts()

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

Definition at line 1072 of file groupdef.cpp.

1073{
1074 // write list of concepts
1075 m_concepts.writeDeclaration(ol,title,FALSE);
1076}

References FALSE, and m_concepts.

Referenced by writeDocumentation().

◆ writeDetailedDescription()

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

Definition at line 786 of file groupdef.cpp.

787{
789 {
791 if (m_pages.size()!=numDocMembers()) // not only pages -> classical layout
792 {
795 ol.writeRuler();
799 ol.writeAnchor(QCString(),"details");
801 }
802 else
803 {
804 ol.disableAllBut(OutputType::Man); // always print title for man page
805 }
806 ol.startGroupHeader("details");
807 ol.parseText(title);
808 ol.endGroupHeader();
810
811 // repeat brief description
812 ol.startTextBlock();
813 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF))
814 {
816 briefLine(),
817 this,
818 nullptr,
820 DocOptions());
821 }
822 // write separator between brief and details
823 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF) &&
824 !documentation().isEmpty())
825 {
829 ol.enableAll();
832 ol.writeString("\n\n");
834 }
835
836 // write detailed documentation
837 if (!documentation().isEmpty())
838 {
839 ol.generateDoc(docFile(),
840 docLine(),
841 this,
842 nullptr,
843 documentation()+"\n",
844 DocOptions()
845 .setIndexWords(true));
846 }
847
848 // write inbody documentation
849 if (!inbodyDocumentation().isEmpty())
850 {
852 inbodyLine(),
853 this,
854 nullptr,
855 inbodyDocumentation()+"\n",
856 DocOptions()
857 .setIndexWords(true));
858 }
860 ol.endTextBlock();
861 }
862}
QCString inbodyFile() const override
QCString briefFile() const override
void writeRequirementRefs(OutputList &ol) const override
int inbodyLine() const override
void endTextBlock(bool paraBreak=FALSE)
Definition outputlist.h:672
void writeRuler()
Definition outputlist.h:521
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, const DocOptions &options)
void startTextBlock(bool dense=FALSE)
Definition outputlist.h:670
void writeAnchor(const QCString &fileName, const QCString &name)
Definition outputlist.h:523
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, OutputList::startGroupHeader(), OutputList::startTextBlock(), OutputList::writeAnchor(), DefinitionMixin< GroupDef >::writeRequirementRefs(), OutputList::writeRuler(), and OutputList::writeString().

Referenced by writeDocumentation().

◆ writeDirs()

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

Definition at line 1027 of file groupdef.cpp.

1028{
1029 // write list of directories
1030 if (!m_dirList.empty())
1031 {
1032 ol.startMemberHeader("dirs");
1033 ol.parseText(title);
1034 ol.endMemberHeader();
1035 ol.startMemberList();
1036 for(const auto dd : m_dirList)
1037 {
1038 if (!dd->hasDocumentation()) continue;
1040 QCString anc = dd->anchor();
1041 if (anc.isEmpty()) anc=dd->shortName(); else anc.prepend(dd->shortName()+"_");
1044 ol.insertMemberAlign();
1045 ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),QCString(),dd->shortName());
1047 if (!dd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
1048 {
1049 ol.startMemberDescription(dd->getOutputFileBase());
1051 briefLine(),
1052 dd,
1053 nullptr,
1054 dd->briefDescription(),
1055 DocOptions()
1056 .setSingleLine(true));
1058 }
1059 ol.endMemberDeclaration(QCString(),QCString());
1060 }
1061
1062 ol.endMemberList();
1063 }
1064}
void startMemberDeclaration()
Definition outputlist.h:569
void endMemberDescription()
Definition outputlist.h:567
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
Definition outputlist.h:439
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
Definition outputlist.h:565
void startMemberList()
Definition outputlist.h:481
void endMemberItem(OutputGenerator::MemberItemType type)
Definition outputlist.h:495
void endMemberList()
Definition outputlist.h:483
void insertMemberAlign(bool templ=FALSE)
Definition outputlist.h:517
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
Definition outputlist.h:571
void endMemberHeader()
Definition outputlist.h:471
void startMemberItem(const QCString &anchor, OutputGenerator::MemberItemType type, const QCString &id=QCString())
Definition outputlist.h:493
void startMemberHeader(const QCString &anchor, int typ=2)
Definition outputlist.h:469
QCString & prepend(const char *s)
Definition qcstring.h:422
virtual QCString trDir(bool first_capital, bool singular)=0

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

Referenced by writeDocumentation().

◆ writeDocumentation()

void GroupDefImpl::writeDocumentation ( OutputList & ol)
overridevirtual

Implements GroupDef.

Definition at line 1226 of file groupdef.cpp.

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

References addGroupListToTitle(), Config_getBool, OutputList::disable(), OutputList::disableAllBut(), DefinitionMixin< GroupDef >::docFile(), OutputList::endContents(), endFile(), OutputList::endHeaderSection(), endMemberDeclarations(), endMemberDocumentation(), OutputList::endTitleHead(), err, FALSE, 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(), 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 QCString & title )
private

Definition at line 931 of file groupdef.cpp.

932{
933 // write list of files
934 if (!m_fileList.empty())
935 {
936 ol.startMemberHeader("files");
937 ol.parseText(title);
938 ol.endMemberHeader();
939 ol.startMemberList();
940 for (const auto &fd : m_fileList)
941 {
942 if (!fd->hasDocumentation()) continue;
944 QCString anc = fd->anchor();
945 if (anc.isEmpty()) anc=fd->displayName(); else anc.prepend(fd->displayName()+"_");
949 ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),QCString(),fd->displayName());
951 if (!fd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
952 {
953 ol.startMemberDescription(fd->getOutputFileBase());
955 briefLine(),
956 fd,
957 nullptr,
958 fd->briefDescription(),
959 DocOptions()
960 .setSingleLine(true));
962 }
963 ol.endMemberDeclaration(QCString(),QCString());
964 }
965 ol.endMemberList();
966 }
967}
void docify(const QCString &s)
Definition outputlist.h:437
virtual QCString trFile(bool first_capital, bool singular)=0

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

Referenced by writeDocumentation().

◆ writeGroupGraph()

void GroupDefImpl::writeGroupGraph ( OutputList & ol)
private

Definition at line 906 of file groupdef.cpp.

907{
908 if (Config_getBool(HAVE_DOT) && m_hasGroupGraph /*&& Config_getBool(GROUP_GRAPHS)*/)
909 {
910 DotGroupCollaboration graph(this);
911 if (graph.isTooBig())
912 {
913 warn_uncond("Group dependency graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
914 name(), graph.numNodes(), Config_getInt(DOT_GRAPH_MAX_NODES));
915 }
916 else if (!graph.isTrivial())
917 {
918 msg("Generating dependency graph for group {}\n",qualifiedName());
921 //ol.startParagraph();
924 ol.endGroupCollaboration(graph);
925 //ol.endParagraph();
927 }
928 }
929}
QCString qualifiedName() const override
void endGroupCollaboration(DotGroupCollaboration &g)
Definition outputlist.h:666
void startGroupCollaboration()
Definition outputlist.h:664
virtual QCString trCollaborationDiagram(const QCString &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, and warn_uncond.

Referenced by writeDocumentation().

◆ writeInlineClasses()

void GroupDefImpl::writeInlineClasses ( OutputList & ol)
private

Definition at line 1085 of file groupdef.cpp.

1086{
1087 m_classes.writeDocumentation(ol);
1088}

References m_classes.

Referenced by writeDocumentation().

◆ writeMemberDeclarations()

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

Definition at line 1980 of file groupdef.cpp.

1981{
1982 bool optimizeVhdl = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
1983
1984 MemberList * ml = getMemberList(lt);
1985 if (optimizeVhdl && ml)
1986 {
1987 VhdlDocGen::writeVhdlDeclarations(ml,ol,this,nullptr,nullptr,nullptr,nullptr);
1988 return;
1989 }
1990 if (ml)
1991 {
1992 ml->writeDeclarations(ol,nullptr,nullptr,nullptr,this,nullptr,title,QCString());
1993 }
1994}
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, const QCString &title, const QCString &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 QCString & title )
private

Definition at line 1996 of file groupdef.cpp.

1997{
1998 MemberList * ml = getMemberList(lt);
1999 if (ml) ml->writeDocumentation(ol,name(),this,title,ml->listType().toLabel());
2000}
MemberListType listType() const
Definition memberlist.h:130
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, const QCString &anchor, bool showEnumValues=FALSE, bool showInline=FALSE) const
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 1117 of file groupdef.cpp.

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

References m_memberGroups.

Referenced by writeDocumentation().

◆ writeMemberPages()

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

Implements GroupDef.

Definition at line 1445 of file groupdef.cpp.

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

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

Referenced by writeDocumentation().

◆ writeModules()

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

Definition at line 1078 of file groupdef.cpp.

1079{
1080 // write list of modules
1081 m_modules.writeDeclaration(ol,title,FALSE);
1082}

References FALSE, and m_modules.

Referenced by writeDocumentation().

◆ writeNamespaces()

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

Definition at line 969 of file groupdef.cpp.

970{
971 // write list of namespaces
972 m_namespaces.writeDeclaration(ol,title);
973}

References m_namespaces.

Referenced by writeDocumentation().

◆ writeNestedGroups()

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

Definition at line 975 of file groupdef.cpp.

976{
977 // write list of groups
978 int count=0;
979 for (const auto &gd : m_groups)
980 {
981 if (gd->isVisible()) count++;
982 }
983 if (count>0)
984 {
985 ol.startMemberHeader("groups");
986 ol.parseText(title);
987 ol.endMemberHeader();
988 ol.startMemberList();
989 for (const auto &gd : m_groups)
990 {
991 if (gd->isVisible())
992 {
993 if (!gd->hasDocumentation()) continue;
995 QCString anc = gd->anchor();
996 if (anc.isEmpty()) anc=gd->name(); else anc.prepend(gd->name()+"_");
999 ol.generateDoc(gd->getDefFileName(),
1000 gd->getDefLine(),
1001 gd,
1002 nullptr,
1003 gd->groupTitle(),
1004 DocOptions()
1005 .setSingleLine(true)
1006 .setAutolinkSupport(false));
1008 if (!gd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
1009 {
1010 ol.startMemberDescription(gd->getOutputFileBase());
1012 briefLine(),
1013 gd,
1014 nullptr,
1015 gd->briefDescription(),
1016 DocOptions()
1017 .setSingleLine(true));
1019 }
1020 ol.endMemberDeclaration(QCString(),QCString());
1021 }
1022 }
1023 ol.endMemberList();
1024 }
1025}

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

Referenced by writeDocumentation().

◆ writePageDocumentation()

void GroupDefImpl::writePageDocumentation ( OutputList & ol)
private

Definition at line 1090 of file groupdef.cpp.

1091{
1092 for (const auto *pd : m_pages)
1093 {
1094 if (!pd->isReference())
1095 {
1096 const SectionInfo *si=nullptr;
1097 if (pd->hasTitle() && !pd->name().isEmpty() &&
1098 (si=SectionManager::instance().find(pd->name()))!=nullptr)
1099 {
1101 ol.docify(si->title());
1103 }
1104 ol.startTextBlock();
1105 ol.generateDoc(pd->docFile(),
1106 pd->docLine(),
1107 pd,
1108 nullptr,
1109 (pd->documentation()+pd->inbodyDocumentation()),
1110 DocOptions()
1111 .setIndexWords(true));
1112 ol.endTextBlock();
1113 }
1114 }
1115}
const T * find(const std::string &key) const
Definition linkedmap.h:47
void endSection(const QCString &lab, SectionType t)
Definition outputlist.h:588
void startSection(const QCString &lab, const QCString &title, SectionType t)
Definition outputlist.h:586
QCString label() const
Definition section.h:69
QCString title() const
Definition section.h:70
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(), 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 1221 of file groupdef.cpp.

1222{
1223 ol.writePageOutline();
1224}
void writePageOutline()
Definition outputlist.h:616

References OutputList::writePageOutline().

Referenced by writeDocumentation().

◆ writeQuickMemberLinks()

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

Reimplemented from DefinitionMixin< GroupDef >.

Definition at line 1461 of file groupdef.cpp.

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

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

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

References MemberList::declVisible(), OutputList::disableAllBut(), FALSE, 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(), TRUE, LayoutDocEntryMemberDecl::type, OutputList::writeString(), and OutputList::writeSummaryLink().

Referenced by writeDocumentation().

◆ writeTagFile()

void GroupDefImpl::writeTagFile ( TextStream & tagFile)
overridevirtual

Implements GroupDef.

Definition at line 652 of file groupdef.cpp.

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

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(), 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 168 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 165 of file groupdef.cpp.

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

◆ m_fileList

FileList GroupDefImpl::m_fileList
private

◆ m_fileName

QCString GroupDefImpl::m_fileName
private

Definition at line 157 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 169 of file groupdef.cpp.

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

◆ m_hasGroupGraph

bool GroupDefImpl::m_hasGroupGraph = false
private

Definition at line 173 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 172 of file groupdef.cpp.

Referenced by GroupDefImpl(), and subGrouping().

◆ m_title

QCString GroupDefImpl::m_title
private

◆ m_titleAsText

QCString GroupDefImpl::m_titleAsText
private

Definition at line 155 of file groupdef.cpp.

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

◆ m_titleSet

bool GroupDefImpl::m_titleSet
private

Definition at line 156 of file groupdef.cpp.

Referenced by hasGroupTitle(), and setGroupTitleLocal().


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