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
QCString groupTitleAsText () 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 187 of file groupdef.cpp.

188 : DefinitionMixin(df,dl,1,na),
189 m_allMemberList(MemberListType::AllMembersList(),MemberListContainer::Group)
190{
191 if (!refFileName.isEmpty())
192 {
193 m_fileName=stripExtension(refFileName);
194 }
195 else
196 {
197 m_fileName = convertNameToFile(QCString("group_")+na);
198 }
200
201 //visited = 0;
202 m_groupScope = nullptr;
203 m_subGrouping=Config_getBool(SUBGROUPING);
204 m_hasGroupGraph=Config_getBool(GROUP_GRAPHS);
205}
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:211
MemberList m_allMemberList
Definition groupdef.cpp:168
QCString m_fileName
Definition groupdef.cpp:158
bool m_subGrouping
Definition groupdef.cpp:173
Definition * m_groupScope
Definition groupdef.cpp:170
bool m_hasGroupGraph
Definition groupdef.cpp:174
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 207 of file groupdef.cpp.

208{
209}

Member Function Documentation

◆ addClass()

bool GroupDefImpl::addClass ( ClassDef * def)
overridevirtual

Implements GroupDef.

Definition at line 281 of file groupdef.cpp.

282{
283 if (cd->isHidden()) return FALSE;
284 updateLanguage(cd);
285 QCString qn = cd->name();
286 if (m_classes.find(qn)==nullptr)
287 {
288 m_classes.add(qn,cd);
289 return TRUE;
290 }
291 return FALSE;
292}
void updateLanguage(const Definition *)
ClassLinkedRefMap m_classes
Definition groupdef.cpp:160
#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 294 of file groupdef.cpp.

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

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

◆ addDir()

void GroupDefImpl::addDir ( DirDef * dd)
overridevirtual

Implements GroupDef.

Definition at line 331 of file groupdef.cpp.

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

References Definition::isHidden(), and m_dirList.

◆ addExample()

void GroupDefImpl::addExample ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 345 of file groupdef.cpp.

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

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

◆ addFile()

void GroupDefImpl::addFile ( FileDef * def)
overridevirtual

Implements GroupDef.

Definition at line 262 of file groupdef.cpp.

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

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

◆ addGroup()

void GroupDefImpl::addGroup ( GroupDef * def)
overridevirtual

Implements GroupDef.

Definition at line 607 of file groupdef.cpp.

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

References m_groups.

◆ addListReferences()

void GroupDefImpl::addListReferences ( )
overridevirtual

Implements GroupDef.

Definition at line 1803 of file groupdef.cpp.

1804{
1809 QCString(),
1810 nullptr
1811 );
1812 for (const auto &mg : m_memberGroups)
1813 {
1814 mg->addListReferences(this);
1815 }
1816 for (auto &ml : m_memberLists)
1817 {
1818 if (ml->listType().isDocumentation())
1819 {
1820 ml->addListReferences(this);
1821 }
1822 }
1823}
const QCString & name() const override
const RefItemVector & xrefListItems() const override
MemberGroupList m_memberGroups
Definition groupdef.cpp:172
QCString getOutputFileBase() const override
MemberLists m_memberLists
Definition groupdef.cpp:171
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 352 of file groupdef.cpp.

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

References addMembersToMemberGroup(), m_memberGroups, and m_memberLists.

Referenced by addMembersToMemberGroup().

◆ addMemberToList()

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

Definition at line 1841 of file groupdef.cpp.

1842{
1843 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
1844 bool sortMemberDocs = Config_getBool(SORT_MEMBER_DOCS);
1845 const auto &ml = m_memberLists.get(lt,MemberListContainer::Group);
1846 ml->setNeedsSorting(
1847 (ml->listType().isDeclaration() && sortBriefDocs) ||
1848 (ml->listType().isDocumentation() && sortMemberDocs));
1849 ml->push_back(md);
1850}

References Config_getBool, Group, and m_memberLists.

Referenced by insertMember().

◆ addModule()

bool GroupDefImpl::addModule ( ModuleDef * def)
overridevirtual

Implements GroupDef.

Definition at line 306 of file groupdef.cpp.

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

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

◆ addNamespace()

bool GroupDefImpl::addNamespace ( NamespaceDef * def)
overridevirtual

Implements GroupDef.

Definition at line 318 of file groupdef.cpp.

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

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

◆ addPage()

void GroupDefImpl::addPage ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 337 of file groupdef.cpp.

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

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

◆ addRequirementReferences()

void GroupDefImpl::addRequirementReferences ( )
overridevirtual

Implements GroupDef.

Definition at line 1825 of file groupdef.cpp.

