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 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 DefinitionfindInnerCompound (const QCString &name) const override
DefinitiongetOuterScope () const override
const MemberVectorgetReferencesMembers () const override
const MemberVectorgetReferencedByMembers () const override
bool hasSections () const override
bool hasSources () const override
bool hasBriefDescription () const override
QCString id () const override
const SectionRefsgetSectionRefs () const override
void setName (const QCString &name) override
void setId (const QCString &name) override
void setDefFile (const QCString &df, int defLine, int defColumn) override
void setDocumentation (const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE) override
void setBriefDescription (const QCString &brief, const QCString &briefFile, int briefLine) override
void setInbodyDocumentation (const QCString &doc, const QCString &docFile, int docLine) override
void setReference (const QCString &r) override
void addSectionsToDefinition (const std::vector< const SectionInfo * > &anchorList) override
void setBodySegment (int defLine, int bls, int ble) override
void setBodyDef (const FileDef *fd) override
void addSourceReferencedBy (MemberDef *md, const QCString &sourceRefName) override
void addSourceReferences (MemberDef *md, const QCString &sourceRefName) override
void setRefItems (const RefItemVector &sli) override
void mergeRefItems (Definition *def) override
void mergeReferences (const Definition *other) override
void mergeReferencedBy (const Definition *other) override
void 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
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 185 of file groupdef.cpp.

186 : DefinitionMixin(df,dl,1,na),
187 m_allMemberList(MemberListType::AllMembersList(),MemberListContainer::Group)
188{
189 if (!refFileName.isEmpty())
190 {
191 m_fileName=stripExtension(refFileName);
192 }
193 else
194 {
195 m_fileName = convertNameToFile(QCString("group_")+na);
196 }
198
199 //visited = 0;
200 m_groupScope = nullptr;
201 m_subGrouping=Config_getBool(SUBGROUPING);
202 m_hasGroupGraph=Config_getBool(GROUP_GRAPHS);
203}
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:209
MemberList m_allMemberList
Definition groupdef.cpp:166
QCString m_fileName
Definition groupdef.cpp:156
bool m_subGrouping
Definition groupdef.cpp:171
Definition * m_groupScope
Definition groupdef.cpp:168
bool m_hasGroupGraph
Definition groupdef.cpp:172
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:4885
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:3446

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

206{
207}

Member Function Documentation

◆ addClass()

bool GroupDefImpl::addClass ( ClassDef * def)
overridevirtual

Implements GroupDef.

Definition at line 279 of file groupdef.cpp.

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

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

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

◆ addDir()

void GroupDefImpl::addDir ( DirDef * dd)
overridevirtual

Implements GroupDef.

Definition at line 329 of file groupdef.cpp.

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

References Definition::isHidden(), and m_dirList.

◆ addExample()

void GroupDefImpl::addExample ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 343 of file groupdef.cpp.

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

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

◆ addFile()

void GroupDefImpl::addFile ( FileDef * def)
overridevirtual

Implements GroupDef.

Definition at line 260 of file groupdef.cpp.

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

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

◆ addGroup()

void GroupDefImpl::addGroup ( GroupDef * def)
overridevirtual

Implements GroupDef.

Definition at line 605 of file groupdef.cpp.

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

References m_groups.

◆ addListReferences()

void GroupDefImpl::addListReferences ( )
overridevirtual

Implements GroupDef.

Definition at line 1807 of file groupdef.cpp.

1808{
1809 {
1810 const RefItemVector &xrefItems = xrefListItems();
1811 addRefItem(xrefItems,
1815 QCString(),
1816 nullptr
1817 );
1818 }
1819 for (const auto &mg : m_memberGroups)
1820 {
1821 mg->addListReferences(this);
1822 }
1823 for (auto &ml : m_memberLists)
1824 {
1825 if (ml->listType().isDocumentation())
1826 {
1827 ml->addListReferences(this);
1828 }
1829 }
1830}
const QCString & name() const override
const RefItemVector & xrefListItems() const override
MemberGroupList m_memberGroups
Definition groupdef.cpp:170
QCString getOutputFileBase() const override
MemberLists m_memberLists
Definition groupdef.cpp:169
virtual QCString trGroup(bool first_capital, bool singular)=0
Translator * theTranslator
Definition language.cpp:71
std::vector< RefItem * > RefItemVector
Definition reflist.h:133
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:4766

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

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

