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
 
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)
 
 DefinitionMixin (const DefinitionMixin &other)
 
 DefinitionMixin (DefinitionMixin &&)=delete
 
DefinitionMixinoperator= (const DefinitionMixin &other)
 
DefinitionMixinoperator= (DefinitionMixin &&)=delete
 
 ~DefinitionMixin () override=default
 
bool isAlias () const override
 
const QCStringname () const override
 
bool isAnonymous () const override
 
const QCStringlocalName () const override
 
QCString qualifiedName () const override
 
QCString symbolName () const override
 
QCString getSourceFileBase () const override
 
QCString getSourceAnchor () const override
 
QCString documentation () const override
 
int docLine () const override
 
QCString docFile () const override
 
QCString briefDescription (bool abbreviate=FALSE) const override
 
QCString briefDescriptionAsTooltip () const override
 
int briefLine () const override
 
QCString inbodyDocumentation () const override
 
QCString inbodyFile () const override
 
int inbodyLine () const override
 
QCString briefFile () const override
 
QCString getDefFileName () const override
 
QCString getDefFileExtension () const override
 
int getDefLine () const override
 
int getDefColumn () const override
 
bool hasDocumentation () const override
 
bool hasUserDocumentation () const override
 
bool isVisibleInProject () const override
 
bool isVisible () const override
 
bool isHidden () const override
 
bool isArtificial () const override
 
bool isExported () const override
 
QCString getReference () const override
 
bool isReference () const override
 
QCString externalReference (const QCString &relPath) const override
 
int getStartDefLine () const override
 
int getStartBodyLine () const override
 
int getEndBodyLine () const override
 
const FileDefgetBodyDef () const override
 
SrcLangExt getLanguage () const override
 
const GroupListpartOfGroups () const override
 
bool isLinkableViaGroup () const override
 
const RefItemVectorxrefListItems () const override
 
const DefinitionfindInnerCompound (const QCString &name) const override
 
DefinitiongetOuterScope () const override
 
const MemberVectorgetReferencesMembers () const override
 
const MemberVectorgetReferencedByMembers () const override
 
bool hasSections () const override
 
bool hasSources () const override
 
bool hasBriefDescription () const override
 
QCString id () const override
 
const SectionRefsgetSectionRefs () const override
 
void setName (const QCString &name) override
 
void setId (const QCString &name) override
 
void setDefFile (const QCString &df, int defLine, int defColumn) override
 
void setDocumentation (const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE) override
 
void setBriefDescription (const QCString &brief, const QCString &briefFile, int briefLine) override
 
void setInbodyDocumentation (const QCString &doc, const QCString &docFile, int docLine) override
 
void setReference (const QCString &r) override
 
void addSectionsToDefinition (const std::vector< const SectionInfo * > &anchorList) override
 
void setBodySegment (int defLine, int bls, int ble) override
 
void setBodyDef (const FileDef *fd) override
 
void addSourceReferencedBy (MemberDef *md, const QCString &sourceRefName) override
 
void addSourceReferences (MemberDef *md, const QCString &sourceRefName) override
 
void setRefItems (const RefItemVector &sli) override
 
void mergeRefItems (Definition *def) override
 
void mergeReferences (const Definition *other) override
 
void mergeReferencedBy (const Definition *other) override
 
void 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
 
- Public Member Functions inherited from GroupDef
- Public Member Functions inherited from DefinitionMutable
- Public Member Functions inherited from Definition

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

184 : DefinitionMixin(df,dl,1,na),
185 m_allMemberList(MemberListType::AllMembersList(),MemberListContainer::Group)
186{
187 if (!refFileName.isEmpty())
188 {
189 m_fileName=stripExtension(refFileName);
190 }
191 else
192 {
193 m_fileName = convertNameToFile(QCString("group_")+na);
194 }
196
197 //visited = 0;
198 m_groupScope = nullptr;
199 m_subGrouping=Config_getBool(SUBGROUPING);
200 m_hasGroupGraph=Config_getBool(GROUP_GRAPHS);
201}
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:207
MemberList m_allMemberList
Definition groupdef.cpp:164
QCString m_fileName
Definition groupdef.cpp:154
bool m_subGrouping
Definition groupdef.cpp:169
Definition * m_groupScope
Definition groupdef.cpp:166
bool m_hasGroupGraph
Definition groupdef.cpp:170
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:150
#define Config_getBool(name)
Definition config.h:33
QCString stripExtension(const QCString &fName)
Definition util.cpp:5265
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:3858

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

◆ ~GroupDefImpl()

GroupDefImpl::~GroupDefImpl ( )
override

Definition at line 203 of file groupdef.cpp.

204{
205}

Member Function Documentation

◆ addClass()

bool GroupDefImpl::addClass ( ClassDef * def)
overridevirtual

Implements GroupDef.

Definition at line 275 of file groupdef.cpp.

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

289{
290 if (cd->isHidden()) return FALSE;
291 QCString qn = cd->name();
292 if (m_concepts.find(qn)==nullptr)
293 {
294 m_concepts.add(qn,cd);
295 return TRUE;
296 }
297 return FALSE;
298}
ConceptLinkedRefMap m_concepts
Definition groupdef.cpp:157

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

◆ addDir()

void GroupDefImpl::addDir ( DirDef * dd)
overridevirtual

Implements GroupDef.

Definition at line 325 of file groupdef.cpp.

326{
327 if (def->isHidden()) return;
328 m_dirList.push_back(def);
329}
DirList m_dirList
Definition groupdef.cpp:163

References Definition::isHidden(), and m_dirList.

◆ addExample()

void GroupDefImpl::addExample ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 339 of file groupdef.cpp.

340{
341 if (def->isHidden()) return;
342 m_examples.add(def->name(),def);
343}
virtual bool isHidden() const =0
virtual const QCString & name() const =0
PageLinkedRefMap m_examples
Definition groupdef.cpp:162

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