1826{
1828 for (const auto &mg : m_memberGroups)
1829 {
1830 mg->addRequirementReferences(this);
1831 }
1832 for (auto &ml : m_memberLists)
1833 {
1834 if (ml->listType().isDocumentation())
1835 {
1836 ml->addRequirementReferences(this);
1837 }
1838 }
1839}
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 647 of file groupdef.cpp.

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

References m_allMemberList.

◆ containsFile()

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

Implements GroupDef.

Definition at line 276 of file groupdef.cpp.

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

References m_fileList.

◆ countMembers()

void GroupDefImpl::countMembers ( )
overridevirtual

Implements GroupDef.

Definition at line 621 of file groupdef.cpp.

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

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:68
QCString m_title
Definition groupdef.cpp:155

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

◆ distributeMemberGroupDocumentation()

void GroupDefImpl::distributeMemberGroupDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 234 of file groupdef.cpp.

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

References m_memberGroups.

◆ endMemberDeclarations()

void GroupDefImpl::endMemberDeclarations ( OutputList & ol)
private

Definition at line 1125 of file groupdef.cpp.

1126{
1127 ol.endMemberSections();
1128}
void endMemberSections()
Definition outputlist.h:463

References OutputList::endMemberSections().

Referenced by writeDocumentation().

◆ endMemberDocumentation()

void GroupDefImpl::endMemberDocumentation ( OutputList & ol)
private

Definition at line 1141 of file groupdef.cpp.

1142{
1143 //printf("** GroupDefImpl::endMemberDocumentation()\n");
1144 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1145 {
1146 ol.popGeneratorState();
1148 }
1149}
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 591 of file groupdef.cpp.

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

References FALSE, m_groups, and TRUE.

◆ findSectionsInDocumentation()

void GroupDefImpl::findSectionsInDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 242 of file groupdef.cpp.

243{
247
248 for (const auto &mg : m_memberGroups)
249 {
250 mg->findSectionsInDocumentation(this);
251 }
252
253 for (auto &ml : m_memberLists)
254 {
255 if (ml->listType().isDeclaration())
256 {
257 ml->findSectionsInDocumentation(this);
258 }
259 }
260}
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 113 of file groupdef.cpp.

113{ return m_classes; }

References m_classes.

◆ getConcepts()

const ConceptLinkedRefMap & GroupDefImpl::getConcepts ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 114 of file groupdef.cpp.

114{ return m_concepts; }

References m_concepts.

◆ getDirs()

const DirList & GroupDefImpl::getDirs ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 119 of file groupdef.cpp.

119{ return m_dirList; }

References m_dirList.

◆ getExamples()

const PageLinkedRefMap & GroupDefImpl::getExamples ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 120 of file groupdef.cpp.

120{ return m_examples; }

References m_examples.

◆ getFiles()

const FileList & GroupDefImpl::getFiles ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 112 of file groupdef.cpp.

112{ return m_fileList; }

References m_fileList.

◆ getGroupScope()

Definition * GroupDefImpl::getGroupScope ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 104 of file groupdef.cpp.

104{ return m_groupScope; }

References m_groupScope.

◆ getMemberGroups()

const MemberGroupList & GroupDefImpl::getMemberGroups ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 110 of file groupdef.cpp.

110{ return m_memberGroups; }

References m_memberGroups.

◆ getMemberList()

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

Implements GroupDef.

Definition at line 1962 of file groupdef.cpp.

1963{
1964 for (auto &ml : m_memberLists)
1965 {
1966 if (ml->listType()==lt)
1967 {
1968 return ml.get();
1969 }
1970 }
1971 return nullptr;
1972}

References m_memberLists.

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

◆ getMemberLists()

const MemberLists & GroupDefImpl::getMemberLists ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 107 of file groupdef.cpp.

107{ return m_memberLists; }

References m_memberLists.

◆ getModules()

const ModuleLinkedRefMap & GroupDefImpl::getModules ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 115 of file groupdef.cpp.

115{ return m_modules; }

References m_modules.

◆ getNamespaces()

const NamespaceLinkedRefMap & GroupDefImpl::getNamespaces ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 116 of file groupdef.cpp.

