浏览该文件的文档.
214 mg->distributeMemberGroupDocumentation();
225 mg->findSectionsInDocumentation(
this);
232 ml->findSectionsInDocumentation(
this);
244 [](
const auto &fd1,
const auto &fd2)
245 { return qstricmp(fd1->name(),fd2->name())<0; }),
328 for (
auto &srcMi : *mni)
330 const MemberDef *srcMd = srcMi->memberDef();
331 if (srcMd==md)
return FALSE;
466 err(
"GroupDefImpl::insertMembers(): "
467 "member '%s' (typeid=%d) with scope '%s' inserted in group scope '%s'!\n",
544 err(
"GroupDefImpl::removeMember(): unexpected member remove in file!\n");
557 if (gd->findGroup(def))
583 ml->countDecMembers();
584 ml->countDocMembers();
588 mg->countDecMembers();
589 mg->countDocMembers();
613 tagFile <<
" <compound kind=\"group\">\n";
625 if (cd->isLinkableInProject())
627 tagFile <<
" <class kind=\"" << cd->compoundTypeString()
637 if (cd->isLinkableInProject())
649 if (nd->isLinkableInProject())
661 if (fd->isLinkableInProject())
663 tagFile <<
" <file>" <<
convertToXML(fd->name()) <<
"</file>\n";
672 QCString pageName = pd->getOutputFileBase();
673 if (pd->isLinkableInProject())
675 tagFile <<
" <page>" <<
convertToXML(pageName) <<
"</page>\n";
684 if (dd->isLinkableInProject())
686 tagFile <<
" <dir>" <<
convertToXML(dd->displayName()) <<
"</dir>\n";
697 tagFile <<
" <subgroup>" <<
convertToXML(gd->name()) <<
"</subgroup>\n";
716 mg->writeTagFile(tagFile);
725 tagFile <<
" </compound>\n";
801 if (rootNode && !rootNode->isEmpty())
859 if (!fd->hasDocumentation())
continue;
866 if (!fd->briefDescription().isEmpty() &&
Config_getBool(BRIEF_MEMBER_DESC))
891 if (gd->isVisible()) count++;
903 if (!gd->hasDocumentation())
continue;
911 if (!gd->briefDescription().isEmpty() &&
Config_getBool(BRIEF_MEMBER_DESC))
936 if (!dd->hasDocumentation())
continue;
943 if (!dd->briefDescription().isEmpty() &&
Config_getBool(BRIEF_MEMBER_DESC))
978 if (!pd->isReference())
981 if (pd->hasTitle() && !pd->name().isEmpty() &&
989 ol.
generateDoc(pd->docFile(),pd->docLine(),pd,0,(pd->documentation()+pd->inbodyDocumentation()),
TRUE,
FALSE,
1001 mg->writeDeclarations(ol,0,0,0,
this);
1127 switch (lde->kind())
1246 err(
"Internal inconsistency: member %d should not be part of "
1247 "LayoutDocManager::Group entry list\n",lde->kind());
1275 ml->writeDocumentationPage(ol,
name(),
this);
1291 if (md->getGroupDef()==
this && md->isLinkable() && !md->isEnumValue())
1293 if (md->isLinkableInProject())
1407 warn(root->
fileName,root->
startLine,
"Refusing to add group %s to group %s, since the latter is already a "
1435 if (fgd && gd!=fgd && g.
pri==pri)
1438 "Member %s found in multiple %s groups! "
1439 "The member will be put in group %s, and not in group %s",
1456 bool insertit =
FALSE;
1463 bool moveit =
FALSE;
1483 "Member documentation for %s found several times in %s groups!\n"
1484 "%s:%d: The member will remain in group %s, and won't be put into group %s",
1573 mg->addListReferences(
this);
1579 ml->addListReferences(
this);
1589 ml->setNeedsSorting(
1603 for (
size_t i=0; i<vec.size(); i++)
1605 std::string qni = vec[i]->name().str();
1606 size_t posi = qni.rfind(
"::");
1607 if (posi!=std::string::npos)
1609 std::string scope = qni.substr(0,posi);
1610 auto it = std::find_if( vec.begin(), vec.end(),
1611 [&](
typename Vec::Ptr &cd)
1612 { return cd->name().str()==scope; });
1615 size_t idx = std::distance(vec.begin(),it);
1621 while (k<vec.size() && vec[k]->name().str().substr(0,posi)==scope)
1627 for (
size_t j=i; j<idx; j++)
1629 std::swap(vec[j],vec[j+1]);
1633 else if (idx<i && vec[i-1]->name().str().substr(0,posi)!=scope)
1638 while (idx<i && vec[idx]->name().str().substr(0,posi)==scope)
1643 for (
size_t j=idx; j<i; j++)
1645 std::swap(vec[j],vec[j+1]);
1659 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
FALSE); }
1691 if (ml->listType()==lt)
1704 if (optimizeVhdl && ml)
1731 [](
const auto &g1,
const auto &g2)
1732 { return g1->groupTitle() < g2->groupTitle(); });
1784 return static_cast<const GroupDef*
>(d);
virtual const NamespaceLinkedRefMap & getNamespaces() const
virtual QCString briefFile() const
bool add(const char *k, T *obj)
Adds an object reference to the ordered vector if it was not added already.
virtual bool hasUserDocumentation() const
void disableAllBut(OutputGenerator::OutputType o)
virtual bool isReference() const
static const char * getGroupPriName(GroupPri_t priority)
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
virtual const MemberGroupList & getMemberGroups() const
void endGroupHeader(int extraLevels=0)
@ MemberListType_decEnumValMembers
virtual DefType definitionType() const
virtual bool insertMember(const MemberDef *def, bool docOnly=FALSE)=0
Represents of a member declaration list with configurable title and subtitle.
@ NamespaceNestedNamespaces
GroupDef * toGroupDef(Definition *d)
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const QCString &title)
void writeDeclaration(OutputList &ol, const QCString &header, bool localNames) const
void endMemberDocumentation(OutputList &ol)
MemberDefMutable * toMemberDefMutable(Definition *d)
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
@ MemberListType_decEventMembers
virtual QCString getOutputFileBase() const
@ MemberListType_docProSlotMembers
int startLine
start line of entry in the source
virtual void sortMemberLists()
The common base class of all entity definitions found in the sources.
@ MemberListType_docEnumMembers
virtual CodeSymbolType codeSymbolType() const
virtual const RefItemVector & xrefListItems() const
virtual bool insertMember(const MemberDef *def, bool docOnly=FALSE)
An abstract interface of a namespace symbol.
void writeConcepts(OutputList &ol, const QCString &title)
@ MemberListType_decProSlotMembers
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const QCString &header, bool localNames) const
void docify(const QCString &s)
virtual const GroupList & getSubGroups() const
virtual bool subGrouping() const
GroupPri_t pri
priority of this definition
virtual void writeDocAnchorsToTagFile(TextStream &fs) const
virtual Grouping::GroupPri_t getGroupPri() const =0
uint length() const
Returns the length of the string, not counting the 0-terminator.
void endTitleHead(const QCString &fileName, const QCString &name)
This class represents an function or template argument list.
virtual QCString getGroupFileName() const =0
void endMemberDescription()
const std::unique_ptr< MemberList > & get(MemberListType lt, MemberListContainer con)
A model of a directory symbol.
virtual Definition * getGroupScope() const
virtual bool findGroup(const GroupDef *def) const
virtual QCString docFile() const
void startMemberDeclarations(OutputList &ol)
bool isEmpty() const
Returns TRUE iff the string is empty
@ MemberListType_allMembersList
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title)
void removeMemberFromList(MemberListType lt, MemberDef *md)
virtual const GroupList & partOfGroups() const
void startMemberSections()
void writeString(const QCString &text)
virtual bool hasDetailedDescription() const
QCString title(SrcLangExt lang) const
void insertMemberAlign(bool templ=FALSE)
void endGroupCollaboration(DotGroupCollaboration &g)
static void writeVhdlDeclarations(const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *)
virtual ClassDef * getClassDefOfAnonymousType() const =0
bool del(const QCString &key)
Removes an object from the container and deletes it.
virtual QCString displayName(bool=TRUE) const
virtual void addListReferences()
virtual void addGroup(const GroupDef *def)
virtual bool addNamespace(const NamespaceDef *def)=0
void push_back(const MemberDef *md)
SrcLangExt
Language as given by extension
T * add(const char *k, Args &&... args)
Adds a new object to the ordered vector if it was not added already.
void writeDocumentation(OutputList &ol, const Definition *container=0) const
virtual const MemberLists & getMemberLists() const
void addNamespaceToGroups(const Entry *root, NamespaceDef *nd)
static void groupClassesWithSameScope(Vec &vec)
void addConceptToGroups(const Entry *root, ConceptDef *cd)
virtual const ConceptLinkedRefMap & getConcepts() const
virtual void makePartOfGroup(const GroupDef *gd)
virtual bool isHidden() const =0
void startGroupCollaboration()
virtual const ClassLinkedRefMap & getClasses() const
@ MemberListType_docDefineMembers
virtual SrcLangExt getLanguage() const
virtual void addExample(const PageDef *def)
PageLinkedRefMap m_examples
virtual void addPage(const PageDef *def)
virtual bool addClass(const ClassDef *def)=0
void err(const char *fmt,...)
virtual void writeQuickMemberLinks(OutputList &ol, const MemberDef *currentMd) const
Text streaming class that buffers data.
virtual QCString name() const
void writeInlineClasses(OutputList &ol)
virtual void removeMember(MemberDef *md)
virtual const MemberDef * getGroupAlias() const =0
virtual MemberList * getMemberList(MemberListType lt) const
virtual int briefLine() const
bool compareDirDefs(const DirDef *item1, const DirDef *item2)
virtual void computeAnchors()
void startMemberDocumentation(OutputList &ol)
ConceptLinkedRefMap m_concepts
virtual bool hasBriefDescription() const
void writeDoc(DocRoot *root, const Definition *ctx, const MemberDef *md, int id=0)
void updateLanguage(const Definition *)
void endMemberDeclarations(OutputList &ol)
virtual const DirList & getDirs() const
virtual void countMembers()
void warn(const QCString &file, int line, const char *fmt,...)
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual void writeTagFile(TextStream &)
QCString doc
documentation block (partly parsed)
ClassLinkedRefMap m_classes
virtual void setGroupAlias(const MemberDef *md)=0
virtual bool addConcept(const ConceptDef *def)=0
@ NamespaceNestedConstantGroups
virtual int inbodyLine() const
void writeSummaryLinks(OutputList &ol) const
virtual size_t numDocMembers() const
void writeSummaryLink(const QCString &file, const QCString &anchor, const QCString &title, bool first)
virtual void addDir(DirDef *dd)=0
void endTextBlock(bool paraBreak=FALSE)
@ MemberListType_declarationLists
virtual const PageLinkedRefMap & getPages() const
@ MemberListType_decFriendMembers
A model of a page symbol.
A model of a group of symbols.
void addClassToGroups(const Entry *root, ClassDef *cd)
Definition * m_groupScope
@ ClassCollaborationGraph
virtual QCString qualifiedName() const
QCString title(SrcLangExt lang) const
NamespaceDefMutable * toNamespaceDefMutable(Definition *d)
static QCString listTypeAsString(MemberListType type)
Class representing a list of output generators that are written to in parallel.
void addDirToGroups(const Entry *root, DirDef *dd)
@ MemberListType_docFriendMembers
Represents of a member definition list with configurable title.
virtual void setGroupDefForAllMembers(GroupDef *g, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs)=0
QCString addHtmlExtensionIfMissing(const QCString &fName)
A model of a class/file/namespace member symbol.
void writeTagFile(TextStream &)
void addGroupToGroups(const Entry *root, GroupDef *subGroup)
@ MemberListType_decPropMembers
virtual QCString briefDescription(bool abbreviate=FALSE) const
virtual void addFile(const FileDef *def)
A abstract class representing of a compound symbol.
@ MemberListType_decVarMembers
void startTextBlock(bool dense=FALSE)
void startMemberItem(const QCString &anchor, int i1, const QCString &id=QCString())
void disable(OutputGenerator::OutputType o)
virtual void addDir(DirDef *dd)
void addMemberToGroups(const Entry *root, MemberDef *md)
void startMemberHeader(const QCString &anchor, int typ=2)
GroupDefImpl(const QCString &fileName, int line, const QCString &name, const QCString &title, const QCString &refFileName=QCString())
virtual bool addConcept(const ConceptDef *def)
void writeNamespaces(OutputList &ol, const QCString &title)
virtual Specifier virtualness(int count=0) const =0
MemberListType listType() const
virtual QCString inbodyDocumentation() const
virtual void makePartOfGroup(const GroupDef *gd)=0
virtual const MemberVector & enumFieldList() const =0
void writeAnchor(const QCString &fileName, const QCString &name)
virtual QCString trMore()=0
virtual bool isLinkableInProject() const
virtual bool getGroupHasDocs() const =0
@ MemberListType_decPriSlotMembers
void writeGroupGraph(OutputList &ol)
void startHeaderSection()
void addMemberListToGroup(MemberList *, bool(MemberDef::*)() const)
int qstricmp(const char *str1, const char *str2)
Translator * theTranslator
virtual void removeMember(MemberDef *md)=0
virtual void writeDocumentation(OutputList &ol)
virtual QCString name() const =0
static GroupLinkedMap * groupLinkedMap
virtual void addGroup(const GroupDef *def)=0
void remove(const MemberDef *md)
@ MemberListType_decPubSlotMembers
virtual void setGroupScope(Definition *d)
@ MemberListType_docSignalMembers
virtual const ClassDef * getClassDef() const =0
GroupPri_t
Grouping priority
virtual QCString trGeneratedAutomatically(const QCString &s)=0
DocRoot * 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)
void writeBriefDescription(OutputList &ol)
@ MemberListType_docFuncMembers
virtual bool isASubGroup() const
virtual bool isFunction() const =0
virtual void setGroupDef(const GroupDef *gd, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs, MemberDef *member=0)=0
void startFile(OutputList &ol, const QCString &name, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName)
MemberLists m_memberLists
MemberList m_allMemberList
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const QCString &title, const QCString &subtitle, bool showEnumValues=FALSE, bool showInline=FALSE, const ClassDef *inheritedFrom=0, MemberListType lt=MemberListType_pubMethods) const
Writes the list of members to the output.
void writeAuthorSection(OutputList &ol)
virtual Protection protection() const =0
const T * find(const std::string &key) const
Find an object given the key.
@ MemberListType_decEnumMembers
virtual void addExample(const PageDef *def)=0
virtual bool isStrong() const =0
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
virtual int docLine() const
virtual DefType definitionType() const =0
void startGroupHeader(int extraLevels=0)
virtual QCString inbodyFile() const
@ MemberListType_decDefineMembers
void startTextLink(const QCString &file, const QCString &anchor)
void writeClasses(OutputList &ol, const QCString &title)
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)
QCString fileName
file this entry was extracted from
QCString groupname
name of the group
void writeMemberGroups(OutputList &ol)
virtual bool isLinkable() const
@ MemberListType_decFuncMembers
virtual QCString documentation() const
@ MemberListType_docPubSlotMembers
virtual QCString anchor() const
void endSection(const QCString &lab, SectionType t)
virtual QCString groupTitle() const
void writeNestedGroups(OutputList &ol, const QCString &title)
virtual const ArgumentList & templateArguments() const =0
virtual void sortSubGroups()
std::vector< RefItem * > RefItemVector
Represents an unstructured piece of information, about an entity found in the sources.
void startTitleHead(const QCString &fileName)
#define Config_getBool(name)
virtual QCString trFile(bool first_capital, bool singular)=0
static SectionManager & instance()
returns a reference to the singleton
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, bool showEnumValues=FALSE, bool showInline=FALSE) const
virtual bool isEnumerate() const =0
void startSection(const QCString &lab, const QCString &title, SectionType t)
void msg(const char *fmt,...)
@ MemberListType_documentationLists
@ MemberListType_docVarMembers
static LayoutDocManager & instance()
Returns a reference to this singleton.
virtual Definition * getOuterScope() const =0
virtual bool addClass(const ClassDef *def)
@ MemberListType_decTypedefMembers
virtual QCString trCollaborationDiagram(const QCString &clName)=0
void parseText(const QCString &textStr)
bool declVisible(bool isContantGroup) const
const char * qPrint(const char *s)
MemberNameInfoLinkedMap m_allMemberNameInfoLinkedMap
virtual const FileDef * getFileDef() const =0
void addExampleToGroups(const Entry *root, PageDef *eg)
#define Config_getString(name)
class that provide information about a section.
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 addGroupListToTitle(OutputList &ol, const Definition *d)
virtual const ArgumentList & argumentList() const =0
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
@ MemberListType_decSignalMembers
@ MemberListType_docPriSlotMembers
bool declVisible(const ClassDef::CompoundType *filter=0) const
Representation of a group collaboration graph
void pushGeneratorState()
QCString convertToXML(const QCString &s, bool keepEntities)
virtual void findSectionsInDocumentation()
A model of a file symbol.
@ MemberListType_docEnumValMembers
virtual const PageLinkedRefMap & getExamples() const
virtual int getGroupStartLine() const =0
MemberGroupList m_memberGroups
QCString stripExtension(const QCString &fName)
NamespaceLinkedRefMap m_namespaces
static bool suppressDocWarnings
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
void writePageDocumentation(OutputList &ol)
virtual bool findGroup(const GroupDef *def) const =0
ClassDefMutable * toClassDefMutable(Definition *d)
virtual void addMembersToMemberGroup()
GroupDef * createGroupDef(const QCString &fileName, int line, const QCString &name, const QCString &title, const QCString &refFileName)
void startMemberDeclaration()
const T * find(const std::string &key) const
find an object given the key.
virtual const FileList & getFiles() const
virtual bool hasGroupTitle() const
void addMemberToList(MemberListType lt, const MemberDef *md)
void writeDirs(OutputList &ol, const QCString &title)
A bunch of utility functions.
void createSubDirs(const Dir &d)
ConceptDefMutable * toConceptDefMutable(Definition *d)
void enable(OutputGenerator::OutputType o)
void writeDeclaration(OutputList &ol, const QCString &title, bool isConstantGroup=false, bool localName=FALSE)
virtual QCString trDir(bool first_capital, bool singular)=0
virtual bool addNamespace(const NamespaceDef *def)
virtual void setLanguage(SrcLangExt lang)
std::vector< Grouping > groups
list of groups this entry belongs to
A list of MemberDef objects as shown in documentation sections.
bool matchArguments2(const Definition *srcScope, const FileDef *srcFileScope, const ArgumentList *srcAl, const Definition *dstScope, const FileDef *dstFileScope, const ArgumentList *dstAl, bool checkCV)
void writeFiles(OutputList &ol, const QCString &title)
@ MemberListType_docEventMembers
virtual QCString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
void writeDetailedDescription(OutputList &ol, const QCString &title)
@ MemberListType_docTypedefMembers
@ MemberListType_docPropMembers
virtual MemberType memberType() const =0
virtual void setGroupTitle(const QCString &newtitle)
QCString convertToHtml(const QCString &s, bool keepEntities)
void startParagraph(const QCString &classDef=QCString())
virtual const GroupDef * getGroupDef() const =0
virtual void writeMemberPages(OutputList &ol)
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const QCString &navPath)
QCString title(SrcLangExt lang) const
std::unique_ptr< IDocParser > createDocParser()
virtual QCString trGroup(bool first_capital, bool singular)=0
virtual void distributeMemberGroupDocumentation()
virtual QCString trAuthor(bool first_capital, bool singular)=0
This is an alternative implementation of QCString.