◆ addFile()

void GroupDefImpl::addFile ( FileDef * def)
overridevirtual

Implements GroupDef.

Definition at line 256 of file groupdef.cpp.

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

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

◆ addGroup()

void GroupDefImpl::addGroup ( GroupDef * def)
overridevirtual

Implements GroupDef.

Definition at line 601 of file groupdef.cpp.

602{
603 //printf("adding group '%s' to group '%s'\n",qPrint(def->name()),qPrint(name()));
604 //if (Config_getBool(SORT_MEMBER_DOCS))
605 // groupList->inSort(def);
606 //else
607 m_groups.push_back(def);
608}
GroupList m_groups
Definition groupdef.cpp:160

References m_groups.

◆ addListReferences()

void GroupDefImpl::addListReferences ( )
overridevirtual

Implements GroupDef.

Definition at line 1719 of file groupdef.cpp.

1720{
1721 {
1722 const RefItemVector &xrefItems = xrefListItems();
1723 addRefItem(xrefItems,
1727 QCString(),
1728 nullptr
1729 );
1730 }
1731 for (const auto &mg : m_memberGroups)
1732 {
1733 mg->addListReferences(this);
1734 }
1735 for (auto &ml : m_memberLists)
1736 {
1737 if (ml->listType().isDocumentation())
1738 {
1739 ml->addListReferences(this);
1740 }
1741 }
1742}
const QCString & name() const override
const RefItemVector & xrefListItems() const override
MemberGroupList m_memberGroups
Definition groupdef.cpp:168
QCString getOutputFileBase() const override
MemberLists m_memberLists
Definition groupdef.cpp:167
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:5146

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

347{
348 for (auto &ml : m_memberLists)
349 {
350 if (ml->listType().isDeclaration())
351 {
353 }
354 }
355}
void addMembersToMemberGroup() override
Definition groupdef.cpp:346

References addMembersToMemberGroup(), m_memberGroups, and m_memberLists.

Referenced by addMembersToMemberGroup().

◆ addMemberToList()

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

Definition at line 1744 of file groupdef.cpp.

1745{
1746 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
1747 bool sortMemberDocs = Config_getBool(SORT_MEMBER_DOCS);
1748 const auto &ml = m_memberLists.get(lt,MemberListContainer::Group);
1749 ml->setNeedsSorting(
1750 (ml->listType().isDeclaration() && sortBriefDocs) ||
1751 (ml->listType().isDocumentation() && sortMemberDocs));
1752 ml->push_back(md);
1753}

References Config_getBool, Group, and m_memberLists.

Referenced by insertMember().

◆ addModule()

bool GroupDefImpl::addModule ( ModuleDef * def)
overridevirtual

Implements GroupDef.

Definition at line 300 of file groupdef.cpp.

301{
302 if (mod->isHidden()) return false;
303 QCString qn = mod->name();
304 if (m_modules.find(qn)==nullptr)
305 {
306 m_modules.add(qn,mod);
307 return true;
308 }
309 return false;
310}
ModuleLinkedRefMap m_modules
Definition groupdef.cpp:158

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

◆ addNamespace()

bool GroupDefImpl::addNamespace ( NamespaceDef * def)
overridevirtual

Implements GroupDef.

Definition at line 312 of file groupdef.cpp.

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

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

◆ addPage()

void GroupDefImpl::addPage ( PageDef * def)
overridevirtual

Implements GroupDef.

Definition at line 331 of file groupdef.cpp.

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

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

642{
643 //printf("GroupDefImpl::computeAnchors()\n");
644 m_allMemberList.setAnchors();
645}

References m_allMemberList.

◆ containsFile()

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

Implements GroupDef.

Definition at line 270 of file groupdef.cpp.

271{
272 return std::find(m_fileList.cbegin(),m_fileList.cend(), def) != m_fileList.cend();
273}

References m_fileList.

◆ countMembers()

void GroupDefImpl::countMembers ( )
overridevirtual

Implements GroupDef.

Definition at line 615 of file groupdef.cpp.

616{
617 for (auto &ml : m_memberLists)
618 {
619 ml->countDecMembers();
620 ml->countDocMembers();
621 }
622 for (const auto &mg : m_memberGroups)
623 {
624 mg->countDecMembers();
625 mg->countDocMembers();
626 }
627}

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

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

◆ distributeMemberGroupDocumentation()

void GroupDefImpl::distributeMemberGroupDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 228 of file groupdef.cpp.

229{
230 for (const auto &mg : m_memberGroups)
231 {
232 mg->distributeMemberGroupDocumentation();
233 }
234}

References m_memberGroups.

◆ endMemberDeclarations()

void GroupDefImpl::endMemberDeclarations ( OutputList & ol)
private

Definition at line 1074 of file groupdef.cpp.

1075{
1076 ol.endMemberSections();
1077}
void endMemberSections()
Definition outputlist.h:464

References OutputList::endMemberSections().

Referenced by writeDocumentation().

◆ endMemberDocumentation()

void GroupDefImpl::endMemberDocumentation ( OutputList & ol)
private

Definition at line 1090 of file groupdef.cpp.

1091{
1092 //printf("** GroupDefImpl::endMemberDocumentation()\n");
1093 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1094 {
1095 ol.popGeneratorState();
1097 }
1098}
static bool suppressDocWarnings
Definition doxygen.h:132
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 585 of file groupdef.cpp.

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

References FALSE, m_groups, and TRUE.

◆ findSectionsInDocumentation()

void GroupDefImpl::findSectionsInDocumentation ( )
overridevirtual

Implements GroupDef.

Definition at line 236 of file groupdef.cpp.

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

1848{
1849 for (auto &ml : m_memberLists)
1850 {
1851 if (ml->listType()==lt)
1852 {
1853 return ml.get();
1854 }
1855 }
1856 return nullptr;
1857}

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