116{ 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 1798 of file groupdef.cpp.

1799{
1800 return m_fileName;
1801}

References m_fileName.

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

◆ getPages()

const PageLinkedRefMap & GroupDefImpl::getPages ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 118 of file groupdef.cpp.

118{ return m_pages; }

References m_pages.

◆ getSubGroups()

const GroupList & GroupDefImpl::getSubGroups ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 117 of file groupdef.cpp.

117{ 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.

◆ groupTitleAsText()

QCString GroupDefImpl::groupTitleAsText ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 66 of file groupdef.cpp.

66{ return m_titleAsText; }
QCString m_titleAsText
Definition groupdef.cpp:156

References m_titleAsText.

◆ hasDetailedDescription()

bool GroupDefImpl::hasDetailedDescription ( ) const
overridevirtual

Implements GroupDef.

Definition at line 2059 of file groupdef.cpp.

2060{
2061 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
2062 return ((!briefDescription().isEmpty() && repeatBrief) ||
2063 !documentation().isEmpty() ||
2064 !inbodyDocumentation().isEmpty() ||
2066}
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 2073 of file groupdef.cpp.

2074{
2075 return m_hasGroupGraph;
2076}

References m_hasGroupGraph.

◆ hasGroupTitle()

bool GroupDefImpl::hasGroupTitle ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 68 of file groupdef.cpp.

68{ return m_titleSet; }

References m_titleSet.

Referenced by displayName().

◆ insertMember()

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

Implements GroupDef.

Definition at line 364 of file groupdef.cpp.

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

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

2045{
2046 return hasUserDocumentation();
2047}
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 2039 of file groupdef.cpp.

2040{
2041 return !isReference() && isLinkable();
2042}
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 2033 of file groupdef.cpp.

2034{
2035 bool allExternals = Config_getBool(EXTERNAL_GROUPS);
2036 return (allExternals || hasNonReferenceNestedGroupRec(this,0)) && isLinkable();
2037}
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 635 of file groupdef.cpp.

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

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

Referenced by writeBriefDescription(), and writeDetailedDescription().

◆ overrideGroupGraph()

void GroupDefImpl::overrideGroupGraph ( bool e)
overridevirtual

Implements GroupDef.

Definition at line 2068 of file groupdef.cpp.

2069{
2071}

References m_hasGroupGraph.

◆ removeMember()

void GroupDefImpl::removeMember ( MemberDef * md)
overridevirtual

Implements GroupDef.

Definition at line 517 of file groupdef.cpp.

518{
519 // fprintf(stderr, "GroupDef(%s)::removeMember( %s )\n", qPrint(title), qPrint(md->name()));
520 MemberNameInfo *mni = m_allMemberNameInfoLinkedMap.find(md->name());
521 if (mni)
522 {
524
525 removeMemberFromList(MemberListType::AllMembersList(),md);
526 switch(md->memberType())
527 {
529 removeMemberFromList(MemberListType::DecVarMembers(),md);
530 removeMemberFromList(MemberListType::DocVarMembers(),md);
531 break;
533 removeMemberFromList(MemberListType::DecFuncMembers(),md);
534 removeMemberFromList(MemberListType::DocFuncMembers(),md);
535 break;
537 removeMemberFromList(MemberListType::DecTypedefMembers(),md);
538 removeMemberFromList(MemberListType::DocTypedefMembers(),md);
539 break;
541 removeMemberFromList(MemberListType::DecEnumMembers(),md);
542 removeMemberFromList(MemberListType::DocEnumMembers(),md);
543 break;
545 removeMemberFromList(MemberListType::DecEnumValMembers(),md);
546 removeMemberFromList(MemberListType::DocEnumValMembers(),md);
547 break;
549 removeMemberFromList(MemberListType::DecDefineMembers(),md);
550 removeMemberFromList(MemberListType::DocDefineMembers(),md);
551 break;
553 removeMemberFromList(MemberListType::DecSignalMembers(),md);
554 removeMemberFromList(MemberListType::DocSignalMembers(),md);
555 break;
556 case MemberType::Slot:
557 if (md->protection()==Protection::Public)
558 {
559 removeMemberFromList(MemberListType::DecPubSlotMembers(),md);
560 removeMemberFromList(MemberListType::DocPubSlotMembers(),md);
561 }
562 else if (md->protection()==Protection::Protected)
563 {
564 removeMemberFromList(MemberListType::DecProSlotMembers(),md);
565 removeMemberFromList(MemberListType::DocProSlotMembers(),md);
566 }
567 else
568 {
569 removeMemberFromList(MemberListType::DecPriSlotMembers(),md);
570 removeMemberFromList(MemberListType::DocPriSlotMembers(),md);
571 }
572 break;
574 removeMemberFromList(MemberListType::DecEventMembers(),md);
575 removeMemberFromList(MemberListType::DocEventMembers(),md);
576 break;
578 removeMemberFromList(MemberListType::DecPropMembers(),md);
579 removeMemberFromList(MemberListType::DocPropMembers(),md);
580 break;
582 removeMemberFromList(MemberListType::DecFriendMembers(),md);
583 removeMemberFromList(MemberListType::DocFriendMembers(),md);
584 break;
585 default:
586 err("GroupDefImpl::removeMember(): unexpected member remove in file!\n");
587 }
588 }
589}
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 1996 of file groupdef.cpp.

1997{
1998 MemberList *ml = getMemberList(lt);
1999 if (ml) ml->remove(md);
2000}
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 103 of file groupdef.cpp.

103{ m_groupScope = d; }

References m_groupScope.

◆ setGroupTitle()

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

Implements GroupDef.

Definition at line 228 of file groupdef.cpp.

229{
231}

References setGroupTitleLocal().

◆ setGroupTitleLocal()

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

Definition at line 211 of file groupdef.cpp.

212{
213 if ( !t.isEmpty())
214 {
215 m_title = t;
216 m_titleAsText = parseCommentAsText(this,nullptr,t,docFile(),docLine());
218 }
219 else
220 {
221 m_title = name();
222 m_title[0]=static_cast<char>(toupper(m_title[0]));
225 }
226}
int docLine() const override
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 1912 of file groupdef.cpp.

1913{
1914 for (auto &ml : m_memberLists)
1915 {
1916 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(FALSE); }
1917 }
1918 if (Config_getBool(SORT_BRIEF_DOCS))
1919 {
1920 std::stable_sort(m_dirList.begin(), m_dirList.end(), compareDirDefs);
1921
1922 auto classComp = [](const ClassLinkedRefMap::Ptr &c1,const ClassLinkedRefMap::Ptr &c2)
1923 {
1924 return Config_getBool(SORT_BY_SCOPE_NAME) ?
1925 qstricmp_sort(c1->name(), c2->name())<0 :
1926 qstricmp_sort(c1->className(), c2->className())<0;
1927 };
1928 std::stable_sort(m_classes.begin(), m_classes.end(), classComp);
1929
1930 auto namespaceComp = [](const NamespaceLinkedRefMap::Ptr &n1,const NamespaceLinkedRefMap::Ptr &n2)
1931 {
1932 return qstricmp_sort(n1->name(),n2->name())<0;
1933 };
1934
1935 std::stable_sort(m_namespaces.begin(),m_namespaces.end(),namespaceComp);
1936
1937 auto moduleComp = [](const ModuleLinkedRefMap::Ptr &m1,const ModuleLinkedRefMap::Ptr &m2)
1938 {
1939 return qstricmp_sort(m1->name(),m2->name())<0;
1940 };
1941
1942 std::stable_sort(m_modules.begin(), m_modules.end(), moduleComp);
1943
1944 auto conceptComp = [](const ConceptLinkedRefMap::Ptr &c1,const ConceptLinkedRefMap::Ptr &c2)
1945 {
1946 return qstricmp_sort(c1->name(),c2->name())<0;
1947 };
1948
1949 std::stable_sort(m_concepts.begin(), m_concepts.end(), conceptComp);
1950
1951 std::stable_sort(m_dirList.begin(), m_dirList.end(), compareDirDefs);
1952 std::stable_sort(m_fileList.begin(), m_fileList.end(), compareFileDefs);
1953
1954 }
1955 else
1956 {
1959 }
1960}
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 2002 of file groupdef.cpp.

2003{
2004 std::stable_sort(m_groups.begin(),
2005 m_groups.end(),
2006 [](const auto &g1,const auto &g2)
2007 { return g1->groupTitle() < g2->groupTitle(); });
2008}

References m_groups.

◆ startMemberDeclarations()

void GroupDefImpl::startMemberDeclarations ( OutputList & ol)
private

Definition at line 1120 of file groupdef.cpp.

1121{
1123}
void startMemberSections()
Definition outputlist.h:461

References OutputList::startMemberSections().

Referenced by writeDocumentation().

◆ startMemberDocumentation()

void GroupDefImpl::startMemberDocumentation ( OutputList & ol)
private

Definition at line 1130 of file groupdef.cpp.

1131{
1132 //printf("** GroupDefImpl::startMemberDocumentation()\n");
1133 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1134 {
1135 ol.pushGeneratorState();
1138 }
1139}
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 101 of file groupdef.cpp.

101{ return m_subGrouping; }

References m_subGrouping.

◆ updateLanguage()

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

Definition at line 2051 of file groupdef.cpp.

2052{
2053 if (getLanguage()==SrcLangExt::Unknown && d->getLanguage()!=SrcLangExt::Unknown)
2054 {
2056 }
2057}
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 1151 of file groupdef.cpp.

1152{
1153 // write Author section (Man only)
1154 ol.pushGeneratorState();
1156 ol.startGroupHeader();
1158 ol.endGroupHeader();
1160 ol.popGeneratorState();
1161}
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 865 of file groupdef.cpp.

866{
868 {
869 auto parser { createDocParser() };
870 auto ast { validatingParseDoc(*parser.get(),
871 briefFile(),
872 briefLine(),
873 this,
874 nullptr,
876 DocOptions()
877 .setIndexWords(true)
878 .setSingleLine(true))
879 };
880 if (!ast->isEmpty())
881 {
882 ol.startParagraph();
885 ol.writeString(" - ");
887 ol.writeDoc(ast.get(),this,nullptr);
890 ol.writeString(" \n");
892
893 if (hasDetailedDescription() && m_pages.size()!=numDocMembers()) // group with non-page members
894 {
896 ol.startTextLink(QCString(),"details");
898 ol.endTextLink();
899 }
901 ol.endParagraph();
902 }
903 }
904 ol.writeSynopsis();
905}
virtual QCString briefFile() const =0
bool hasBriefDescription() const override
int briefLine() const override
bool hasDetailedDescription() const override
size_t numDocMembers() const override
Definition groupdef.cpp:635
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, m_pages, Man, numDocMembers(), 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 1060 of file groupdef.cpp.

1061{
1062 // write list of classes
1063 m_classes.writeDeclaration(ol,nullptr,title,FALSE);
1064}

References FALSE, and m_classes.

Referenced by writeDocumentation().

◆ writeConcepts()

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

Definition at line 1066 of file groupdef.cpp.

1067{
1068 // write list of concepts
1069 m_concepts.writeDeclaration(ol,title,FALSE);
1070}

References FALSE, and m_concepts.

Referenced by writeDocumentation().

◆ writeDetailedDescription()

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

Definition at line 787 of file groupdef.cpp.

788{
790 {
792 if (m_pages.size()!=numDocMembers()) // not only pages -> classical layout
793 {
796 ol.writeRuler();
800 ol.writeAnchor(QCString(),"details");
802 }
803 else
804 {
805 ol.disableAllBut(OutputType::Man); // always print title for man page
806 }
807 ol.startGroupHeader("details");
808 ol.parseText(title);
809 ol.endGroupHeader();
811
812 // repeat brief description
813 ol.startTextBlock();
814 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF))
815 {
817 briefLine(),
818 this,
819 nullptr,
821 DocOptions());
822 }
823 // write separator between brief and details
824 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF) &&
825 !documentation().isEmpty())
826 {
830 ol.enableAll();
833 ol.writeString("\n\n");
835 }
836
837 // write detailed documentation
838 if (!documentation().isEmpty())
839 {
840 ol.generateDoc(docFile(),
841 docLine(),
842 this,
843 nullptr,
844 documentation()+"\n",
845 DocOptions()
846 .setIndexWords(true));
847 }
848
849 // write inbody documentation
850 if (!inbodyDocumentation().isEmpty())
851 {
853 inbodyLine(),
854 this,
855 nullptr,
856 inbodyDocumentation()+"\n",
857 DocOptions()
858 .setIndexWords(true));
859 }
861 ol.endTextBlock();
862 }
863}
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 1021 of file groupdef.cpp.

