diff options
Diffstat (limited to 'src/groupdef.cpp')
-rw-r--r-- | src/groupdef.cpp | 178 |
1 files changed, 144 insertions, 34 deletions
diff --git a/src/groupdef.cpp b/src/groupdef.cpp index ae785e7..9160538 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -546,6 +546,149 @@ void GroupDef::computeAnchors() setAnchors(allMemberList); } +void GroupDef::writeTagFile(FTextStream &tagFile) +{ + tagFile << " <compound kind=\"group\">" << endl; + tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; + tagFile << " <title>" << convertToXML(title) << "</title>" << endl; + tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl; + QListIterator<LayoutDocEntry> eli( + LayoutDocManager::instance().docEntries(LayoutDocManager::Group)); + LayoutDocEntry *lde; + for (eli.toFirst();(lde=eli.current());++eli) + { + switch (lde->kind()) + { + case LayoutDocEntry::GroupClasses: + { + if (classSDict) + { + SDict<ClassDef>::Iterator ci(*classSDict); + ClassDef *cd; + for (ci.toFirst();(cd=ci.current());++ci) + { + if (cd->isLinkableInProject()) + { + tagFile << " <class kind=\"" << cd->compoundTypeString() + << "\">" << convertToXML(cd->name()) << "</class>" << endl; + } + } + } + } + break; + case LayoutDocEntry::GroupNamespaces: + { + if (namespaceSDict) + { + SDict<NamespaceDef>::Iterator ni(*namespaceSDict); + NamespaceDef *nd; + for (ni.toFirst();(nd=ni.current());++ni) + { + if (nd->isLinkableInProject()) + { + tagFile << " <namespace>" << convertToXML(nd->name()) + << "</namespace>" << endl; + } + } + } + } + break; + case LayoutDocEntry::GroupFiles: + { + if (fileList) + { + QListIterator<FileDef> it(*fileList); + FileDef *fd; + for (;(fd=it.current());++it) + { + if (fd->isLinkableInProject()) + { + tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl; + } + } + } + } + break; + case LayoutDocEntry::GroupPageDocs: + { + if (pageDict) + { + PageSDict::Iterator pdi(*pageDict); + PageDef *pd=0; + for (pdi.toFirst();(pd=pdi.current());++pdi) + { + QCString pageName = pd->getOutputFileBase(); + if (pd->isLinkableInProject()) + { + tagFile << " <page>" << convertToXML(pageName) << "</page>" << endl; + } + } + } + } + break; + case LayoutDocEntry::GroupDirs: + { + if (dirList) + { + QListIterator<DirDef> it(*dirList); + DirDef *dd; + for (;(dd=it.current());++it) + { + if (dd->isLinkableInProject()) + { + tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>" << endl; + } + } + } + } + break; + case LayoutDocEntry::GroupNestedGroups: + { + if (groupList) + { + QListIterator<GroupDef> it(*groupList); + GroupDef *gd; + for (;(gd=it.current());++it) + { + if (gd->isVisible()) + { + tagFile << " <subgroup>" << convertToXML(gd->name()) << "</subgroup>" << endl; + } + } + } + } + break; + case LayoutDocEntry::MemberDecl: + { + LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; + MemberList * ml = getMemberList(lmd->type); + if (ml) + { + ml->writeTagFile(tagFile); + } + } + break; + case LayoutDocEntry::MemberGroups: + { + if (memberGroupSDict) + { + MemberGroupSDict::Iterator mgli(*memberGroupSDict); + MemberGroup *mg; + for (;(mg=mgli.current());++mgli) + { + mg->writeTagFile(tagFile); + } + } + } + break; + default: + break; + } + } + writeDocAnchorsToTagFile(tagFile); + tagFile << " </compound>" << endl; +} + void GroupDef::writeDetailedDescription(OutputList &ol,const QCString &title) { if ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) @@ -670,10 +813,6 @@ void GroupDef::writeFiles(OutputList &ol,const QCString &title) ol.docify(theTranslator->trFile(FALSE,TRUE)+" "); ol.insertMemberAlign(); ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0,fd->name()); - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) - { - Doxygen::tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl; - } ol.endMemberItem(); if (!fd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) { @@ -728,10 +867,6 @@ void GroupDef::writeNestedGroups(OutputList &ol,const QCString &title) //ol.docify(" "); ol.insertMemberAlign(); ol.writeObjectLink(gd->getReference(),gd->getOutputFileBase(),0,gd->groupTitle()); - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) - { - Doxygen::tagFile << " <subgroup>" << convertToXML(gd->name()) << "</subgroup>" << endl; - } ol.endMemberItem(); if (!gd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) { @@ -765,10 +900,6 @@ void GroupDef::writeDirs(OutputList &ol,const QCString &title) ol.insertMemberAlign(); ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),0,dd->shortName()); ol.endMemberItem(); - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) - { - Doxygen::tagFile << " <dir>" << convertToXML(dd->displayName()) << "</dir>" << endl; - } if (!dd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) { ol.startMemberDescription(dd->getOutputFileBase()); @@ -801,13 +932,6 @@ void GroupDef::writePageDocumentation(OutputList &ol) { if (!pd->isReference()) { - QCString pageName = pd->getOutputFileBase(); - - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) - { - Doxygen::tagFile << " <page>" << convertToXML(pageName) << "</page>" << endl; - } - SectionInfo *si=0; if (!pd->title().isEmpty() && !pd->name().isEmpty() && (si=Doxygen::sectionDict->find(pd->name()))!=0) @@ -967,15 +1091,6 @@ void GroupDef::writeDocumentation(OutputList &ol) Doxygen::indexList->addIndexItem(this,0,0,title); - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) - { - Doxygen::tagFile << " <compound kind=\"group\">" << endl; - Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; - Doxygen::tagFile << " <title>" << convertToXML(title) << "</title>" << endl; - Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl; - } - - //---------------------------------------- start flexible part ------------------------------- SrcLangExt lang=getLanguage(); @@ -1100,12 +1215,6 @@ void GroupDef::writeDocumentation(OutputList &ol) ol.popGeneratorState(); - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) - { - writeDocAnchorsToTagFile(); - Doxygen::tagFile << " </compound>" << endl; - } - if (Config_getBool("SEPARATE_MEMBER_PAGES")) { allMemberList->sort(); @@ -1527,3 +1636,4 @@ bool GroupDef::hasDetailedDescription() const return ((!briefDescription().isEmpty() && repeatBrief) || !documentation().isEmpty()); } + |