1715{
1716 return m_fileName;
1717}

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

1945{
1946 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
1947 return ((!briefDescription().isEmpty() && repeatBrief) ||
1948 !documentation().isEmpty() ||
1949 !inbodyDocumentation().isEmpty()) &&
1950 (m_pages.size()!=numDocMembers());
1951}
size_t numDocMembers() const override
Definition groupdef.cpp:629

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

1959{
1960 return m_hasGroupGraph;
1961}

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

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

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, Protected, MemberDef::protection(), Public, MemberNameInfo::push_back(), qPrint(), MemberDefMutable::setGroupAlias(), Signal, ArgumentList::size(), Slot, MemberDef::templateArguments(), toMemberDefMutable(), TRUE, Typedef, Definition::TypeFile, updateLanguage(), Variable, and MemberDef::virtualness().

◆ isASubGroup()

bool GroupDefImpl::isASubGroup ( ) const
overridevirtual

Implements GroupDef.

Definition at line 610 of file groupdef.cpp.

611{
612 return !partOfGroups().empty();
613}
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 1929 of file groupdef.cpp.

1930{
1931 return hasUserDocumentation();
1932}
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 1924 of file groupdef.cpp.

1925{
1926 return !isReference() && isLinkable();
1927}
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 1918 of file groupdef.cpp.

1919{
1920 bool allExternals = Config_getBool(EXTERNAL_GROUPS);
1921 return (allExternals || hasNonReferenceNestedGroupRec(this,0)) && isLinkable();
1922}
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 629 of file groupdef.cpp.

630{
631 return m_fileList.size()+
632 m_classes.size()+
633 m_namespaces.size()+
634 m_groups.size()+
635 m_allMemberList.size()+
636 m_pages.size()+
637 m_examples.size();
638}

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

1954{
1956}

References m_hasGroupGraph.

◆ removeMember()

void GroupDefImpl::removeMember ( MemberDef * md)
overridevirtual

Implements GroupDef.

Definition at line 511 of file groupdef.cpp.

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

◆ removeMemberFromList()

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

Definition at line 1881 of file groupdef.cpp.

1882{
1883 MemberList *ml = getMemberList(lt);
1884 if (ml) ml->remove(md);
1885}
MemberList * getMemberList(MemberListType lt) const override
void remove(const MemberDef *md)
Definition memberlist.h:83

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

223{
225}

References setGroupTitleLocal().

◆ setGroupTitleLocal()

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

Definition at line 207 of file groupdef.cpp.

208{
209 if ( !t.isEmpty())
210 {
211 m_title = t;
213 }
214 else
215 {
216 m_title = name();
217 m_title[0]=static_cast<char>(toupper(m_title[0]));
219 }
220}

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

Referenced by GroupDefImpl(), and setGroupTitle().

◆ sortMemberLists()

void GroupDefImpl::sortMemberLists ( )
overridevirtual

Implements GroupDef.

Definition at line 1815 of file groupdef.cpp.

1816{
1817 for (auto &ml : m_memberLists)
1818 {
1819 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(FALSE); }
1820 }
1821 if (Config_getBool(SORT_BRIEF_DOCS))
1822 {
1823 std::stable_sort(m_dirList.begin(), m_dirList.end(), compareDirDefs);
1824
1825 auto classComp = [](const ClassLinkedRefMap::Ptr &c1,const ClassLinkedRefMap::Ptr &c2)
1826 {
1827 return Config_getBool(SORT_BY_SCOPE_NAME) ?
1828 qstricmp_sort(c1->name(), c2->name())<0 :
1829 qstricmp_sort(c1->className(), c2->className())<0;
1830 };
1831 std::stable_sort(m_classes.begin(), m_classes.end(), classComp);
1832
1833 auto namespaceComp = [](const NamespaceLinkedRefMap::Ptr &n1,const NamespaceLinkedRefMap::Ptr &n2)
1834 {
1835 return qstricmp_sort(n1->name(),n2->name())<0;
1836 };
1837
1838 std::stable_sort(m_namespaces.begin(),m_namespaces.end(),namespaceComp);
1839 }
1840 else
1841 {
1844 }
1845}
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:1168
static void groupClassesWithSameScope(Vec &vec)
int qstricmp_sort(const char *str1, const char *str2)
Definition qcstring.h:86

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

◆ sortSubGroups()

void GroupDefImpl::sortSubGroups ( )
overridevirtual

Implements GroupDef.

Definition at line 1887 of file groupdef.cpp.

1888{
1889 std::stable_sort(m_groups.begin(),
1890 m_groups.end(),
1891 [](const auto &g1,const auto &g2)
1892 { return g1->groupTitle() < g2->groupTitle(); });
1893}

References m_groups.

◆ startMemberDeclarations()

void GroupDefImpl::startMemberDeclarations ( OutputList & ol)
private

Definition at line 1069 of file groupdef.cpp.

1070{
1072}
void startMemberSections()
Definition outputlist.h:462

References OutputList::startMemberSections().

Referenced by writeDocumentation().

◆ startMemberDocumentation()

void GroupDefImpl::startMemberDocumentation ( OutputList & ol)
private

Definition at line 1079 of file groupdef.cpp.

1080{
1081 //printf("** GroupDefImpl::startMemberDocumentation()\n");
1082 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1083 {
1084 ol.pushGeneratorState();
1087 }
1088}
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

◆ writeAuthorSection()

void GroupDefImpl::writeAuthorSection ( OutputList & ol)
private

Definition at line 1100 of file groupdef.cpp.

