diff -r d8fccb2cd802 -r 468f4c8d3d5b Orb/Doxygen/src/groupdef.cpp --- a/Orb/Doxygen/src/groupdef.cpp Fri Apr 23 20:47:58 2010 +0100 +++ b/Orb/Doxygen/src/groupdef.cpp Wed Aug 11 14:49:30 2010 +0100 @@ -2,7 +2,7 @@ * * * - * Copyright (C) 1997-2008 by Dimitri van Heesch. + * Copyright (C) 1997-2010 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby @@ -604,7 +604,7 @@ // write list of files if (fileList->count()>0) { - ol.startMemberHeader(); + ol.startMemberHeader("files"); ol.parseText(title); ol.endMemberHeader(); ol.startMemberList(); @@ -645,7 +645,7 @@ // write list of groups if (groupList->count()>0) { - ol.startMemberHeader(); + ol.startMemberHeader("groups"); ol.parseText(title); ol.endMemberHeader(); ol.startMemberList(); @@ -681,7 +681,7 @@ // write list of directories if (dirList->count()>0) { - ol.startMemberHeader(); + ol.startMemberHeader("dirs"); ol.parseText(title); ol.endMemberHeader(); ol.startMemberList(); @@ -803,14 +803,57 @@ ol.popGeneratorState(); } +void GroupDef::writeSummaryLinks(OutputList &ol) +{ + ol.pushGeneratorState(); + ol.disableAllBut(OutputGenerator::Html); + QListIterator eli( + LayoutDocManager::instance().docEntries(LayoutDocManager::Group)); + LayoutDocEntry *lde; + bool first=TRUE; + for (eli.toFirst();(lde=eli.current());++eli) + { + if ((lde->kind()==LayoutDocEntry::GroupClasses && classSDict->declVisible()) || + (lde->kind()==LayoutDocEntry::GroupNamespaces && namespaceSDict->declVisible()) || + (lde->kind()==LayoutDocEntry::GroupFiles && fileList->count()>0) || + (lde->kind()==LayoutDocEntry::GroupNestedGroups && groupList->count()>0) || + (lde->kind()==LayoutDocEntry::GroupDirs && dirList->count()>0) + ) + { + LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; + QCString label = lde->kind()==LayoutDocEntry::GroupClasses ? "nested-classes" : + lde->kind()==LayoutDocEntry::GroupNamespaces ? "namespaces" : + lde->kind()==LayoutDocEntry::GroupFiles ? "files" : + lde->kind()==LayoutDocEntry::GroupNestedGroups ? "groups" : + "dirs"; + writeSummaryLink(ol,label,ls->title,first); + } + else if (lde->kind()==LayoutDocEntry::MemberDecl) + { + LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; + MemberList * ml = getMemberList(lmd->type); + if (ml && ml->declVisible()) + { + writeSummaryLink(ol,ml->listTypeAsString(),lmd->title,first); + } + } + } + if (!first) + { + ol.writeString(" \n"); + } + ol.popGeneratorState(); +} + void GroupDef::writeDocumentation(OutputList &ol) { ol.pushGeneratorState(); startFile(ol,getOutputFileBase(),name(),title); - startTitle(ol,getOutputFileBase()); + startTitle(ol,getOutputFileBase(),this); ol.parseText(title); addGroupListToTitle(ol,this); endTitle(ol,getOutputFileBase(),title); + ol.startContents(); if (Doxygen::searchIndex) {