References addMembersToMemberGroup(), m_memberGroups, and m_memberLists.

Referenced by addMembersToMemberGroup().

◆ addMemberToList()

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

Definition at line 1832 of file groupdef.cpp.

1833{
1834 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
1835 bool sortMemberDocs = Config_getBool(SORT_MEMBER_DOCS);
1836 const auto &ml = m_memberLists.get(lt,MemberListContainer::Group);
1837 ml->setNeedsSorting(
1838 (ml->listType().isDeclaration() && sortBriefDocs) ||
1839 (ml->listType().isDocumentation() && sortMemberDocs));
1840 ml->push_back(md);
1841}

References Config_getBool, Group, and m_memberLists.

Referenced by insertMember().

◆ addModule()

bool GroupDefImpl::addModule ( ModuleDef * def)
overridevirtual

Implements GroupDef.

Definition at line 304 of file groupdef.cpp.

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

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

◆ addNamespace()

bool GroupDefImpl::addNamespace ( NamespaceDef * def)
overridevirtual

Implements GroupDef.

Definition at line 316 of file groupdef.cpp.

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

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

◆ addPage()

void GroupDefImpl::addPage ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 335 of file groupdef.cpp.

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

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

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

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

References m_allMemberList.

◆ containsFile()

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

Implements GroupDef.

Definition at line 274 of file groupdef.cpp.

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

References m_fileList.

◆ countMembers()

void GroupDefImpl::countMembers ( )
overridevirtual

Implements GroupDef.

Definition at line 619 of file groupdef.cpp.

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

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:153

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

◆ distributeMemberGroupDocumentation()

void GroupDefImpl::distributeMemberGroupDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 232 of file groupdef.cpp.

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

References m_memberGroups.

◆ endMemberDeclarations()

void GroupDefImpl::endMemberDeclarations ( OutputList & ol)
private

Definition at line 1129 of file groupdef.cpp.

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

References OutputList::endMemberSections().

Referenced by writeDocumentation().

◆ endMemberDocumentation()

void GroupDefImpl::endMemberDocumentation ( OutputList & ol)
private

Definition at line 1145 of file groupdef.cpp.

1146{
1147 //printf("** GroupDefImpl::endMemberDocumentation()\n");
1148 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1149 {
1150 ol.popGeneratorState();
1152 }
1153}
static bool suppressDocWarnings
Definition doxygen.h: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 589 of file groupdef.cpp.

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

References FALSE, m_groups, and TRUE.

◆ findSectionsInDocumentation()

void GroupDefImpl::findSectionsInDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 240 of file groupdef.cpp.

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

111{ return m_classes; }

References m_classes.

◆ getConcepts()

const ConceptLinkedRefMap & GroupDefImpl::getConcepts ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 112 of file groupdef.cpp.

112{ return m_concepts; }

References m_concepts.

◆ getDirs()

const DirList & GroupDefImpl::getDirs ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 117 of file groupdef.cpp.

117{ return m_dirList; }

References m_dirList.

◆ getExamples()

const PageLinkedRefMap & GroupDefImpl::getExamples ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 118 of file groupdef.cpp.

118{ return m_examples; }

References m_examples.

◆ getFiles()

const FileList & GroupDefImpl::getFiles ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 110 of file groupdef.cpp.

110{ return m_fileList; }

References m_fileList.

◆ getGroupScope()

Definition * GroupDefImpl::getGroupScope ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 102 of file groupdef.cpp.

102{ return m_groupScope; }

References m_groupScope.

◆ getMemberGroups()

const MemberGroupList & GroupDefImpl::getMemberGroups ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 108 of file groupdef.cpp.

108{ return m_memberGroups; }

References m_memberGroups.

◆ getMemberList()

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

Implements GroupDef.

Definition at line 1953 of file groupdef.cpp.