1022{
1023 // write list of directories
1024 if (!m_dirList.empty())
1025 {
1026 ol.startMemberHeader("dirs");
1027 ol.parseText(title);
1028 ol.endMemberHeader();
1029 ol.startMemberList();
1030 for(const auto dd : m_dirList)
1031 {
1032 if (!dd->hasDocumentation()) continue;
1034 QCString anc = dd->anchor();
1035 if (anc.isEmpty()) anc=dd->shortName(); else anc.prepend(dd->shortName()+"_");
1038 ol.insertMemberAlign();
1039 ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),QCString(),dd->shortName());
1041 if (!dd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
1042 {
1043 ol.startMemberDescription(dd->getOutputFileBase());
1045 briefLine(),
1046 dd,
1047 nullptr,
1048 dd->briefDescription(),
1049 DocOptions()
1050 .setSingleLine(true));
1052 }
1053 ol.endMemberDeclaration(QCString(),QCString());
1054 }
1055
1056 ol.endMemberList();
1057 }
1058}
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 1220 of file groupdef.cpp.

1221{
1222 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
1223 ol.pushGeneratorState();
1224
1225 // Find out how deep this group is nested. In case of multiple parents, use the first one.
1226 int hierarchyLevel = 0;
1227 const GroupDef *gd = this;
1228 while (!gd->partOfGroups().empty())
1229 {
1230 gd = gd->partOfGroups().front();
1231 ++hierarchyLevel;
1232 }
1233
1235 FALSE /* additionalIndices*/, QCString() /*altSidebarName*/, hierarchyLevel);
1236
1237 ol.startHeaderSection();
1238 bool writeOutlinePanel = generateTreeView && Config_getBool(PAGE_OUTLINE_PANEL);
1239 if (!writeOutlinePanel) writeSummaryLinks(ol);
1241 //1.{
1242 ol.pushGeneratorState();
1244 ol.generateDoc(docFile(),
1246 this,
1247 nullptr,
1248 m_title,
1249 DocOptions()
1250 .setIndexWords(true)
1251 .setSingleLine(true)
1252 .setAutolinkSupport(false));
1253 ol.popGeneratorState();
1254 //1.}
1255 addGroupListToTitle(ol,this);
1256 //2.{
1257 ol.pushGeneratorState();
1260 ol.popGeneratorState();
1261 //2.}
1262 //3.{
1263 ol.pushGeneratorState();
1266 if (!m_titleAsText.isEmpty())
1267 {
1268 ol.writeString(" - ");
1270 }
1271 ol.popGeneratorState();
1272 //3.}
1273 ol.endHeaderSection();
1274 ol.startContents();
1275
1276 //---------------------------------------- start flexible part -------------------------------
1277
1278 SrcLangExt lang=getLanguage();
1279 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Group))
1280 {
1281 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
1282 switch (lde->kind())
1283 {
1284 case LayoutDocEntry::BriefDesc:
1286 break;
1287 case LayoutDocEntry::MemberDeclStart:
1289 break;
1290 case LayoutDocEntry::GroupClasses:
1291 if (ls) writeClasses(ol,ls->title(lang));
1292 break;
1293 case LayoutDocEntry::GroupConcepts:
1294 if (ls) writeConcepts(ol,ls->title(lang));
1295 break;
1296 case LayoutDocEntry::GroupModules:
1297 if (ls) writeModules(ol,ls->title(lang));
1298 break;
1299 case LayoutDocEntry::GroupInlineClasses:
1301 break;
1302 case LayoutDocEntry::GroupNamespaces:
1303 if (ls) writeNamespaces(ol,ls->title(lang));
1304 break;
1305 case LayoutDocEntry::MemberGroups:
1307 break;
1308 case LayoutDocEntry::MemberDecl:
1309 {
1310 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
1311 if (lmd)
1312 {
1313 writeMemberDeclarations(ol,lmd->type,lmd->title(lang));
1314 }
1315 }
1316 break;
1317 case LayoutDocEntry::MemberDeclEnd:
1319 break;
1320 case LayoutDocEntry::DetailedDesc:
1321 if (ls) writeDetailedDescription(ol,ls->title(lang));
1322 break;
1323 case LayoutDocEntry::MemberDefStart:
1325 break;
1326 case LayoutDocEntry::MemberDef:
1327 {
1328 const LayoutDocEntryMemberDef *lmd = dynamic_cast<const LayoutDocEntryMemberDef*>(lde.get());
1329 if (lmd)
1330 {
1331 writeMemberDocumentation(ol,lmd->type,lmd->title(lang));
1332 }
1333 }
1334 break;
1335 case LayoutDocEntry::MemberDefEnd:
1337 break;
1338 case LayoutDocEntry::GroupNestedGroups:
1339 if (ls) writeNestedGroups(ol,ls->title(lang));
1340 break;
1341 case LayoutDocEntry::GroupPageDocs:
1343 break;
1344 case LayoutDocEntry::GroupDirs:
1345 if (ls) writeDirs(ol,ls->title(lang));
1346 break;
1347 case LayoutDocEntry::GroupFiles:
1348 if (ls) writeFiles(ol,ls->title(lang));
1349 break;
1350 case LayoutDocEntry::GroupGraph:
1351 writeGroupGraph(ol);
1352 break;
1353 case LayoutDocEntry::AuthorSection:
1355 break;
1356 case LayoutDocEntry::ClassIncludes:
1357 case LayoutDocEntry::ClassInheritanceGraph:
1358 case LayoutDocEntry::ClassNestedClasses:
1359 case LayoutDocEntry::ClassCollaborationGraph:
1360 case LayoutDocEntry::ClassAllMembersLink:
1361 case LayoutDocEntry::ClassUsedFiles:
1362 case LayoutDocEntry::ClassInlineClasses:
1363 case LayoutDocEntry::NamespaceNestedNamespaces:
1364 case LayoutDocEntry::NamespaceNestedConstantGroups:
1365 case LayoutDocEntry::NamespaceClasses:
1366 case LayoutDocEntry::NamespaceConcepts:
1367 case LayoutDocEntry::NamespaceInterfaces:
1368 case LayoutDocEntry::NamespaceStructs:
1369 case LayoutDocEntry::NamespaceExceptions:
1370 case LayoutDocEntry::NamespaceInlineClasses:
1371 case LayoutDocEntry::ConceptDefinition:
1372 case LayoutDocEntry::FileClasses:
1373 case LayoutDocEntry::FileConcepts:
1374 case LayoutDocEntry::FileInterfaces:
1375 case LayoutDocEntry::FileStructs:
1376 case LayoutDocEntry::FileExceptions:
1377 case LayoutDocEntry::FileNamespaces:
1378 case LayoutDocEntry::FileConstantGroups:
1379 case LayoutDocEntry::FileIncludes:
1380 case LayoutDocEntry::FileIncludeGraph:
1381 case LayoutDocEntry::FileIncludedByGraph:
1382 case LayoutDocEntry::FileSourceLink:
1383 case LayoutDocEntry::FileInlineClasses:
1384 case LayoutDocEntry::ModuleExports:
1385 case LayoutDocEntry::ModuleClasses:
1386 case LayoutDocEntry::ModuleConcepts:
1387 case LayoutDocEntry::ModuleUsedFiles:
1388 case LayoutDocEntry::DirSubDirs:
1389 case LayoutDocEntry::DirFiles:
1390 case LayoutDocEntry::DirGraph:
1391 err("Internal inconsistency: member '{}' should not be part of "
1392 "LayoutDocManager::Group entry list\n",lde->entryToString());
1393 break;
1394 }
1395 }
1396
1397 //---------------------------------------- end flexible part -------------------------------
1398
1399 for (auto &subgd : getSubGroups())
1400 {
1401 if (!subgd->isReference())
1402 {
1403 if (subgd->partOfGroups().front() == this)
1404 {
1405 ol.writePageLink(subgd->getOutputFileBase(), FALSE);
1406 }
1407 else
1408 {
1409 // Could write a note explaining that the subgroup belongs to another
1410 // group and add a link here.
1411 }
1412 }
1413 }
1414 if (generateTreeView && Config_getBool(PAGE_OUTLINE_PANEL))
1415 {
1416 ol.pushGeneratorState();
1418 ol.endContents();
1419 ol.writeString("</div><!-- doc-content -->\n");
1421 ol.writeString("</div><!-- container -->\n");
1422 ol.popGeneratorState();
1423 endFile(ol,true,true);
1424 }
1425 else
1426 {
1427 endFile(ol);
1428 }
1429
1430 ol.popGeneratorState();
1431
1432 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1433 {
1434 m_allMemberList.sort();
1435 writeMemberPages(ol, hierarchyLevel + 1);
1436 }
1437}
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:970
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:907
void writeAuthorSection(OutputList &ol)
void endMemberDocumentation(OutputList &ol)
const GroupList & getSubGroups() const override
Definition groupdef.cpp:117
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:932
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:976
void writeDetailedDescription(OutputList &ol, const QCString &title)
Definition groupdef.cpp:787
void writeBriefDescription(OutputList &ol)
Definition groupdef.cpp:865
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 932 of file groupdef.cpp.