1101{
1102 // write Author section (Man only)
1103 ol.pushGeneratorState();
1105 ol.startGroupHeader();
1107 ol.endGroupHeader();
1109 ol.popGeneratorState();
1110}
void startGroupHeader(int extraLevels=0)
Definition outputlist.h:454
void disableAllBut(OutputType o)
void endGroupHeader(int extraLevels=0)
Definition outputlist.h:456
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 844 of file groupdef.cpp.

845{
847 {
848 auto parser { createDocParser() };
849 auto ast { validatingParseDoc(*parser.get(),
850 briefFile(),briefLine(),this,nullptr,
852 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT)) };
853 if (!ast->isEmpty())
854 {
855 ol.startParagraph();
858 ol.writeString(" - ");
860 ol.writeDoc(ast.get(),this,nullptr);
863 ol.writeString(" \n");
865
867 {
869 ol.startTextLink(QCString(),"details");
871 ol.endTextLink();
872 }
874 ol.endParagraph();
875 }
876 }
877 ol.writeSynopsis();
878}
virtual QCString briefFile() const =0
bool hasBriefDescription() const override
int briefLine() const override
bool hasDetailedDescription() const override
void writeString(const QCString &text)
Definition outputlist.h:412
void enable(OutputType o)
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md)
Definition outputlist.h:384
void startParagraph(const QCString &classDef=QCString())
Definition outputlist.h:408
void endParagraph()
Definition outputlist.h:410
void endTextLink()
Definition outputlist.h:445
void writeSynopsis()
Definition outputlist.h:593
void startTextLink(const QCString &file, const QCString &anchor)
Definition outputlist.h:443
virtual QCString trMore()=0
IDocParserPtr createDocParser()
factory function to create a parser
Definition docparser.cpp:54
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)

References DefinitionMixin< GroupDef >::briefDescription(), DefinitionMixin< GroupDef >::briefFile(), DefinitionMixin< GroupDef >::briefLine(), Config_getBool, createDocParser(), OutputList::disable(), OutputList::disableAllBut(), OutputList::enable(), OutputList::endParagraph(), OutputList::endTextLink(), FALSE, DefinitionMixin< GroupDef >::hasBriefDescription(), hasDetailedDescription(), Html, Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, OutputList::startParagraph(), OutputList::startTextLink(), theTranslator, TRUE, validatingParseDoc(), OutputList::writeDoc(), OutputList::writeString(), and OutputList::writeSynopsis().

Referenced by writeDocumentation().

◆ writeClasses()

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

Definition at line 1014 of file groupdef.cpp.

1015{
1016 // write list of classes
1017 m_classes.writeDeclaration(ol,nullptr,title,FALSE);
1018}

References FALSE, and m_classes.

Referenced by writeDocumentation().

◆ writeConcepts()

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

Definition at line 1020 of file groupdef.cpp.

1021{
1022 // write list of concepts
1023 m_concepts.writeDeclaration(ol,title,FALSE);
1024}

References FALSE, and m_concepts.

Referenced by writeDocumentation().

◆ writeDetailedDescription()

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

Definition at line 781 of file groupdef.cpp.

782{
783 if ((!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF))
784 || !documentation().isEmpty() || !inbodyDocumentation().isEmpty()
785 )
786 {
788 if (m_pages.size()!=numDocMembers()) // not only pages -> classical layout
789 {
792 ol.writeRuler();
796 ol.writeAnchor(QCString(),"details");
798 }
799 else
800 {
801 ol.disableAllBut(OutputType::Man); // always print title for man page
802 }
803 ol.startGroupHeader();
804 ol.parseText(title);
805 ol.endGroupHeader();
807
808 // repeat brief description
809 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF))
810 {
812 QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
813 }
814 // write separator between brief and details
815 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF) &&
816 !documentation().isEmpty())
817 {
821 ol.enableAll();
824 ol.writeString("\n\n");
826 }
827
828 // write detailed documentation
829 if (!documentation().isEmpty())
830 {
831 ol.generateDoc(docFile(),docLine(),this,nullptr,documentation()+"\n",TRUE,FALSE,
832 QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
833 }
834
835 // write inbody documentation
836 if (!inbodyDocumentation().isEmpty())
837 {
839 QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
840 }
841 }
842}
QCString inbodyFile() const override
QCString briefFile() const override
int docLine() const override
int inbodyLine() const override
void writeRuler()
Definition outputlist.h:522
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
void writeAnchor(const QCString &fileName, const QCString &name)
Definition outputlist.h:524
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(), FALSE, 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(), TRUE, OutputList::writeAnchor(), OutputList::writeRuler(), and OutputList::writeString().

Referenced by writeDocumentation().

◆ writeDirs()

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

Definition at line 982 of file groupdef.cpp.

983{
984 // write list of directories
985 if (!m_dirList.empty())
986 {
987 ol.startMemberHeader("dirs");
988 ol.parseText(title);
989 ol.endMemberHeader();
990 ol.startMemberList();
991 for(const auto dd : m_dirList)
992 {
993 if (!dd->hasDocumentation()) continue;
998 ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),QCString(),dd->shortName());
1000 if (!dd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
1001 {
1002 ol.startMemberDescription(dd->getOutputFileBase());
1003 ol.generateDoc(briefFile(),briefLine(),dd,nullptr,dd->briefDescription(),FALSE,FALSE,
1004 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
1006 }
1007 ol.endMemberDeclaration(QCString(),QCString());
1008 }
1009
1010 ol.endMemberList();
1011 }
1012}
void startMemberDeclaration()
Definition outputlist.h:570
void endMemberDescription()
Definition outputlist.h:568
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
Definition outputlist.h:440
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
Definition outputlist.h:566
void startMemberList()
Definition outputlist.h:482
void endMemberItem(OutputGenerator::MemberItemType type)
Definition outputlist.h:496
void endMemberList()
Definition outputlist.h:484
void insertMemberAlign(bool templ=FALSE)
Definition outputlist.h:518
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
Definition outputlist.h:572
void endMemberHeader()
Definition outputlist.h:472
void startMemberItem(const QCString &anchor, OutputGenerator::MemberItemType type, const QCString &id=QCString())
Definition outputlist.h:494
void startMemberHeader(const QCString &anchor, int typ=2)
Definition outputlist.h:470
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(), m_dirList, OutputGenerator::Normal, OutputList::parseText(), 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 1164 of file groupdef.cpp.