1954{
1955 for (auto &ml : m_memberLists)
1956 {
1957 if (ml->listType()==lt)
1958 {
1959 return ml.get();
1960 }
1961 }
1962 return nullptr;
1963}

References m_memberLists.

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

◆ getMemberLists()

const MemberLists & GroupDefImpl::getMemberLists ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 105 of file groupdef.cpp.

105{ return m_memberLists; }

References m_memberLists.

◆ getModules()

const ModuleLinkedRefMap & GroupDefImpl::getModules ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 113 of file groupdef.cpp.

113{ return m_modules; }

References m_modules.

◆ getNamespaces()

const NamespaceLinkedRefMap & GroupDefImpl::getNamespaces ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 114 of file groupdef.cpp.

114{ 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 1802 of file groupdef.cpp.

1803{
1804 return m_fileName;
1805}

References m_fileName.

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

◆ getPages()

const PageLinkedRefMap & GroupDefImpl::getPages ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 116 of file groupdef.cpp.

116{ return m_pages; }

References m_pages.

◆ getSubGroups()

const GroupList & GroupDefImpl::getSubGroups ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 115 of file groupdef.cpp.

115{ 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 2053 of file groupdef.cpp.

2054{
2055 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
2056 return ((!briefDescription().isEmpty() && repeatBrief) ||
2057 !documentation().isEmpty() ||
2058 !inbodyDocumentation().isEmpty()) &&
2059 (m_pages.size()!=numDocMembers());
2060}
size_t numDocMembers() const override
Definition groupdef.cpp:633

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

Referenced by writeBriefDescription().

◆ hasGroupGraph()

bool GroupDefImpl::hasGroupGraph ( ) const
overridevirtual

Implements GroupDef.

Definition at line 2067 of file groupdef.cpp.

2068{
2069 return m_hasGroupGraph;
2070}

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

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

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

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

2039{
2040 return hasUserDocumentation();
2041}
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 2033 of file groupdef.cpp.

2034{
2035 return !isReference() && isLinkable();
2036}
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 2027 of file groupdef.cpp.

2028{
2029 bool allExternals = Config_getBool(EXTERNAL_GROUPS);
2030 return (allExternals || hasNonReferenceNestedGroupRec(this,0)) && isLinkable();
2031}
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 633 of file groupdef.cpp.

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

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

2063{
2065}

References m_hasGroupGraph.

◆ removeMember()

void GroupDefImpl::removeMember ( MemberDef * md)
overridevirtual

Implements GroupDef.

Definition at line 515 of file groupdef.cpp.

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

1988{
1989 MemberList *ml = getMemberList(lt);
1990 if (ml) ml->remove(md);
1991}
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 101 of file groupdef.cpp.

101{ m_groupScope = d; }

References m_groupScope.

◆ setGroupTitle()

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

Implements GroupDef.

Definition at line 226 of file groupdef.cpp.

227{
229}

References setGroupTitleLocal().

◆ setGroupTitleLocal()

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

Definition at line 209 of file groupdef.cpp.

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

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

1904{
1905 for (auto &ml : m_memberLists)
1906 {
1907 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(FALSE); }
1908 }
1909 if (Config_getBool(SORT_BRIEF_DOCS))
1910 {
1911 std::stable_sort(m_dirList.begin(), m_dirList.end(), compareDirDefs);
1912
1913 auto classComp = [](const ClassLinkedRefMap::Ptr &c1,const ClassLinkedRefMap::Ptr &c2)
1914 {
1915 return Config_getBool(SORT_BY_SCOPE_NAME) ?
1916 qstricmp_sort(c1->name(), c2->name())<0 :
1917 qstricmp_sort(c1->className(), c2->className())<0;
1918 };
1919 std::stable_sort(m_classes.begin(), m_classes.end(), classComp);
1920
1921 auto namespaceComp = [](const NamespaceLinkedRefMap::Ptr &n1,const NamespaceLinkedRefMap::Ptr &n2)
1922 {
1923 return qstricmp_sort(n1->name(),n2->name())<0;
1924 };
1925
1926 std::stable_sort(m_namespaces.begin(),m_namespaces.end(),namespaceComp);
1927
1928 auto moduleComp = [](const ModuleLinkedRefMap::Ptr &m1,const ModuleLinkedRefMap::Ptr &m2)
1929 {
1930 return qstricmp_sort(m1->name(),m2->name())<0;
1931 };
1932
1933 std::stable_sort(m_modules.begin(), m_modules.end(), moduleComp);
1934
1935 auto conceptComp = [](const ConceptLinkedRefMap::Ptr &c1,const ConceptLinkedRefMap::Ptr &c2)
1936 {
1937 return qstricmp_sort(c1->name(),c2->name())<0;
1938 };
1939
1940 std::stable_sort(m_concepts.begin(), m_concepts.end(), conceptComp);
1941
1942 std::stable_sort(m_dirList.begin(), m_dirList.end(), compareDirDefs);
1943 std::stable_sort(m_fileList.begin(), m_fileList.end(), compareFileDefs);
1944
1945 }
1946 else
1947 {
1950 }
1951}
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:1215
bool compareFileDefs(const FileDef *fd1, const FileDef *fd2)
Definition filedef.cpp:1944
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 1993 of file groupdef.cpp.

1994{
1995 if (Config_getBool(SORT_BRIEF_DOCS))
1996 {
1997 std::stable_sort(m_groups.begin(),
1998 m_groups.end(),
1999 [](const auto &g1,const auto &g2)
2000 { return g1->groupTitle() < g2->groupTitle(); });
2001 }
2002}

References Config_getBool, and m_groups.

◆ startMemberDeclarations()

void GroupDefImpl::startMemberDeclarations ( OutputList & ol)
private

Definition at line 1124 of file groupdef.cpp.

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

References OutputList::startMemberSections().

Referenced by writeDocumentation().

◆ startMemberDocumentation()

void GroupDefImpl::startMemberDocumentation ( OutputList & ol)
private

Definition at line 1134 of file groupdef.cpp.

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

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

Referenced by writeDocumentation().

◆ subGrouping()

bool GroupDefImpl::subGrouping ( ) const
inlineoverridevirtual

Implements GroupDef.

Definition at line 99 of file groupdef.cpp.

99{ return m_subGrouping; }

References m_subGrouping.

◆ updateLanguage()

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

Definition at line 2045 of file groupdef.cpp.

2046{
2047 if (getLanguage()==SrcLangExt::Unknown && d->getLanguage()!=SrcLangExt::Unknown)
2048 {
2050 }
2051}
void setLanguage(SrcLangExt lang) override
SrcLangExt getLanguage() const override

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

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

◆ writeAuthorSection()

void GroupDefImpl::writeAuthorSection ( OutputList & ol)
private

Definition at line 1155 of file groupdef.cpp.

1156{
1157 // write Author section (Man only)
1158 ol.pushGeneratorState();
1160 ol.startGroupHeader();
1162 ol.endGroupHeader();
1164 ol.popGeneratorState();
1165}
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 862 of file groupdef.cpp.

863{
865 {
866 auto parser { createDocParser() };
867 auto ast { validatingParseDoc(*parser.get(),
868 briefFile(),
869 briefLine(),
870 this,
871 nullptr,
873 DocOptions()
874 .setIndexWords(true)
875 .setSingleLine(true))
876 };
877 if (!ast->isEmpty())
878 {
879 ol.startParagraph();
882 ol.writeString(" - ");
884 ol.writeDoc(ast.get(),this,nullptr);
887 ol.writeString(" \n");
889
891 {
893 ol.startTextLink(QCString(),"details");
895 ol.endTextLink();
896 }
898 ol.endParagraph();
899 }
900 }
901 ol.writeSynopsis();
902}
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 1064 of file groupdef.cpp.

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

References FALSE, and m_classes.

Referenced by writeDocumentation().

◆ writeConcepts()

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

Definition at line 1070 of file groupdef.cpp.

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

References FALSE, and m_concepts.

Referenced by writeDocumentation().

◆ writeDetailedDescription()

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

Definition at line 785 of file groupdef.cpp.

786{
787 if ((!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF))
788 || !documentation().isEmpty() || !inbodyDocumentation().isEmpty()
789 )
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 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 }
859 }
860}
QCString inbodyFile() const override
QCString briefFile() const override
int inbodyLine() const override
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 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::generateDoc(), 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::writeAnchor(), OutputList::writeRuler(), and OutputList::writeString().