933{
934 // write list of files
935 if (!m_fileList.empty())
936 {
937 ol.startMemberHeader("files");
938 ol.parseText(title);
939 ol.endMemberHeader();
940 ol.startMemberList();
941 for (const auto &fd : m_fileList)
942 {
943 if (!fd->hasDocumentation()) continue;
945 QCString anc = fd->anchor();
946 if (anc.isEmpty()) anc=fd->displayName(); else anc.prepend(fd->displayName()+"_");
950 ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),QCString(),fd->displayName());
952 if (!fd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
953 {
954 ol.startMemberDescription(fd->getOutputFileBase());
956 briefLine(),
957 fd,
958 nullptr,
959 fd->briefDescription(),
960 DocOptions()
961 .setSingleLine(true));
963 }
964 ol.endMemberDeclaration(QCString(),QCString());
965 }
966 ol.endMemberList();
967 }
968}
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 907 of file groupdef.cpp.

908{
909 if (Config_getBool(HAVE_DOT) && m_hasGroupGraph /*&& Config_getBool(GROUP_GRAPHS)*/)
910 {
911 DotGroupCollaboration graph(this);
912 if (graph.isTooBig())
913 {
914 warn_uncond("Group dependency graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
915 name(), graph.numNodes(), Config_getInt(DOT_GRAPH_MAX_NODES));
916 }
917 else if (!graph.isTrivial())
918 {
919 msg("Generating dependency graph for group {}\n",qualifiedName());
922 //ol.startParagraph();
925 ol.endGroupCollaboration(graph);
926 //ol.endParagraph();
928 }
929 }
930}
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 1079 of file groupdef.cpp.