1165{
1166 //bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
1167 ol.pushGeneratorState();
1168
1169 // Find out how deep this group is nested. In case of multiple parents, use the first one.
1170 int hierarchyLevel = 0;
1171 const GroupDef *gd = this;
1172 while (!gd->partOfGroups().empty())
1173 {
1174 gd = gd->partOfGroups().front();
1175 ++hierarchyLevel;
1176 }
1177
1179 FALSE /* additionalIndices*/, QCString() /*altSidebarName*/, hierarchyLevel);
1180
1181 ol.startHeaderSection();
1184 ol.pushGeneratorState();
1186 ol.parseText(m_title);
1187 ol.popGeneratorState();
1188 addGroupListToTitle(ol,this);
1189 ol.pushGeneratorState();
1192 ol.popGeneratorState();
1193 ol.pushGeneratorState();
1196 if (!m_title.isEmpty())
1197 {
1198 ol.writeString(" - ");
1199 ol.parseText(m_title);
1200 }
1201 ol.popGeneratorState();
1202 ol.endHeaderSection();
1203 ol.startContents();
1204
1205 //---------------------------------------- start flexible part -------------------------------
1206
1207 SrcLangExt lang=getLanguage();
1208 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Group))
1209 {
1210 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
1211 switch (lde->kind())
1212 {
1213 case LayoutDocEntry::BriefDesc:
1215 break;
1216 case LayoutDocEntry::MemberDeclStart:
1218 break;
1219 case LayoutDocEntry::GroupClasses:
1220 if (ls) writeClasses(ol,ls->title(lang));
1221 break;
1222 case LayoutDocEntry::GroupConcepts:
1223 if (ls) writeConcepts(ol,ls->title(lang));
1224 break;
1225 case LayoutDocEntry::GroupModules:
1226 if (ls) writeModules(ol,ls->title(lang));
1227 break;
1228 case LayoutDocEntry::GroupInlineClasses:
1230 break;
1231 case LayoutDocEntry::GroupNamespaces:
1232 if (ls) writeNamespaces(ol,ls->title(lang));
1233 break;
1234 case LayoutDocEntry::MemberGroups:
1236 break;
1237 case LayoutDocEntry::MemberDecl:
1238 {
1239 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
1240 if (lmd)
1241 {
1242 writeMemberDeclarations(ol,lmd->type,lmd->title(lang));
1243 }
1244 }
1245 break;
1246 case LayoutDocEntry::MemberDeclEnd:
1248 break;
1249 case LayoutDocEntry::DetailedDesc:
1250 if (ls) writeDetailedDescription(ol,ls->title(lang));
1251 break;
1252 case LayoutDocEntry::MemberDefStart:
1254 break;
1255 case LayoutDocEntry::MemberDef:
1256 {
1257 const LayoutDocEntryMemberDef *lmd = dynamic_cast<const LayoutDocEntryMemberDef*>(lde.get());
1258 if (lmd)
1259 {
1260 writeMemberDocumentation(ol,lmd->type,lmd->title(lang));
1261 }
1262 }
1263 break;
1264 case LayoutDocEntry::MemberDefEnd:
1266 break;
1267 case LayoutDocEntry::GroupNestedGroups:
1268 if (ls) writeNestedGroups(ol,ls->title(lang));
1269 break;
1270 case LayoutDocEntry::GroupPageDocs:
1272 break;
1273 case LayoutDocEntry::GroupDirs:
1274 if (ls) writeDirs(ol,ls->title(lang));
1275 break;
1276 case LayoutDocEntry::GroupFiles:
1277 if (ls) writeFiles(ol,ls->title(lang));
1278 break;
1279 case LayoutDocEntry::GroupGraph:
1280 writeGroupGraph(ol);
1281 break;
1282 case LayoutDocEntry::AuthorSection:
1284 break;
1285 case LayoutDocEntry::ClassIncludes:
1286 case LayoutDocEntry::ClassInheritanceGraph:
1287 case LayoutDocEntry::ClassNestedClasses:
1288 case LayoutDocEntry::ClassCollaborationGraph:
1289 case LayoutDocEntry::ClassAllMembersLink:
1290 case LayoutDocEntry::ClassUsedFiles:
1291 case LayoutDocEntry::ClassInlineClasses:
1292 case LayoutDocEntry::NamespaceNestedNamespaces:
1293 case LayoutDocEntry::NamespaceNestedConstantGroups:
1294 case LayoutDocEntry::NamespaceClasses:
1295 case LayoutDocEntry::NamespaceConcepts:
1296 case LayoutDocEntry::NamespaceInterfaces:
1297 case LayoutDocEntry::NamespaceStructs:
1298 case LayoutDocEntry::NamespaceExceptions:
1299 case LayoutDocEntry::NamespaceInlineClasses:
1300 case LayoutDocEntry::ConceptDefinition:
1301 case LayoutDocEntry::FileClasses:
1302 case LayoutDocEntry::FileConcepts:
1303 case LayoutDocEntry::FileInterfaces:
1304 case LayoutDocEntry::FileStructs:
1305 case LayoutDocEntry::FileExceptions:
1306 case LayoutDocEntry::FileNamespaces:
1307 case LayoutDocEntry::FileConstantGroups:
1308 case LayoutDocEntry::FileIncludes:
1309 case LayoutDocEntry::FileIncludeGraph:
1310 case LayoutDocEntry::FileIncludedByGraph:
1311 case LayoutDocEntry::FileSourceLink:
1312 case LayoutDocEntry::FileInlineClasses:
1313 case LayoutDocEntry::ModuleExports:
1314 case LayoutDocEntry::ModuleClasses:
1315 case LayoutDocEntry::ModuleConcepts:
1316 case LayoutDocEntry::ModuleUsedFiles:
1317 case LayoutDocEntry::DirSubDirs:
1318 case LayoutDocEntry::DirFiles:
1319 case LayoutDocEntry::DirGraph:
1320 err("Internal inconsistency: member '%s' should not be part of "
1321 "LayoutDocManager::Group entry list\n",qPrint(lde->entryToString()));
1322 break;
1323 }
1324 }
1325
1326 //---------------------------------------- end flexible part -------------------------------
1327
1328 for (auto &subgd : getSubGroups())
1329 {
1330 if (!subgd->isReference())
1331 {
1332 if (subgd->partOfGroups().front() == this)
1333 {
1334 ol.writePageLink(subgd->getOutputFileBase(), FALSE);
1335 }
1336 else
1337 {
1338 // Could write a note explaining that the subgroup belongs to another
1339 // group and add a link here.
1340 }
1341 }
1342 }
1343 endFile(ol);
1344
1345 ol.popGeneratorState();
1346
1347 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1348 {
1349 m_allMemberList.sort();
1350 writeMemberPages(ol, hierarchyLevel + 1);
1351 }
1352}
virtual const GroupList & partOfGroups() const =0
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:936
void writeDirs(OutputList &ol, const QCString &title)
Definition groupdef.cpp:982
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:880
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 writeFiles(OutputList &ol, const QCString &title)
Definition groupdef.cpp:905
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:942
void writeDetailedDescription(OutputList &ol, const QCString &title)
Definition groupdef.cpp:781
void writeBriefDescription(OutputList &ol)
Definition groupdef.cpp:844
void writeClasses(OutputList &ol, const QCString &title)
static LayoutDocManager & instance()
Returns a reference to this singleton.
Definition layout.cpp:1423
void endTitleHead(const QCString &fileName, const QCString &name)
Definition outputlist.h:406
void startTitleHead(const QCString &fileName)
Definition outputlist.h:404
void endHeaderSection()
Definition outputlist.h:468
void startHeaderSection()
Definition outputlist.h:466
void startContents()
Definition outputlist.h:617
void writePageLink(const QCString &name, bool first)
Definition outputlist.h:390
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const QCString &navPath)
Definition index.cpp:421
void startFile(OutputList &ol, const QCString &name, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel)
Definition index.cpp:402
QCString title(SrcLangExt lang) const
Definition layout.cpp:1533
MemberListType type
Definition layout.h:115
MemberListType type
Definition layout.h:130
QCString title(SrcLangExt lang) const
Definition layout.cpp:1545
QCString title(SrcLangExt lang) const
Definition layout.cpp:1526
SrcLangExt
Language as given by extension.
Definition types.h:42
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:5233

