86 bool showInline)
const
99 memberList->writePlainDeclarations(ol,inGroup,cd,nd,fd,gd,mod,indentLevel,inheritedFrom,inheritId);
203 return memberList->countInheritableMembers(inheritedFrom);
215 if (!smd->documentation().empty() ||
216 !smd->briefDescription().empty() ||
217 !smd->inbodyDocumentation().empty()
294 memberList->writeTagFile(tagFile,qualifiedName);
301 m_sli.insert(
m_sli.end(), sli.cbegin(), sli.cend());
306 m_rqli.insert(
m_rqli.end(), rqli.cbegin(), rqli.cend());
317 if (ml==
nullptr)
return;
319 struct MoveMemberInfo
322 : memberDef(md), memberGroup(mg), sli(rv) {}
327 std::vector<MoveMemberInfo> movedMembers;
329 for (
const auto &md : *ml)
331 if (md->isEnumerate())
333 for (
const auto &fmd : md->enumFieldList())
335 int groupId=fmd->getMemberGroupId();
341 const auto &info = it->second;
342 auto mg_it = std::find_if(pMemberGroups->begin(),
343 pMemberGroups->end(),
344 [&groupId](
const auto &g)
345 { return g->groupId()==groupId; }
348 if (mg_it==pMemberGroups->end())
350 auto mg = std::make_unique<MemberGroup>(
359 pMemberGroups->push_back(std::move(mg));
363 mg_ptr = (*mg_it).get();
375 int groupId=md->getMemberGroupId();
381 const auto &info = it->second;
382 auto mg_it = std::find_if(pMemberGroups->begin(),
383 pMemberGroups->end(),
384 [&groupId](
const auto &g)
385 { return g->groupId()==groupId; }
388 if (mg_it==pMemberGroups->end())
390 auto mg = std::make_unique<MemberGroup>(
399 pMemberGroups->push_back(std::move(mg));
403 mg_ptr = (*mg_it).get();
405 movedMembers.emplace_back(md,mg_ptr,info->m_sli);
411 for (
const auto &mmi : movedMembers)
413 ml->
remove(mmi.memberDef);
414 mmi.memberGroup->insertMember(mmi.memberDef->resolveAlias());
415 mmi.memberGroup->setRefItems(mmi.sli);
A abstract class representing of a compound symbol.
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
The common base class of all entity definitions found in the sources.
virtual DString briefDescription(bool abbreviate=false) const =0
virtual DString inbodyFile() const =0
virtual DString briefFile() const =0
virtual int docLine() const =0
virtual DString documentation() const =0
virtual DString inbodyDocumentation() const =0
virtual int inbodyLine() const =0
virtual int briefLine() const =0
virtual bool isAlias() const =0
virtual DString docFile() const =0
virtual void setInbodyDocumentation(const DString &d, const DString &docFile, int docLine)=0
virtual void setDocumentation(const DString &d, const DString &docFile, int docLine, bool stripWhiteSpace=true)=0
virtual void setBriefDescription(const DString &b, const DString &briefFile, int briefLine)=0
static MemberGroupInfoMap memberGroupInfoMap
A model of a file symbol.
A model of a group of symbols.
virtual bool insertMember(MemberDef *def, bool docOnly=false)=0
A model of a class/file/namespace member symbol.
virtual bool getGroupHasDocs() const =0
virtual const ClassDef * getClassDef() const =0
virtual GroupDef * getGroupDef()=0
virtual const FileDef * getFileDef() const =0
virtual int getGroupStartLine() const =0
virtual const NamespaceDef * getNamespaceDef() const =0
virtual Grouping::GroupPri_t getGroupPri() const =0
virtual void setMemberGroup(MemberGroup *grp)=0
virtual const MemberList * getSectionList(const Definition *container) const =0
virtual DString getGroupFileName() const =0
virtual void setGroupDef(GroupDef *gd, Grouping::GroupPri_t pri, const DString &fileName, int startLine, bool hasDocs, MemberDef *member=nullptr)=0
A class representing a group of members.
void addGroupedInheritedMembers(OutputList &ol, const ClassDef *cd, MemberListType lt, const ClassDef *inheritedFrom, const DString &inheritId) const
void addToDeclarationSection()
int numDecMembers() const
const Definition * container() const
int numDecEnumValues() const
void findSectionsInDocumentation(const Definition *d)
void writeDocumentationPage(OutputList &ol, const DString &scopeName, const DefinitionMutable *container) const
int countInheritableMembers(const ClassDef *inheritedFrom) const
const Definition * memberContainer() const
int numDocMembers() const
void addRequirementReferences(const Definition *def)
void addListReferences(const Definition *def)
void setRefItems(const RefItemVector &sli)
void distributeMemberGroupDocumentation()
MemberGroup(const Definition *container, int id, const DString &header, const DString &docs, const DString &docFile, int docLine, MemberListContainer con)
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, bool showInline=false) const
void writePlainDeclarations(OutputList &ol, bool inGroup, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, int indentLevel, const ClassDef *inheritedFrom, const DString &inheritId) const
void writeTagFile(TextStream &, bool qualifiedName=false)
int countGroupedInheritedMembers(MemberListType lt)
int numDocEnumValues() const
void writeDocumentation(OutputList &ol, const DString &scopeName, const Definition *container, bool showEnumValues, bool showInline) const
void insertMember(MemberDef *md)
RequirementRefs m_requirementRefs
void setAnonymousEnumType()
const Definition * m_container
RefItemVector m_xrefListItems
std::unique_ptr< MemberList > memberList
MemberList * inDeclSection
void setRequirementReferences(const RequirementRefs &rqli)
A list of MemberDef objects as shown in documentation sections.
MemberListContainer container() const
MemberListType listType() const
void countDecMembers() const
void writePlainDeclarations(OutputList &ol, bool inGroup, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, int indentLevel, const ClassDef *inheritedFrom, const DString &inheritId) const
void addMemberGroup(MemberGroup *mg)
Wrapper class for the MemberListType type.
void remove(const MemberDef *md)
void push_back(const T &value)
An abstract interface of a namespace symbol.
Class representing a list of output generators that are written to in parallel.
Text streaming class that buffers data.
#define Config_getBool(name)
DirIterator end(const DirIterator &) noexcept
void docFindSections(const DString &input, const Definition *d, const DString &fileName)
static void addMembersToMemberGroup()
MemberDefMutable * toMemberDefMutable(Definition *d)
std::vector< RefItem * > RefItemVector
std::vector< RequirementRef > RequirementRefs
List of requirement references.
void setRequirementReferences(const RequirementRefs &rqli)
void setRefItems(const RefItemVector &sli)
A bunch of utility functions.