1080{
1081 m_classes.writeDocumentation(ol);
1082}

References m_classes.

Referenced by writeDocumentation().

◆ writeMemberDeclarations()

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

Definition at line 1974 of file groupdef.cpp.

1975{
1976 bool optimizeVhdl = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
1977
1978 MemberList * ml = getMemberList(lt);
1979 if (optimizeVhdl && ml)
1980 {
1981 VhdlDocGen::writeVhdlDeclarations(ml,ol,this,nullptr,nullptr,nullptr,nullptr);
1982 return;
1983 }
1984 if (ml)
1985 {
1986 ml->writeDeclarations(ol,nullptr,nullptr,nullptr,this,nullptr,title,QCString());
1987 }
1988}
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 1990 of file groupdef.cpp.

1991{
1992 MemberList * ml = getMemberList(lt);
1993 if (ml) ml->writeDocumentation(ol,name(),this,title,ml->listType().toLabel());
1994}
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 1111 of file groupdef.cpp.

1112{
1113 /* write user defined member groups */
1114 for (const auto &mg : m_memberGroups)
1115 {
1116 mg->writeDeclarations(ol,nullptr,nullptr,nullptr,this,nullptr);
1117 }
1118}

References m_memberGroups.

Referenced by writeDocumentation().

◆ writeMemberPages()

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