References addGroupListToTitle(), Config_getBool, OutputList::disable(), OutputList::disableAllBut(), endFile(), OutputList::endHeaderSection(), endMemberDeclarations(), endMemberDocumentation(), OutputList::endTitleHead(), err, FALSE, DefinitionMixin< GroupDef >::getLanguage(), getOutputFileBase(), getSubGroups(), LayoutDocManager::instance(), m_allMemberList, m_title, Man, DefinitionMixin< GroupDef >::name(), OutputList::parseText(), Definition::partOfGroups(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), qPrint(), 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(), OutputList::writeString(), and writeSummaryLinks().

◆ writeFiles()

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

Definition at line 905 of file groupdef.cpp.

906{
907 // write list of files
908 if (!m_fileList.empty())
909 {
910 ol.startMemberHeader("files");
911 ol.parseText(title);
912 ol.endMemberHeader();
913 ol.startMemberList();
914 for (const auto &fd : m_fileList)
915 {
916 if (!fd->hasDocumentation()) continue;
921 ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),QCString(),fd->displayName());
923 if (!fd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
924 {
925 ol.startMemberDescription(fd->getOutputFileBase());
926 ol.generateDoc(briefFile(),briefLine(),fd,nullptr,fd->briefDescription(),FALSE,FALSE,
927 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
929 }
930 ol.endMemberDeclaration(QCString(),QCString());
931 }
932 ol.endMemberList();
933 }
934}
void docify(const QCString &s)
Definition outputlist.h:438
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(), m_fileList, OutputGenerator::Normal, OutputList::parseText(), 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 880 of file groupdef.cpp.

881{
882 if (Config_getBool(HAVE_DOT) && m_hasGroupGraph /*&& Config_getBool(GROUP_GRAPHS)*/)
883 {
884 DotGroupCollaboration graph(this);
885 if (graph.isTooBig())
886 {
887 warn_uncond("Group dependency graph for '%s' not generated, too many nodes (%d), threshold is %d. Consider increasing DOT_GRAPH_MAX_NODES.\n",
888 qPrint(name()), graph.numNodes(), Config_getInt(DOT_GRAPH_MAX_NODES));
889 }
890 else if (!graph.isTrivial())
891 {
892 msg("Generating dependency graph for group %s\n",qPrint(qualifiedName()));
895 //ol.startParagraph();
898 ol.endGroupCollaboration(graph);
899 //ol.endParagraph();
901 }
902 }
903}
QCString qualifiedName() const override
void endGroupCollaboration(DotGroupCollaboration &g)
Definition outputlist.h:665
void startGroupCollaboration()
Definition outputlist.h:663
virtual QCString trCollaborationDiagram(const QCString &clName)=0
#define Config_getInt(name)
Definition config.h:34
void msg(const char *fmt,...)
Definition message.cpp:98
#define warn_uncond(fmt,...)
Definition message.h:79

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(), qPrint(), DefinitionMixin< GroupDef >::qualifiedName(), OutputList::startGroupCollaboration(), theTranslator, and warn_uncond.