Referenced by writeDocumentation().

◆ writeDirs()

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

Definition at line 1025 of file groupdef.cpp.

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

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

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

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

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

1084{
1085 m_classes.writeDocumentation(ol);
1086}

References m_classes.

Referenced by writeDocumentation().

◆ writeMemberDeclarations()

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

Definition at line 1965 of file groupdef.cpp.

1966{
1967 bool optimizeVhdl = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
1968
1969 MemberList * ml = getMemberList(lt);
1970 if (optimizeVhdl && ml)
1971 {
1972 VhdlDocGen::writeVhdlDeclarations(ml,ol,this,nullptr,nullptr,nullptr,nullptr);
1973 return;
1974 }
1975 if (ml)
1976 {
1977 ml->writeDeclarations(ol,nullptr,nullptr,nullptr,this,nullptr,title,QCString());
1978 }
1979}
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 1981 of file groupdef.cpp.

1982{
1983 MemberList * ml = getMemberList(lt);
1984 if (ml) ml->writeDocumentation(ol,name(),this,title,ml->listType().toLabel());
1985}
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 1115 of file groupdef.cpp.

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

References m_memberGroups.

Referenced by writeDocumentation().

◆ writeMemberPages()

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

Implements GroupDef.

Definition at line 1443 of file groupdef.cpp.

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

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