Implements GroupDef.

Definition at line 1439 of file groupdef.cpp.

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

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

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

References FALSE, and m_modules.

Referenced by writeDocumentation().

◆ writeNamespaces()

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

Definition at line 970 of file groupdef.cpp.

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

References m_namespaces.

Referenced by writeDocumentation().

◆ writeNestedGroups()

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

Definition at line 976 of file groupdef.cpp.

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

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(), OutputList::startMemberList(), and OutputList::writeObjectLink().

Referenced by writeDocumentation().

◆ writePageDocumentation()

void GroupDefImpl::writePageDocumentation ( OutputList & ol)
private

Definition at line 1084 of file groupdef.cpp.

1085{
1086 for (const auto *pd : m_pages)
1087 {
1088 if (!pd->isReference())
1089 {
1090 const SectionInfo *si=nullptr;
1091 if (pd->hasTitle() && !pd->name().isEmpty() &&
1092 (si=SectionManager::instance().find(pd->name()))!=nullptr)
1093 {
1095 ol.docify(si->title());
1097 }
1098 ol.startTextBlock();
1099 ol.generateDoc(pd->docFile(),
1100 pd->docLine(),
1101 pd,
1102 nullptr,
1103 (pd->documentation()+pd->inbodyDocumentation()),
1104 DocOptions()
1105 .setIndexWords(true));
1106 ol.endTextBlock();
1107 }
1108 }
1109}
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 1215 of file groupdef.cpp.