Referenced by writeDocumentation().

◆ writeInlineClasses()

void GroupDefImpl::writeInlineClasses ( OutputList & ol)
private

Definition at line 1033 of file groupdef.cpp.

1034{
1035 m_classes.writeDocumentation(ol);
1036}

References m_classes.

Referenced by writeDocumentation().

◆ writeMemberDeclarations()

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

Definition at line 1859 of file groupdef.cpp.

1860{
1861 bool optimizeVhdl = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
1862
1863 MemberList * ml = getMemberList(lt);
1864 if (optimizeVhdl && ml)
1865 {
1866 VhdlDocGen::writeVhdlDeclarations(ml,ol,this,nullptr,nullptr,nullptr,nullptr);
1867 return;
1868 }
1869 if (ml)
1870 {
1871 ml->writeDeclarations(ol,nullptr,nullptr,nullptr,this,nullptr,title,QCString());
1872 }
1873}
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 1875 of file groupdef.cpp.

1876{
1877 MemberList * ml = getMemberList(lt);
1878 if (ml) ml->writeDocumentation(ol,name(),this,title);
1879}
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, bool showEnumValues=FALSE, bool showInline=FALSE) const

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

Referenced by writeDocumentation().

◆ writeMemberGroups()

void GroupDefImpl::writeMemberGroups ( OutputList & ol)
private

Definition at line 1060 of file groupdef.cpp.

1061{
1062 /* write user defined member groups */
1063 for (const auto &mg : m_memberGroups)
1064 {
1065 mg->writeDeclarations(ol,nullptr,nullptr,nullptr,this,nullptr);
1066 }
1067}

References m_memberGroups.

Referenced by writeDocumentation().

◆ writeMemberPages()

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

Implements GroupDef.

Definition at line 1354 of file groupdef.cpp.

1355{
1356 ol.pushGeneratorState();
1358
1359 for (const auto &ml : m_memberLists)
1360 {
1361 if (ml->listType().isDocumentation())
1362 {
1363 ml->writeDocumentationPage(ol,name(),this,hierarchyLevel);
1364 }
1365 }
1366
1367 ol.popGeneratorState();
1368}

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

1027{
1028 // write list of modules
1029 m_modules.writeDeclaration(ol,title,FALSE);
1030}

References FALSE, and m_modules.

Referenced by writeDocumentation().

◆ writeNamespaces()

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

Definition at line 936 of file groupdef.cpp.

937{
938 // write list of namespaces
939 m_namespaces.writeDeclaration(ol,title);
940}

References m_namespaces.

Referenced by writeDocumentation().

◆ writeNestedGroups()

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

Definition at line 942 of file groupdef.cpp.