Referenced by writeDocumentation().

◆ writeModules()

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

Definition at line 1076 of file groupdef.cpp.

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

References FALSE, and m_modules.

Referenced by writeDocumentation().

◆ writeNamespaces()

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

Definition at line 967 of file groupdef.cpp.

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

References m_namespaces.

Referenced by writeDocumentation().

◆ writeNestedGroups()

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

Definition at line 973 of file groupdef.cpp.

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

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

1089{
1090 for (const auto *pd : m_pages)
1091 {
1092 if (!pd->isReference())
1093 {
1094 const SectionInfo *si=nullptr;
1095 if (pd->hasTitle() && !pd->name().isEmpty() &&
1096 (si=SectionManager::instance().find(pd->name()))!=nullptr)
1097 {
1099 ol.docify(si->title());
1101 }
1102 ol.startTextBlock();
1103 ol.generateDoc(pd->docFile(),
1104 pd->docLine(),
1105 pd,
1106 nullptr,
1107 (pd->documentation()+pd->inbodyDocumentation()),
1108 DocOptions()
1109 .setIndexWords(true));
1110 ol.endTextBlock();
1111 }
1112 }
1113}
const T * find(const std::string &key) const
Definition linkedmap.h:47
void endTextBlock(bool paraBreak=FALSE)
Definition outputlist.h:672
void endSection(const QCString &lab, SectionType t)
Definition outputlist.h:588
void startTextBlock(bool dense=FALSE)
Definition outputlist.h:670
void startSection(const QCString &lab, const QCString &title, SectionType t)
Definition outputlist.h:586
QCString label() const
Definition section.h:68
QCString title() const
Definition section.h:69
static SectionManager & instance()
returns a reference to the singleton
Definition section.h:178
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 1219 of file groupdef.cpp.

1220{
1221 ol.writePageOutline();
1222}
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 1459 of file groupdef.cpp.

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

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

◆ writeSummaryLinks()

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

Reimplemented from DefinitionMixin< GroupDef >.

Definition at line 1167 of file groupdef.cpp.

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

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

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 167 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 164 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 156 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 168 of file groupdef.cpp.

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

◆ m_hasGroupGraph

bool GroupDefImpl::m_hasGroupGraph = false
private

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

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

◆ m_titleSet

bool GroupDefImpl::m_titleSet
private

Definition at line 155 of file groupdef.cpp.

Referenced by hasGroupTitle(), and setGroupTitleLocal().


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