1216{
1217 ol.writePageOutline();
1218}
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 1455 of file groupdef.cpp.

1456{
1457 bool createSubDirs=Config_getBool(CREATE_SUBDIRS);
1458
1459 ol.writeString(" <div class=\"navtab\">\n");
1460 ol.writeString(" <table>\n");
1461
1462 for (const auto *md : m_allMemberList)
1463 {
1464 if (md->getGroupDef()==this && md->isLinkable() && !md->isEnumValue())
1465 {
1466 if (md->isLinkableInProject())
1467 {
1468 QCString fn = md->getOutputFileBase();
1470 if (md==currentMd) // selected item => highlight
1471 {
1472 ol.writeString(" <tr><td class=\"navtabHL\">");
1473 }
1474 else
1475 {
1476 ol.writeString(" <tr><td class=\"navtab\">");
1477 }
1478 ol.writeString("<span class=\"label\"><a ");
1479 ol.writeString("href=\"");
1480 if (createSubDirs) ol.writeString("../../");
1481 ol.writeString(fn+"#"+md->anchor());
1482 ol.writeString("\">");
1483 ol.writeString(convertToHtml(md->localName()));
1484 ol.writeString("</a></span>");
1485 ol.writeString("</td></tr>\n");
1486 }
1487 }
1488 }
1489 ol.writeString(" </table>\n");
1490 ol.writeString(" </div>\n");
1491}
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 1163 of file groupdef.cpp.

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

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

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

◆ m_hasGroupGraph

bool GroupDefImpl::m_hasGroupGraph = false
private

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

Referenced by GroupDefImpl(), and subGrouping().

◆ m_title

QCString GroupDefImpl::m_title
private

◆ m_titleAsText

QCString GroupDefImpl::m_titleAsText
private

◆ m_titleSet

bool GroupDefImpl::m_titleSet
private

Definition at line 157 of file groupdef.cpp.

Referenced by hasGroupTitle(), and setGroupTitleLocal().


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