943{
944 // write list of groups
945 int count=0;
946 for (const auto &gd : m_groups)
947 {
948 if (gd->isVisible()) count++;
949 }
950 if (count>0)
951 {
952 ol.startMemberHeader("groups");
953 ol.parseText(title);
954 ol.endMemberHeader();
955 ol.startMemberList();
956 for (const auto &gd : m_groups)
957 {
958 if (gd->isVisible())
959 {
960 if (!gd->hasDocumentation()) continue;
963 //ol.docify(theTranslator->trGroup(FALSE,TRUE));
964 //ol.docify(" ");
966 ol.writeObjectLink(gd->getReference(),gd->getOutputFileBase(),QCString(),gd->groupTitle());
968 if (!gd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
969 {
970 ol.startMemberDescription(gd->getOutputFileBase());
971 ol.generateDoc(briefFile(),briefLine(),gd,nullptr,gd->briefDescription(),FALSE,FALSE,
972 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
974 }
975 ol.endMemberDeclaration(QCString(),QCString());
976 }
977 }
978 ol.endMemberList();
979 }
980}

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

Referenced by writeDocumentation().

◆ writePageDocumentation()

void GroupDefImpl::writePageDocumentation ( OutputList & ol)
private

Definition at line 1038 of file groupdef.cpp.

1039{
1040 for (const auto *pd : m_pages)
1041 {
1042 if (!pd->isReference())
1043 {
1044 const SectionInfo *si=nullptr;
1045 if (pd->hasTitle() && !pd->name().isEmpty() &&
1046 (si=SectionManager::instance().find(pd->name()))!=nullptr)
1047 {
1049 ol.docify(si->title());
1051 }
1052 ol.startTextBlock();
1053 ol.generateDoc(pd->docFile(),pd->docLine(),pd,nullptr,(pd->documentation()+pd->inbodyDocumentation()),TRUE,FALSE,
1054 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
1055 ol.endTextBlock();
1056 }
1057 }
1058}
const T * find(const std::string &key) const
Find an object given the key.
Definition linkedmap.h:47
void endTextBlock(bool paraBreak=FALSE)
Definition outputlist.h:671
void endSection(const QCString &lab, SectionType t)
Definition outputlist.h:589
void startTextBlock(bool dense=FALSE)
Definition outputlist.h:669
void startSection(const QCString &lab, const QCString &title, SectionType t)
Definition outputlist.h:587
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:175
static constexpr int Subsection
Definition section.h:34

References Config_getBool, OutputList::docify(), OutputList::endSection(), OutputList::endTextBlock(), FALSE, OutputList::generateDoc(), SectionManager::instance(), SectionInfo::label(), m_pages, OutputList::startSection(), OutputList::startTextBlock(), SectionType::Subsection, SectionInfo::title(), and TRUE.

Referenced by writeDocumentation().

◆ writeQuickMemberLinks()

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

Reimplemented from DefinitionMixin< GroupDef >.

Definition at line 1370 of file groupdef.cpp.

1371{
1372 bool createSubDirs=Config_getBool(CREATE_SUBDIRS);
1373
1374 ol.writeString(" <div class=\"navtab\">\n");
1375 ol.writeString(" <table>\n");
1376
1377 for (const auto *md : m_allMemberList)
1378 {
1379 if (md->getGroupDef()==this && md->isLinkable() && !md->isEnumValue())
1380 {
1381 if (md->isLinkableInProject())
1382 {
1383 QCString fn = md->getOutputFileBase();
1385 if (md==currentMd) // selected item => highlight
1386 {
1387 ol.writeString(" <tr><td class=\"navtabHL\">");
1388 }
1389 else
1390 {
1391 ol.writeString(" <tr><td class=\"navtab\">");
1392 }
1393 ol.writeString("<a class=\"navtab\" ");
1394 ol.writeString("href=\"");
1395 if (createSubDirs) ol.writeString("../../");
1396 ol.writeString(fn+"#"+md->anchor());
1397 ol.writeString("\">");
1398 ol.writeString(convertToHtml(md->localName()));
1399 ol.writeString("</a>");
1400 ol.writeString("</td></tr>\n");
1401 }
1402 }
1403 }
1404 ol.writeString(" </table>\n");
1405 ol.writeString(" </div>\n");
1406}
QCString convertToHtml(const QCString &s, bool keepEntities)
Definition util.cpp:4317
void createSubDirs(const Dir &d)
Definition util.cpp:3994
void addHtmlExtensionIfMissing(QCString &fName)
Definition util.cpp:5243

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

1113{
1114 ol.pushGeneratorState();
1116 bool first=TRUE;
1117 SrcLangExt lang = getLanguage();
1118 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Group))
1119 {
1120 if ((lde->kind()==LayoutDocEntry::GroupClasses && m_classes.declVisible()) ||
1121 (lde->kind()==LayoutDocEntry::GroupConcepts && m_concepts.declVisible()) ||
1122 (lde->kind()==LayoutDocEntry::GroupModules && m_modules.declVisible()) ||
1123 (lde->kind()==LayoutDocEntry::GroupNamespaces && m_namespaces.declVisible(false)) ||
1124 (lde->kind()==LayoutDocEntry::GroupFiles && !m_fileList.empty()) ||
1125 (lde->kind()==LayoutDocEntry::GroupNestedGroups && !m_groups.empty()) ||
1126 (lde->kind()==LayoutDocEntry::GroupDirs && !m_dirList.empty())
1127 )
1128 {
1129 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
1130 if (ls)
1131 {
1132 QCString label = lde->kind()==LayoutDocEntry::GroupClasses ? "nested-classes" :
1133 lde->kind()==LayoutDocEntry::GroupConcepts ? "concepts" :
1134 lde->kind()==LayoutDocEntry::GroupModules ? "modules" :
1135 lde->kind()==LayoutDocEntry::GroupNamespaces ? "namespaces" :
1136 lde->kind()==LayoutDocEntry::GroupFiles ? "files" :
1137 lde->kind()==LayoutDocEntry::GroupNestedGroups ? "groups" :
1138 "dirs";
1139 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
1140 first=FALSE;
1141 }
1142 }
1143 else if (lde->kind()==LayoutDocEntry::MemberDecl)
1144 {
1145 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
1146 if (lmd)
1147 {
1148 MemberList * ml = getMemberList(lmd->type);
1149 if (ml && ml->declVisible())
1150 {
1151 ol.writeSummaryLink(QCString(),ml->listType().toLabel(),lmd->title(lang),first);
1152 first=FALSE;
1153 }
1154 }
1155 }
1156 }
1157 if (!first)
1158 {
1159 ol.writeString(" </div>\n");
1160 }
1161 ol.popGeneratorState();
1162}
MemberListType listType() const
Definition memberlist.h:113
bool declVisible() const
constexpr const char * toLabel() const
Definition types.h:240
void writeSummaryLink(const QCString &file, const QCString &anchor, const QCString &title, bool first)
Definition outputlist.h:615

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

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

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_title, 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 165 of file groupdef.cpp.

Referenced by insertMember(), and removeMember().

◆ m_classes

◆ m_concepts

ConceptLinkedRefMap GroupDefImpl::m_concepts
private

Definition at line 157 of file groupdef.cpp.

Referenced by addConcept(), getConcepts(), writeConcepts(), writeSummaryLinks(), and writeTagFile().

◆ m_dirList

DirList GroupDefImpl::m_dirList
private

◆ m_examples

PageLinkedRefMap GroupDefImpl::m_examples
private

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

Referenced by getOutputFileBase().

◆ m_groups

GroupList GroupDefImpl::m_groups
private

◆ m_groupScope

Definition* GroupDefImpl::m_groupScope
private

Definition at line 166 of file groupdef.cpp.

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

◆ m_hasGroupGraph

bool GroupDefImpl::m_hasGroupGraph = false
private

Definition at line 170 of file groupdef.cpp.

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

◆ m_memberGroups

◆ m_memberLists

◆ m_modules

ModuleLinkedRefMap GroupDefImpl::m_modules
private

Definition at line 158 of file groupdef.cpp.

Referenced by addModule(), getModules(), writeModules(), writeSummaryLinks(), and writeTagFile().

◆ m_namespaces

NamespaceLinkedRefMap GroupDefImpl::m_namespaces
private

◆ m_pages

◆ m_subGrouping

bool GroupDefImpl::m_subGrouping
private

Definition at line 169 of file groupdef.cpp.

Referenced by GroupDefImpl(), and subGrouping().

◆ m_title

QCString GroupDefImpl::m_title
private

◆ m_titleSet

bool GroupDefImpl::m_titleSet
private

Definition at line 153 of file groupdef.cpp.

Referenced by hasGroupTitle(), and setGroupTitleLocal().


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