diff options
Diffstat (limited to 'src/classdef.cpp')
-rw-r--r-- | src/classdef.cpp | 925 |
1 files changed, 470 insertions, 455 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp index c097aee..474be45 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -1,12 +1,12 @@ /****************************************************************************** * - * + * * * Copyright (C) 1997-2013 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 - * granted. No representations are made about the suitability of this software + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * @@ -57,29 +57,29 @@ class ClassDefImpl const QCString &ctStr, const char *fName); /*! file name that forms the base for the output file containing the - * class documentation. For compatibility with Qt (e.g. links via tag + * class documentation. For compatibility with Qt (e.g. links via tag * files) this name cannot be derived from the class name directly. */ - QCString fileName; + QCString fileName; /*! Include information about the header file should be included * in the documentation. 0 by default, set by setIncludeFile(). */ - IncludeInfo *incInfo; + IncludeInfo *incInfo; /*! List of base class (or super-classes) from which this class derives - * directly. + * directly. */ BaseClassList *inherits; - /*! List of sub-classes that directly derive from this class + /*! List of sub-classes that directly derive from this class */ BaseClassList *inheritedBy; - /*! Namespace this class is part of + /*! Namespace this class is part of * (this is the inner most namespace in case of nested namespaces) */ - NamespaceDef *nspace; + NamespaceDef *nspace; /*! File this class is defined in */ FileDef *fileDef; @@ -94,7 +94,7 @@ class ClassDefImpl ArgumentList *typeConstraints; /*! Files that were used for generating the class documentation. */ - QStrList files; + FileList files; /*! Examples that use this class */ ExampleSDict *exampleSDict; @@ -102,10 +102,10 @@ class ClassDefImpl /*! Holds the kind of "class" this is. */ ClassDef::CompoundType compType; - /*! The protection level in which this class was found. + /*! The protection level in which this class was found. * Typically Public, but for nested classes this can also be Protected * or Private. - */ + */ Protection prot; /*! The inner classes contained in this class. Will be 0 if there are @@ -120,13 +120,13 @@ class ClassDefImpl /*! Template instances that exists of this class, the key in the * dictionary is the template argument list. - */ + */ QDict<ClassDef> *templateInstances; /*! Template instances that exists of this class, as defined by variables. * We do NOT want to document these individually. The key in the * dictionary is the template argument list. - */ + */ QDict<ClassDef> *variableInstances; QDict<int> *templBaseClassNames; @@ -162,10 +162,10 @@ class ClassDefImpl bool isTemplArg; /*! Does this class group its user-grouped members - * as a sub-section of the normal (public/protected/..) + * as a sub-section of the normal (public/protected/..) * groups? */ - bool subGrouping; + bool subGrouping; /** Reason of existence is a "use" relation */ bool usedOnly; @@ -238,7 +238,7 @@ void ClassDefImpl::init(const char *defFileName, const char *name, // we cannot use getLanguage at this point, as setLanguage has not been called. SrcLangExt lang = getLanguageFromFileName(defFileName); - if ((lang==SrcLangExt_Cpp || lang==SrcLangExt_ObjC) && + if ((lang==SrcLangExt_Cpp || lang==SrcLangExt_ObjC) && guessSection(defFileName)==Entry::SOURCE_SEC) { isLocal=TRUE; @@ -280,7 +280,7 @@ ClassDef::ClassDef( const char *defFileName,int defLine,int defColumn, const char *nm,CompoundType ct, const char *lref,const char *fName, - bool isSymbol,bool isJavaEnum) + bool isSymbol,bool isJavaEnum) : Definition(defFileName,defLine,defColumn,removeRedundantWhiteSpace(nm),0,0,isSymbol) { visited=FALSE; @@ -312,7 +312,7 @@ QCString ClassDef::displayName(bool includeScope) const { n = VhdlDocGen::getClassName(this); } - else + else { if (includeScope) { @@ -388,7 +388,7 @@ void ClassDef::addMembersToMemberGroup() MemberGroup *mg; for (;(mg=mgli.current());++mgli) { - if (mg->allMembersInSameSection() && m_impl->subGrouping) + if (mg->allMembersInSameSection() && m_impl->subGrouping) { //printf("addToDeclarationSection(%s)\n",mg->header().data()); mg->addToDeclarationSection(); @@ -456,14 +456,14 @@ void ClassDef::internalInsertMember(MemberDef *md, case MemberType_Slot: // Qt specific switch (prot) { - case Protected: + case Protected: case Package: // slots in packages are not possible! addMemberToList(MemberListType_proSlots,md,TRUE); break; - case Public: + case Public: addMemberToList(MemberListType_pubSlots,md,TRUE); break; - case Private: + case Private: addMemberToList(MemberListType_priSlots,md,TRUE); break; } @@ -475,16 +475,16 @@ void ClassDef::internalInsertMember(MemberDef *md, { switch (prot) { - case Protected: + case Protected: addMemberToList(MemberListType_proStaticAttribs,md,TRUE); break; - case Package: + case Package: addMemberToList(MemberListType_pacStaticAttribs,md,TRUE); break; - case Public: + case Public: addMemberToList(MemberListType_pubStaticAttribs,md,TRUE); break; - case Private: + case Private: addMemberToList(MemberListType_priStaticAttribs,md,TRUE); break; } @@ -493,16 +493,16 @@ void ClassDef::internalInsertMember(MemberDef *md, { switch (prot) { - case Protected: + case Protected: addMemberToList(MemberListType_proStaticMethods,md,TRUE); break; - case Package: + case Package: addMemberToList(MemberListType_pacStaticMethods,md,TRUE); break; - case Public: + case Public: addMemberToList(MemberListType_pubStaticMethods,md,TRUE); break; - case Private: + case Private: addMemberToList(MemberListType_priStaticMethods,md,TRUE); break; } @@ -514,17 +514,17 @@ void ClassDef::internalInsertMember(MemberDef *md, { switch (prot) { - case Protected: + case Protected: addMemberToList(MemberListType_proAttribs,md,TRUE); break; case Package: addMemberToList(MemberListType_pacAttribs,md,TRUE); break; - case Public: + case Public: addMemberToList(MemberListType_pubAttribs,md,TRUE); isSimple=!md->isFunctionPtr(); break; - case Private: + case Private: addMemberToList(MemberListType_priAttribs,md,TRUE); break; } @@ -533,17 +533,17 @@ void ClassDef::internalInsertMember(MemberDef *md, { switch (prot) { - case Protected: + case Protected: addMemberToList(MemberListType_proTypes,md,TRUE); break; - case Package: + case Package: addMemberToList(MemberListType_pacTypes,md,TRUE); break; - case Public: + case Public: addMemberToList(MemberListType_pubTypes,md,TRUE); isSimple=QCString(md->typeString()).find(")(")==-1; break; - case Private: + case Private: addMemberToList(MemberListType_priTypes,md,TRUE); break; } @@ -552,22 +552,22 @@ void ClassDef::internalInsertMember(MemberDef *md, { switch (prot) { - case Protected: + case Protected: addMemberToList(MemberListType_proMethods,md,TRUE); break; - case Package: + case Package: addMemberToList(MemberListType_pacMethods,md,TRUE); break; - case Public: + case Public: addMemberToList(MemberListType_pubMethods,md,TRUE); break; - case Private: + case Private: addMemberToList(MemberListType_priMethods,md,TRUE); break; } } } - break; + break; } } if (!isSimple) // not a simple field -> not a simple struct @@ -641,17 +641,17 @@ void ClassDef::internalInsertMember(MemberDef *md, err("Unexpected member type %d found!\n",md->memberType()); } } - break; + break; } } /*************************************************/ /* insert member in the appropriate member group */ /*************************************************/ - // Note: this must be done AFTER inserting the member in the + // Note: this must be done AFTER inserting the member in the // regular groups //addMemberToGroup(md,groupId); - + } if (md->virtualness()==Pure) @@ -665,10 +665,10 @@ void ClassDef::internalInsertMember(MemberDef *md, } //::addClassMemberNameToIndex(md); - if (addToAllList && + if (addToAllList && !(Config_getBool("HIDE_FRIEND_COMPOUNDS") && md->isFriend() && - (QCString(md->typeString())=="friend class" || + (QCString(md->typeString())=="friend class" || QCString(md->typeString())=="friend struct" || QCString(md->typeString())=="friend union"))) { @@ -764,16 +764,17 @@ void ClassDef::findSectionsInDocumentation() // add a file name to the used files set -void ClassDef::insertUsedFile(const char *f) +void ClassDef::insertUsedFile(FileDef *fd) { - if (m_impl->files.find(f)==-1) m_impl->files.append(f); + if (fd==0) return; + if (m_impl->files.find(fd)==-1) m_impl->files.append(fd); if (m_impl->templateInstances) { QDictIterator<ClassDef> qdi(*m_impl->templateInstances); ClassDef *cd; for (qdi.toFirst();(cd=qdi.current());++qdi) { - cd->insertUsedFile(f); + cd->insertUsedFile(fd); } } } @@ -814,7 +815,7 @@ void ClassDef::setIncludeFile(FileDef *fd, m_impl->incInfo->includeName = includeName; m_impl->incInfo->local = local; } - if (force && includeName) + if (force && includeName) { m_impl->incInfo->includeName = includeName; m_impl->incInfo->local = local; @@ -829,7 +830,7 @@ void ClassDef::setIncludeFile(FileDef *fd, // int pi=0; // if (m_impl->tempArgs) return m_impl->tempArgs; // // find the outer most class scope -// while ((ti=name().find("::",pi))!=-1 && +// while ((ti=name().find("::",pi))!=-1 && // (pcd=getClass(name().left(ti)))==0 // ) pi=ti+2; // if (pcd) @@ -858,7 +859,7 @@ static void searchTemplateSpecs(/*in*/ Definition *d, } name+=clName; bool isSpecialization = d->localName().find('<')!=-1; - if (cd->templateArguments()) + if (cd->templateArguments()) { result.append(cd->templateArguments()); if (!isSpecialization) @@ -881,7 +882,7 @@ static void writeTemplateSpec(OutputList &ol,Definition *d, searchTemplateSpecs(d,specs,name); if (specs.count()>0) // class has template scope specifiers { - ol.startSubsubsection(); + ol.startSubsubsection(); QListIterator<ArgumentList> spi(specs); ArgumentList *al; for (spi.toFirst();(al=spi.current());++spi) @@ -900,7 +901,7 @@ static void writeTemplateSpec(OutputList &ol,Definition *d, { ol.docify(" = "); ol.docify(a->defval); - } + } a=al->next(); if (a) ol.docify(", "); } @@ -916,12 +917,6 @@ static void writeTemplateSpec(OutputList &ol,Definition *d, } } -bool ClassDef::hasBriefDescription() const -{ - static bool briefMemberDesc = Config_getBool("BRIEF_MEMBER_DESC"); - return !briefDescription().isEmpty() && briefMemberDesc; -} - void ClassDef::writeBriefDescription(OutputList &ol,bool exampleFlag) { if (hasBriefDescription()) @@ -997,13 +992,13 @@ bool ClassDef::hasDetailedDescription() const { static bool repeatBrief = Config_getBool("REPEAT_BRIEF"); static bool sourceBrowser = Config_getBool("SOURCE_BROWSER"); - return ((!briefDescription().isEmpty() && repeatBrief) || - !documentation().isEmpty() || + return ((!briefDescription().isEmpty() && repeatBrief) || + !documentation().isEmpty() || (sourceBrowser && getStartBodyLine()!=-1 && getBodyDef())); } // write the detailed description for this class -void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &/*pageType*/, bool exampleFlag, +void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &/*pageType*/, bool exampleFlag, const QCString &title,const QCString &anchor) { if (hasDetailedDescription() || exampleFlag) @@ -1038,111 +1033,113 @@ void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &/*pageTy //writeTemplateSpec(ol,this,pageType); } } - -void ClassDef::showUsedFiles(OutputList &ol) -{ - ol.pushGeneratorState(); - ol.disable(OutputGenerator::Man); +QCString ClassDef::generatedFromFiles() const +{ + QCString result; SrcLangExt lang = getLanguage(); - ol.writeRuler(); if (lang==SrcLangExt_Fortran) { - ol.parseText(theTranslator->trGeneratedFromFilesFortran( + result = theTranslator->trGeneratedFromFilesFortran( getLanguage()==SrcLangExt_ObjC && m_impl->compType==Interface ? Class : m_impl->compType, - m_impl->files.count()==1)); + m_impl->files.count()==1); } else if (isJavaEnum()) { - ol.parseText(theTranslator->trEnumGeneratedFromFiles(m_impl->files.count()==1)); + result = theTranslator->trEnumGeneratedFromFiles(m_impl->files.count()==1); } else if (m_impl->compType==Service) { - ol.parseText(theTranslator->trServiceGeneratedFromFiles(m_impl->files.count()==1)); + result = theTranslator->trServiceGeneratedFromFiles(m_impl->files.count()==1); } else if (m_impl->compType==Singleton) { - ol.parseText(theTranslator->trSingletonGeneratedFromFiles(m_impl->files.count()==1)); + result = theTranslator->trSingletonGeneratedFromFiles(m_impl->files.count()==1); } else { - ol.parseText(theTranslator->trGeneratedFromFiles( + result = theTranslator->trGeneratedFromFiles( getLanguage()==SrcLangExt_ObjC && m_impl->compType==Interface ? Class : m_impl->compType, - m_impl->files.count()==1)); + m_impl->files.count()==1); } + return result; +} + +void ClassDef::showUsedFiles(OutputList &ol) +{ + ol.pushGeneratorState(); + ol.disable(OutputGenerator::Man); + + + ol.writeRuler(); + ol.parseText(generatedFromFiles()); bool first=TRUE; - const char *file = m_impl->files.first(); - while (file) + FileDef *fd = m_impl->files.first(); + while (fd) { - bool ambig; - FileDef *fd=findFileDef(Doxygen::inputNameDict,file,ambig); - if (fd) + if (first) { - if (first) - { - first=FALSE; - ol.startItemList(); - } - - ol.startItemListItem(); - QCString path=fd->getPath(); - if (Config_getBool("FULL_PATH_NAMES")) - { - ol.docify(stripFromPath(path)); - } + first=FALSE; + ol.startItemList(); + } - QCString fname = fd->name(); - if (!fd->getVersion().isEmpty()) // append version if available - { - fname += " (" + fd->getVersion() + ")"; - } + ol.startItemListItem(); + QCString path=fd->getPath(); + if (Config_getBool("FULL_PATH_NAMES")) + { + ol.docify(stripFromPath(path)); + } - // for HTML - ol.pushGeneratorState(); - ol.disableAllBut(OutputGenerator::Html); - if (fd->generateSourceFile()) - { - ol.writeObjectLink(0,fd->getSourceFileBase(),0,fname); - } - else if (fd->isLinkable()) - { - ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0, - fname); - } - else - { - ol.docify(fname); - } - ol.popGeneratorState(); + QCString fname = fd->name(); + if (!fd->getVersion().isEmpty()) // append version if available + { + fname += " (" + fd->getVersion() + ")"; + } - // for other output formats - ol.pushGeneratorState(); - ol.disable(OutputGenerator::Html); - if (fd->isLinkable()) - { - ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0, - fname); - } - else - { - ol.docify(fname); - } - ol.popGeneratorState(); + // for HTML + ol.pushGeneratorState(); + ol.disableAllBut(OutputGenerator::Html); + if (fd->generateSourceFile()) + { + ol.writeObjectLink(0,fd->getSourceFileBase(),0,fname); + } + else if (fd->isLinkable()) + { + ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0, + fname); + } + else + { + ol.docify(fname); + } + ol.popGeneratorState(); - ol.endItemListItem(); + // for other output formats + ol.pushGeneratorState(); + ol.disable(OutputGenerator::Html); + if (fd->isLinkable()) + { + ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0, + fname); } - file=m_impl->files.next(); + else + { + ol.docify(fname); + } + ol.popGeneratorState(); + + ol.endItemListItem(); + + fd=m_impl->files.next(); } if (!first) ol.endItemList(); ol.popGeneratorState(); } - -void ClassDef::writeInheritanceGraph(OutputList &ol) +int ClassDef::countInheritanceNodes() { - // count direct inheritance relations int count=0; BaseClassDef *ibcd; if (m_impl->inheritedBy) @@ -1165,10 +1162,16 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) ibcd=m_impl->inherits->next(); } } + return count; +} + +void ClassDef::writeInheritanceGraph(OutputList &ol) +{ + // count direct inheritance relations + int count=countInheritanceNodes(); - bool renderDiagram = FALSE; - if (Config_getBool("HAVE_DOT") && + if (Config_getBool("HAVE_DOT") && (Config_getBool("CLASS_DIAGRAMS") || Config_getBool("CLASS_GRAPH"))) // write class diagram using dot { @@ -1184,7 +1187,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) renderDiagram = TRUE; } } - else if (Config_getBool("CLASS_DIAGRAMS") && count>0) + else if (Config_getBool("CLASS_DIAGRAMS") && count>0) // write class diagram using build-in generator { ClassDiagram diagram(this); // create a diagram of this class. @@ -1194,7 +1197,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) ol.enable(OutputGenerator::Man); ol.endClassDiagram(diagram,getOutputFileBase(),displayName()); renderDiagram = TRUE; - } + } if (renderDiagram) // if we already show the inheritance relations graphically, // then hide the text version @@ -1228,7 +1231,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) if (cd->isLinkable()) { - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) + if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <base"; if (bcd->prot==Protected) @@ -1243,7 +1246,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) { Doxygen::tagFile << " virtualness=\"virtual\""; } - Doxygen::tagFile << ">" << convertToXML(cd->name()) + Doxygen::tagFile << ">" << convertToXML(cd->name()) << "</base>" << endl; } ol.writeObjectLink(cd->getReference(), @@ -1261,7 +1264,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) err("invalid marker %d in inherits list!\n",entryIndex); } index=newIndex+matchLen; - } + } ol.parseText(inheritLine.right(inheritLine.length()-index)); ol.endParagraph(); } @@ -1294,12 +1297,12 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) writeInheritanceSpecifier(ol,bcd); } index=newIndex+matchLen; - } + } ol.parseText(inheritLine.right(inheritLine.length()-index)); ol.endParagraph(); } - if (renderDiagram) + if (renderDiagram) { ol.enableAll(); } @@ -1322,33 +1325,40 @@ void ClassDef::writeCollaborationGraph(OutputList &ol) } } +QCString ClassDef::includeStatement() const +{ + SrcLangExt lang = getLanguage(); + bool isIDLorJava = lang==SrcLangExt_IDL || lang==SrcLangExt_Java; + if (isIDLorJava) + { + return "import"; + } + else if (isObjectiveC()) + { + return "#import "; + } + else + { + return "#include "; + } +} + void ClassDef::writeIncludeFiles(OutputList &ol) { if (m_impl->incInfo /*&& Config_getBool("SHOW_INCLUDE_FILES")*/) { - QCString nm=m_impl->incInfo->includeName.isEmpty() ? + QCString nm=m_impl->incInfo->includeName.isEmpty() ? (m_impl->incInfo->fileDef ? - m_impl->incInfo->fileDef->docName().data() : "" + m_impl->incInfo->fileDef->docName().data() : "" ) : m_impl->incInfo->includeName.data(); if (!nm.isEmpty()) { ol.startParagraph(); ol.startTypewriter(); + ol.docify(includeStatement()); SrcLangExt lang = getLanguage(); bool isIDLorJava = lang==SrcLangExt_IDL || lang==SrcLangExt_Java; - if (isIDLorJava) - { - ol.docify("import "); - } - else if (isObjectiveC()) - { - ol.docify("#import "); - } - else - { - ol.docify("#include "); - } if (m_impl->incInfo->local || isIDLorJava) ol.docify("\""); else @@ -1371,7 +1381,7 @@ void ClassDef::writeIncludeFiles(OutputList &ol) ol.docify("\""); else ol.docify(">"); - if (isIDLorJava) + if (isIDLorJava) ol.docify(";"); ol.endTypewriter(); ol.endParagraph(); @@ -1426,7 +1436,7 @@ void ClassDef::writeMemberGroups(OutputList &ol,bool showInline) void ClassDef::writeNestedClasses(OutputList &ol,const QCString &title) { // nested classes - if (m_impl->innerClasses) + if (m_impl->innerClasses) { m_impl->innerClasses->writeDeclaration(ol,0,title,TRUE); } @@ -1434,7 +1444,7 @@ void ClassDef::writeNestedClasses(OutputList &ol,const QCString &title) void ClassDef::writeInlineClasses(OutputList &ol) { - if (m_impl->innerClasses) + if (m_impl->innerClasses) { m_impl->innerClasses->writeDocumentation(ol,this); } @@ -1502,12 +1512,12 @@ void ClassDef::writeSummaryLinks(OutputList &ol) LayoutDocEntry *lde; bool first=TRUE; SrcLangExt lang = getLanguage(); - + if (lang!=SrcLangExt_VHDL) { for (eli.toFirst();(lde=eli.current());++eli) { - if (lde->kind()==LayoutDocEntry::ClassNestedClasses && + if (lde->kind()==LayoutDocEntry::ClassNestedClasses && m_impl->innerClasses && m_impl->innerClasses->declVisible() ) @@ -1555,7 +1565,7 @@ void ClassDef::writeSummaryLinks(OutputList &ol) void ClassDef::writeTagFileMarker() { // write section to the tag file - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) + if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <compound kind=\"" << compoundTypeString(); Doxygen::tagFile << "\""; @@ -1596,7 +1606,7 @@ void ClassDef::writeInlineDocumentation(OutputList &ol) LayoutDocEntry *lde; // part 1: anchor and title - QCString s = compoundTypeString()+" "+name(); + QCString s = compoundTypeString()+" "+name(); // part 1a ol.pushGeneratorState(); @@ -1640,7 +1650,7 @@ void ClassDef::writeInlineDocumentation(OutputList &ol) { switch (lde->kind()) { - case LayoutDocEntry::BriefDesc: + case LayoutDocEntry::BriefDesc: { // since we already shown the brief description in the // declaration part of the container, so we use this to @@ -1648,15 +1658,15 @@ void ClassDef::writeInlineDocumentation(OutputList &ol) writeDetailedDocumentationBody(ol); } break; - case LayoutDocEntry::ClassInheritanceGraph: - writeInheritanceGraph(ol); - break; - case LayoutDocEntry::ClassCollaborationGraph: - writeCollaborationGraph(ol); - break; - case LayoutDocEntry::MemberDeclStart: + case LayoutDocEntry::ClassInheritanceGraph: + writeInheritanceGraph(ol); + break; + case LayoutDocEntry::ClassCollaborationGraph: + writeCollaborationGraph(ol); + break; + case LayoutDocEntry::MemberDeclStart: if (!isSimple) startMemberDeclarations(ol); - break; + break; case LayoutDocEntry::MemberDecl: { LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; @@ -1666,13 +1676,13 @@ void ClassDef::writeInlineDocumentation(OutputList &ol) case LayoutDocEntry::MemberGroups: if (!isSimple) writeMemberGroups(ol,TRUE); break; - case LayoutDocEntry::MemberDeclEnd: + case LayoutDocEntry::MemberDeclEnd: if (!isSimple) endMemberDeclarations(ol); break; - case LayoutDocEntry::MemberDefStart: + case LayoutDocEntry::MemberDefStart: if (!isSimple) startMemberDocumentation(ol); - break; - case LayoutDocEntry::MemberDef: + break; + case LayoutDocEntry::MemberDef: { LayoutDocEntryMemberDef *lmd = (LayoutDocEntryMemberDef*)lde; if (isSimple) @@ -1684,8 +1694,8 @@ void ClassDef::writeInlineDocumentation(OutputList &ol) writeMemberDocumentation(ol,lmd->type,lmd->title(lang),TRUE); } } - break; - case LayoutDocEntry::MemberDefEnd: + break; + case LayoutDocEntry::MemberDefEnd: if (!isSimple) endMemberDocumentation(ol); break; default: @@ -1757,8 +1767,8 @@ void ClassDef::writeDeclarationLink(OutputList &ol,bool &found,const char *heade static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES"); bool isLink = isLinkable(); SrcLangExt lang = getLanguage(); - if (isLink || - (!hideUndocClasses && + if (isLink || + (!hideUndocClasses && (!isLocal() || extractLocalClasses) ) ) @@ -1776,7 +1786,7 @@ void ClassDef::writeDeclarationLink(OutputList &ol,bool &found,const char *heade } else { - ol.parseText(lang==SrcLangExt_Fortran ? + ol.parseText(lang==SrcLangExt_Fortran ? theTranslator->trDataTypes() : theTranslator->trCompounds()); } @@ -1787,7 +1797,7 @@ void ClassDef::writeDeclarationLink(OutputList &ol,bool &found,const char *heade if (!Config_getString("GENERATE_TAGFILE").isEmpty() && !isReference()) // skip classes found in tag files { - Doxygen::tagFile << " <class kind=\"" << compoundTypeString() + Doxygen::tagFile << " <class kind=\"" << compoundTypeString() << "\">" << convertToXML(name()) << "</class>" << endl; } ol.startMemberDeclaration(); @@ -1801,7 +1811,7 @@ void ClassDef::writeDeclarationLink(OutputList &ol,bool &found,const char *heade ol.writeString(" "); ol.insertMemberAlign(); } - if (isLink) + if (isLink) { ol.writeObjectLink(getReference(), getOutputFileBase(), @@ -1809,7 +1819,7 @@ void ClassDef::writeDeclarationLink(OutputList &ol,bool &found,const char *heade cname ); } - else + else { ol.startBold(); ol.docify(cname); @@ -1899,67 +1909,67 @@ void ClassDef::writeDocumentationContents(OutputList &ol,const QCString & /*page { switch (lde->kind()) { - case LayoutDocEntry::BriefDesc: + case LayoutDocEntry::BriefDesc: writeBriefDescription(ol,exampleFlag); - break; - case LayoutDocEntry::ClassIncludes: + break; + case LayoutDocEntry::ClassIncludes: writeIncludeFiles(ol); break; - case LayoutDocEntry::ClassInheritanceGraph: - writeInheritanceGraph(ol); - break; - case LayoutDocEntry::ClassCollaborationGraph: - writeCollaborationGraph(ol); - break; - case LayoutDocEntry::ClassAllMembersLink: + case LayoutDocEntry::ClassInheritanceGraph: + writeInheritanceGraph(ol); + break; + case LayoutDocEntry::ClassCollaborationGraph: + writeCollaborationGraph(ol); + break; + case LayoutDocEntry::ClassAllMembersLink: //writeAllMembersLink(ol); // this is now part of the summary links break; - case LayoutDocEntry::MemberDeclStart: + case LayoutDocEntry::MemberDeclStart: startMemberDeclarations(ol); - break; - case LayoutDocEntry::MemberGroups: + break; + case LayoutDocEntry::MemberGroups: writeMemberGroups(ol); break; - case LayoutDocEntry::MemberDecl: + case LayoutDocEntry::MemberDecl: { LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; writeMemberDeclarations(ol,lmd->type,lmd->title(lang),lmd->subtitle(lang)); } - break; - case LayoutDocEntry::ClassNestedClasses: + break; + case LayoutDocEntry::ClassNestedClasses: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeNestedClasses(ol,ls->title(lang)); } break; - case LayoutDocEntry::MemberDeclEnd: + case LayoutDocEntry::MemberDeclEnd: endMemberDeclarations(ol); break; - case LayoutDocEntry::DetailedDesc: + case LayoutDocEntry::DetailedDesc: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeDetailedDescription(ol,pageType,exampleFlag,ls->title(lang)); } - break; - case LayoutDocEntry::MemberDefStart: + break; + case LayoutDocEntry::MemberDefStart: startMemberDocumentation(ol); - break; + break; case LayoutDocEntry::ClassInlineClasses: writeInlineClasses(ol); break; - case LayoutDocEntry::MemberDef: + case LayoutDocEntry::MemberDef: { LayoutDocEntryMemberDef *lmd = (LayoutDocEntryMemberDef*)lde; writeMemberDocumentation(ol,lmd->type,lmd->title(lang)); } - break; - case LayoutDocEntry::MemberDefEnd: + break; + case LayoutDocEntry::MemberDefEnd: endMemberDocumentation(ol); break; - case LayoutDocEntry::ClassUsedFiles: + case LayoutDocEntry::ClassUsedFiles: showUsedFiles(ol); break; - case LayoutDocEntry::AuthorSection: + case LayoutDocEntry::AuthorSection: writeAuthorSection(ol); break; case LayoutDocEntry::NamespaceNestedNamespaces: @@ -1971,16 +1981,16 @@ void ClassDef::writeDocumentationContents(OutputList &ol,const QCString & /*page case LayoutDocEntry::FileConstantGroups: case LayoutDocEntry::FileIncludes: case LayoutDocEntry::FileIncludeGraph: - case LayoutDocEntry::FileIncludedByGraph: + case LayoutDocEntry::FileIncludedByGraph: case LayoutDocEntry::FileSourceLink: case LayoutDocEntry::FileInlineClasses: - case LayoutDocEntry::GroupClasses: - case LayoutDocEntry::GroupInlineClasses: + case LayoutDocEntry::GroupClasses: + case LayoutDocEntry::GroupInlineClasses: case LayoutDocEntry::GroupNamespaces: - case LayoutDocEntry::GroupDirs: - case LayoutDocEntry::GroupNestedGroups: + case LayoutDocEntry::GroupDirs: + case LayoutDocEntry::GroupNestedGroups: case LayoutDocEntry::GroupFiles: - case LayoutDocEntry::GroupGraph: + case LayoutDocEntry::GroupGraph: case LayoutDocEntry::GroupPageDocs: case LayoutDocEntry::DirSubDirs: case LayoutDocEntry::DirFiles: @@ -1991,7 +2001,7 @@ void ClassDef::writeDocumentationContents(OutputList &ol,const QCString & /*page } } - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) + if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { writeDocAnchorsToTagFile(); Doxygen::tagFile << " </compound>" << endl; @@ -2003,12 +2013,12 @@ QCString ClassDef::title() const { QCString pageTitle; SrcLangExt lang = getLanguage(); - + if (lang==SrcLangExt_Fortran) { pageTitle = theTranslator->trCompoundReferenceFortran(displayName(), m_impl->compType, - m_impl->tempArgs != 0); + m_impl->tempArgs != 0); } else if (lang==SrcLangExt_VHDL) { @@ -2042,8 +2052,8 @@ void ClassDef::writeDocumentation(OutputList &ol) //static bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN"); //static bool vhdlOpt = Config_getBool("OPTIMIZE_OUTPUT_VHDL"); QCString pageTitle = title(); - - startFile(ol,getOutputFileBase(),name(),pageTitle,HLI_ClassVisible,!generateTreeView); + + startFile(ol,getOutputFileBase(),name(),pageTitle,HLI_ClassVisible,!generateTreeView); if (!generateTreeView) { if (getOuterScope()!=Doxygen::globalScope) @@ -2059,7 +2069,7 @@ void ClassDef::writeDocumentation(OutputList &ol) addGroupListToTitle(ol,this); endTitle(ol,getOutputFileBase(),displayName()); writeDocumentationContents(ol,pageTitle); - + endFileWithNavPath(this,ol); if (Config_getBool("SEPARATE_MEMBER_PAGES")) @@ -2076,7 +2086,7 @@ void ClassDef::writeMemberPages(OutputList &ol) ol.pushGeneratorState(); ol.disableAllBut(OutputGenerator::Html); - + QListIterator<MemberList> mli(m_impl->memberLists); MemberList *ml; for (mli.toFirst();(ml=mli.current());++mli) @@ -2177,7 +2187,7 @@ void ClassDef::writeMemberList(OutputList &ol) QCString memListFile = getMemberListFileName(); startFile(ol,memListFile,memListFile,theTranslator->trMemberList(), - HLI_ClassVisible,!generateTreeView,getOutputFileBase()); + HLI_ClassVisible,!generateTreeView,getOutputFileBase()); if (!generateTreeView) { if (getOuterScope()!=Doxygen::globalScope) @@ -2195,13 +2205,13 @@ void ClassDef::writeMemberList(OutputList &ol) ol.writeObjectLink(getReference(),getOutputFileBase(),anchor(),displayName()); ol.parseText(theTranslator->trIncludingInheritedMembers()); ol.endParagraph(); - + //ol.startItemList(); ol.writeString("<table class=\"directory\">\n"); - + int idx=0; //MemberNameInfo *mni=m_impl->allMemberNameInfoList->first(); - MemberNameInfoSDict::Iterator mnii(*m_impl->allMemberNameInfoSDict); + MemberNameInfoSDict::Iterator mnii(*m_impl->allMemberNameInfoSDict); MemberNameInfo *mni; for (mnii.toFirst();(mni=mnii.current());++mnii) { @@ -2212,14 +2222,14 @@ void ClassDef::writeMemberList(OutputList &ol) ClassDef *cd=md->getClassDef(); Protection prot = mi->prot; Specifier virt=md->virtualness(); - + //printf("%s: Member %s of class %s md->protection()=%d mi->prot=%d prot=%d inherited=%d\n", // name().data(),md->name().data(),cd->name().data(),md->protection(),mi->prot,prot,mi->inherited); if (cd && !md->name().isEmpty() && md->name()[0]!='@') { bool memberWritten=FALSE; - if (cd->isLinkable() && md->isLinkable()) + if (cd->isLinkable() && md->isLinkable()) // create a link to the documentation { QCString name=mi->ambiguityResolutionScope+md->name(); @@ -2255,7 +2265,7 @@ void ClassDef::writeMemberList(OutputList &ol) md->anchor(),name); if ( md->isFunction() || md->isSignal() || md->isSlot() || - (md->isFriend() && md->argsString())) + (md->isFriend() && md->argsString())) ol.docify(md->argsString()); else if (md->isEnumerate()) ol.parseText(" "+theTranslator->trEnumName()); @@ -2271,9 +2281,9 @@ void ClassDef::writeMemberList(OutputList &ol) memberWritten=TRUE; } else if (!cd->isArtificial() && - !Config_getBool("HIDE_UNDOC_MEMBERS") && - (protectionLevelVisible(md->protection()) || md->isFriend()) - ) // no documentation, + !Config_getBool("HIDE_UNDOC_MEMBERS") && + (protectionLevelVisible(md->protection()) || md->isFriend()) + ) // no documentation, // generate link to the class instead. { //ol.writeListItem(); @@ -2298,7 +2308,7 @@ void ClassDef::writeMemberList(OutputList &ol) ol.endBold(); if (!md->isObjCMethod()) { - if ( md->isFunction() || md->isSignal() || md->isSlot() ) + if ( md->isFunction() || md->isSignal() || md->isSlot() ) ol.docify(md->argsString()); else if (md->isEnumerate()) ol.parseText(" "+theTranslator->trEnumName()); @@ -2333,15 +2343,15 @@ void ClassDef::writeMemberList(OutputList &ol) ol.writeObjectLink(cd->getReference(), cd->getOutputFileBase(), cd->anchor(), - md->category() ? - md->category()->displayName() : + md->category() ? + md->category()->displayName() : cd->displayName()); ol.writeString("</td>"); ol.writeString("<td class=\"entry\">"); } SrcLangExt lang = md->getLanguage(); if ( - (prot!=Public || (virt!=Normal && getLanguage()!=SrcLangExt_ObjC) || + (prot!=Public || (virt!=Normal && getLanguage()!=SrcLangExt_ObjC) || md->isFriend() || md->isRelated() || md->isExplicit() || md->isMutable() || (md->isInline() && Config_getBool("INLINE_INFO")) || md->isSignal() || md->isSlot() || @@ -2353,7 +2363,7 @@ void ClassDef::writeMemberList(OutputList &ol) { ol.writeString("<span class=\"mlabel\">"); QStrList sl; - if (lang==SrcLangExt_VHDL) + if (lang==SrcLangExt_VHDL) { sl.append(VhdlDocGen::trVhdlType(md->getMemberSpecifiers())); //append vhdl type } @@ -2361,14 +2371,14 @@ void ClassDef::writeMemberList(OutputList &ol) else if (md->isRelated()) sl.append("related"); else { - if (Config_getBool("INLINE_INFO") && md->isInline()) + if (Config_getBool("INLINE_INFO") && md->isInline()) sl.append("inline"); if (md->isExplicit()) sl.append("explicit"); if (md->isMutable()) sl.append("mutable"); if (prot==Protected) sl.append("protected"); else if (prot==Private) sl.append("private"); else if (prot==Package) sl.append("package"); - if (virt==Virtual && getLanguage()!=SrcLangExt_ObjC) + if (virt==Virtual && getLanguage()!=SrcLangExt_ObjC) sl.append("virtual"); else if (virt==Pure) sl.append("pure virtual"); if (md->isStatic()) sl.append("static"); @@ -2408,7 +2418,7 @@ void ClassDef::writeMemberList(OutputList &ol) //ol.endItemList(); ol.writeString("</table>"); - + endFile(ol); ol.popGeneratorState(); } @@ -2438,7 +2448,7 @@ bool ClassDef::addExample(const char *anchor,const char *nameStr, // returns TRUE if this class is used in an example bool ClassDef::hasExamples() { - if (m_impl->exampleSDict==0) + if (m_impl->exampleSDict==0) return FALSE; else return m_impl->exampleSDict->count()>0; @@ -2449,7 +2459,7 @@ void ClassDef::setTemplateArguments(ArgumentList *al) { if (al==0) return; if (!m_impl->tempArgs) delete m_impl->tempArgs; // delete old list if needed - m_impl->tempArgs=new ArgumentList; + m_impl->tempArgs=new ArgumentList; ArgumentListIterator ali(*al); Argument *a; for (;(a=ali.current());++ali) @@ -2472,12 +2482,12 @@ void ClassDef::setTypeConstraints(ArgumentList *al) } /*! Returns \c TRUE iff this class or a class inheriting from this class - * is \e not defined in an external tag file. + * is \e not defined in an external tag file. */ bool ClassDef::hasNonReferenceSuperClass() { - bool found=!isReference() && isLinkableInProject() && !isHidden(); - if (found) + bool found=!isReference() && isLinkableInProject() && !isHidden(); + if (found) { return TRUE; // we're done if this class is not a reference } @@ -2488,7 +2498,7 @@ bool ClassDef::hasNonReferenceSuperClass() { ClassDef *bcd=bcli.current()->classDef; // recurse into the super class branch - found = found || bcd->hasNonReferenceSuperClass(); + found = found || bcd->hasNonReferenceSuperClass(); if (!found) { // look for template instances that might have non-reference super classes @@ -2508,7 +2518,7 @@ bool ClassDef::hasNonReferenceSuperClass() return found; } -/*! called from MemberDef::writeDeclaration() to (recusively) write the +/*! called from MemberDef::writeDeclaration() to (recusively) write the * definition of an anonymous struct, union or class. */ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup, @@ -2524,7 +2534,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup, if (ri==-1) ri=name().length(); QCString cn=name().right(name().length()-ri-2); if (!cn.isEmpty() && cn.at(0)!='@' && md) - { + { if (cn.right(2)=="-p" /*|| cn.right(2)=="-g"*/) { cn = cn.left(cn.length()-2); @@ -2542,7 +2552,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup, } } ol.docify(" {"); - ol.endMemberItem(); + ol.endMemberItem(); // write user defined member groups if (m_impl->memberGroupSDict) @@ -2571,7 +2581,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup, /*! a link to this class is possible within this project */ bool ClassDef::isLinkableInProject() const -{ +{ static bool extractLocal = Config_getBool("EXTRACT_LOCAL_CLASSES"); static bool extractStatic = Config_getBool("EXTRACT_STATIC"); static bool hideUndoc = Config_getBool("HIDE_UNDOC_CLASSES"); @@ -2586,7 +2596,7 @@ bool ClassDef::isLinkableInProject() const name().find('@')==-1 && /* not anonymous */ protectionLevelVisible(m_impl->prot) && /* private/internal */ (!m_impl->isLocal || extractLocal) && /* local */ - (hasDocumentation() || !hideUndoc) && /* documented */ + (hasDocumentation() || !hideUndoc) && /* documented */ (!m_impl->isStatic || extractStatic) && /* static */ !isReference(); /* not an external reference */ } @@ -2606,8 +2616,8 @@ bool ClassDef::isLinkable() const /*! the class is visible in a class diagram, or class hierarchy */ -bool ClassDef::isVisibleInHierarchy() -{ +bool ClassDef::isVisibleInHierarchy() +{ static bool allExternals = Config_getBool("ALLEXTERNALS"); static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES"); static bool extractStatic = Config_getBool("EXTRACT_STATIC"); @@ -2620,10 +2630,10 @@ bool ClassDef::isVisibleInHierarchy() /*!isArtificial() &&*/ // 1.8.2: allowed these to appear // and not privately inherited protectionLevelVisible(m_impl->prot) && - // documented or shown anyway or documentation is external - (hasDocumentation() || - !hideUndocClasses || - (m_impl->templateMaster && m_impl->templateMaster->hasDocumentation()) || + // documented or shown anyway or documentation is external + (hasDocumentation() || + !hideUndocClasses || + (m_impl->templateMaster && m_impl->templateMaster->hasDocumentation()) || isReference() ) && // is not part of an unnamed namespace or shown anyway @@ -2637,7 +2647,7 @@ bool ClassDef::hasDocumentation() const //---------------------------------------------------------------------- // recursive function: -// returns TRUE iff class definition `bcd' represents an (in)direct base +// returns TRUE iff class definition `bcd' represents an (in)direct base // class of class definition `cd'. bool ClassDef::isBaseClass(ClassDef *bcd, bool followInstances,int level) @@ -2659,9 +2669,9 @@ bool ClassDef::isBaseClass(ClassDef *bcd, bool followInstances,int level) ClassDef *ccd=bcli.current()->classDef; if (!followInstances && ccd->templateMaster()) ccd=ccd->templateMaster(); //printf("isBaseClass() baseclass %s\n",ccd->name().data()); - if (ccd==bcd) + if (ccd==bcd) found=TRUE; - else + else found=ccd->isBaseClass(bcd,followInstances,level+1); } } @@ -2684,9 +2694,9 @@ bool ClassDef::isSubClass(ClassDef *cd,int level) for ( ; bcli.current() && !found ; ++bcli) { ClassDef *ccd=bcli.current()->classDef; - if (ccd==cd) + if (ccd==cd) found=TRUE; - else + else found=ccd->isSubClass(cd,level+1); } } @@ -2702,8 +2712,8 @@ static bool isStandardFunc(MemberDef *md) md->isDestructor(); // destructor } -/*! - * recusively merges the `all members' lists of a class base +/*! + * recusively merges the `all members' lists of a class base * with that of this class. Must only be called for classes without * subclasses! */ @@ -2727,7 +2737,7 @@ void ClassDef::mergeMembers() BaseClassDef *bcd; for ( ; (bcd=bcli.current()) ; ++bcli ) { - ClassDef *bClass=bcd->classDef; + ClassDef *bClass=bcd->classDef; // merge the members in the base class of this inheritance branch first bClass->mergeMembers(); @@ -2746,10 +2756,10 @@ void ClassDef::mergeMembers() if (dstMnd!=0 && (dstMni=dstMnd->find(srcMni->memberName()))) // a member with that name is already in the class. // the member may hide or reimplement the one in the sub class - // or there may be another path to the base class that is already + // or there may be another path to the base class that is already // visited via another branch in the class hierarchy. { - MemberNameInfoIterator srcMnii(*srcMni); + MemberNameInfoIterator srcMnii(*srcMni); MemberInfo *srcMi; for ( ; (srcMi=srcMnii.current()) ; ++srcMnii ) { @@ -2757,7 +2767,7 @@ void ClassDef::mergeMembers() bool found=FALSE; bool ambigue=FALSE; bool hidden=FALSE; - MemberNameInfoIterator dstMnii(*dstMni); + MemberNameInfoIterator dstMnii(*dstMni); MemberInfo *dstMi; ClassDef *srcCd = srcMd->getClassDef(); for ( ; (dstMi=dstMnii.current()) && !found; ++dstMnii ) @@ -2767,7 +2777,7 @@ void ClassDef::mergeMembers() { ClassDef *dstCd = dstMd->getClassDef(); //printf(" Is %s a base class of %s?\n",srcCd->name().data(),dstCd->name().data()); - if (srcCd==dstCd || dstCd->isBaseClass(srcCd,TRUE)) + if (srcCd==dstCd || dstCd->isBaseClass(srcCd,TRUE)) // member is in the same or a base class { ArgumentList *srcAl = srcMd->argumentList(); @@ -2799,18 +2809,18 @@ void ClassDef::mergeMembers() } else // same members { - // do not add if base class is virtual or + // do not add if base class is virtual or // if scope paths are equal or // if base class is an interface (and thus implicitly virtual). //printf("same member found srcMi->virt=%d dstMi->virt=%d\n",srcMi->virt,dstMi->virt); if ((srcMi->virt!=Normal && dstMi->virt!=Normal) || bClass->name()+sep+srcMi->scopePath == dstMi->scopePath || dstMd->getClassDef()->compoundType()==Interface - ) + ) { found=TRUE; } - else // member can be reached via multiple paths in the + else // member can be reached via multiple paths in the // inheritance tree { //printf("$$ Existing member %s %s add scope %s\n", @@ -2832,10 +2842,10 @@ void ClassDef::mergeMembers() // TODO: fix the case where a member is hidden by inheritance // of a member with the same name but with another prototype, - // while there is more than one path to the member in the + // while there is more than one path to the member in the // base class due to multiple inheritance. In this case - // it seems that the member is not reachable by prefixing a - // scope name either (according to my compiler). Currently, + // it seems that the member is not reachable by prefixing a + // scope name either (according to my compiler). Currently, // this case is shown anyway. if (!found && srcMd->protection()!=Private && !srcMd->isFriend()) { @@ -2890,10 +2900,10 @@ void ClassDef::mergeMembers() } else // base class has a member that is not in the sub class => copy { - // create a deep copy of the list (only the MemberInfo's will be + // create a deep copy of the list (only the MemberInfo's will be // copied, not the actual MemberDef's) MemberNameInfo *newMni = 0; - newMni = new MemberNameInfo(srcMni->memberName()); + newMni = new MemberNameInfo(srcMni->memberName()); // copy the member(s) from the base to the sub class MemberNameInfoIterator mnii(*srcMni); @@ -3000,7 +3010,7 @@ void ClassDef::mergeCategory(ClassDef *category) } // make methods private for categories defined in the .m file //printf("%s::mergeCategory makePrivate=%d\n",name().data(),makePrivate); - + MemberNameInfoSDict *srcMnd = category->memberNameInfoSDict(); MemberNameInfoSDict *dstMnd = m_impl->allMemberNameInfoSDict; @@ -3019,7 +3029,7 @@ void ClassDef::mergeCategory(ClassDef *category) //if (dstMi) //{ // Protection prot = dstMi->prot; - // if (makePrivate || isExtension) + // if (makePrivate || isExtension) // { // prot = Private; // removeMemberFromLists(dstMi->memberDef); @@ -3039,7 +3049,7 @@ void ClassDef::mergeCategory(ClassDef *category) //printf("New member %s\n",srcMni->memberName()); // create a deep copy of the list MemberNameInfo *newMni = 0; - newMni = new MemberNameInfo(srcMni->memberName()); + newMni = new MemberNameInfo(srcMni->memberName()); // copy the member(s) from the category to this class MemberNameInfoIterator mnii(*srcMni); @@ -3079,7 +3089,7 @@ void ClassDef::mergeCategory(ClassDef *category) newMd->setCategory(category); newMd->setCategoryRelation(mi->memberDef); mi->memberDef->setCategoryRelation(newMd); - if (makePrivate || isExtension) + if (makePrivate || isExtension) { newMd->makeImplementationDetail(); } @@ -3102,9 +3112,9 @@ void ClassDef::addUsedClass(ClassDef *cd,const char *accessName, static bool umlLook = Config_getBool("UML_LOOK"); if (prot==Private && !extractPrivate) return; //printf("%s::addUsedClass(%s,%s)\n",name().data(),cd->name().data(),accessName); - if (m_impl->usesImplClassDict==0) + if (m_impl->usesImplClassDict==0) { - m_impl->usesImplClassDict = new UsesClassDict(17); + m_impl->usesImplClassDict = new UsesClassDict(17); m_impl->usesImplClassDict->setAutoDelete(TRUE); } UsesClassDef *ucd=m_impl->usesImplClassDict->find(cd->name()); @@ -3136,9 +3146,9 @@ void ClassDef::addUsedByClass(ClassDef *cd,const char *accessName, static bool umlLook = Config_getBool("UML_LOOK"); if (prot==Private && !extractPrivate) return; //printf("%s::addUsedByClass(%s,%s)\n",name().data(),cd->name().data(),accessName); - if (m_impl->usedByImplClassDict==0) + if (m_impl->usedByImplClassDict==0) { - m_impl->usedByImplClassDict = new UsesClassDict(17); + m_impl->usedByImplClassDict = new UsesClassDict(17); m_impl->usedByImplClassDict->setAutoDelete(TRUE); } UsesClassDef *ucd=m_impl->usedByImplClassDict->find(cd->name()); @@ -3165,8 +3175,8 @@ void ClassDef::addUsedByClass(ClassDef *cd,const char *accessName, #if 0 -/*! Builds up a dictionary of all classes that are used by the state of this - * class (the "implementation"). +/*! Builds up a dictionary of all classes that are used by the state of this + * class (the "implementation"). * Must be called before mergeMembers() is called! */ @@ -3205,7 +3215,7 @@ void ClassDef::determineImplUsageRelation() if (arg->name==usedClassName) // type is a template argument { found=TRUE; - if (m_impl->usesImplClassDict==0) m_impl->usesImplClassDict = new UsesClassDict(257); + if (m_impl->usesImplClassDict==0) m_impl->usesImplClassDict = new UsesClassDict(257); cd = new ClassDef(cd->getDefFileName(),cd->getDefLine(), usedClassName,ClassDef::Class); cd->setIsTemplateBaseClass(count); @@ -3232,12 +3242,12 @@ void ClassDef::determineImplUsageRelation() if (cd==0) cd=getResolvedClass(name()+"::"+usedClassName,0,&templSpec); if (cd==0) cd=getResolvedClass(usedClassName,0,&templSpec); // TODO: also try in-between scopes! //printf("Search for class %s result=%p\n",usedClassName.data(),cd); - if (cd) // class exists + if (cd) // class exists { found=TRUE; - if (m_impl->usesImplClassDict==0) + if (m_impl->usesImplClassDict==0) { - m_impl->usesImplClassDict = new UsesClassDict(257); + m_impl->usesImplClassDict = new UsesClassDict(257); m_impl->usesImplClassDict->setAutoDelete(TRUE); } UsesClassDef *ucd=m_impl->usesImplClassDict->find(cd->name()); @@ -3267,7 +3277,7 @@ void ClassDef::determineImplUsageRelation() for (;(ucd=ucdi.current());++ucdi) { msg(" %s via ",ucd->classDef->name().data()); - QDictIterator<void> dvi(*ucd->accessors); + QDictIterator<void> dvi(*ucd->accessors); const char *s; for (;(s=dvi.currentKey());++dvi) { @@ -3295,9 +3305,9 @@ void ClassDef::addUsedInterfaceClasses(MemberDef *md,const char *typeStr) if (cd==0) cd=getClass(type.mid(i,l)); // TODO: also try in-between scopes! if (cd && cd!=this && !isBaseClass(cd)) { - if (m_impl->usesIntfClassDict==0) + if (m_impl->usesIntfClassDict==0) { - m_impl->usesIntfClassDict = new UsesClassDict(257); + m_impl->usesIntfClassDict = new UsesClassDict(257); } UsesClassDef *ucd=m_impl->usesIntfClassDict->find(cd->name()); if (ucd==0) @@ -3326,7 +3336,7 @@ void ClassDef::determineIntfUsageRelation() for (mnii.toFirst();(mi=mnii.current());++mnii) { MemberDef *md=mi->memberDef; - + // compute the protection level for this member Protection protect=md->protection(); if (mi->prot==Protected) // inherited protection @@ -3334,8 +3344,8 @@ void ClassDef::determineIntfUsageRelation() if (protect==Public) protect=Protected; else if (protect==Protected) protect=Private; } - - if (!md->name().isEmpty() && md->name()[0]!='@' && + + if (!md->name().isEmpty() && md->name()[0]!='@' && (mi->prot!=Private && protect!=Private) ) { @@ -3375,7 +3385,7 @@ QCString ClassDef::compoundTypeString() const case Category: return "category"; case Exception: return "exception"; default: return "unknown"; - } + } } else { @@ -3395,8 +3405,8 @@ QCString ClassDef::compoundTypeString() const } } -QCString ClassDef::getOutputFileBase() const -{ +QCString ClassDef::getOutputFileBase() const +{ if (!Doxygen::generatingXmlOutput) { static bool inlineGroupedClasses = Config_getBool("INLINE_GROUPED_CLASSES"); @@ -3437,36 +3447,36 @@ QCString ClassDef::getOutputFileBase() const else { // normal locally defined class - return convertNameToFile(m_impl->fileName); + return convertNameToFile(m_impl->fileName); } } -QCString ClassDef::getInstanceOutputFileBase() const -{ +QCString ClassDef::getInstanceOutputFileBase() const +{ if (isReference()) { return m_impl->fileName; } else { - return convertNameToFile(m_impl->fileName); + return convertNameToFile(m_impl->fileName); } } -QCString ClassDef::getFileBase() const -{ +QCString ClassDef::getFileBase() const +{ if (m_impl->templateMaster) { return m_impl->templateMaster->getFileBase(); } else { - return m_impl->fileName; + return m_impl->fileName; } } -QCString ClassDef::getSourceFileBase() const -{ +QCString ClassDef::getSourceFileBase() const +{ if (m_impl->templateMaster) { return m_impl->templateMaster->getSourceFileBase(); @@ -3568,7 +3578,7 @@ ClassDef *ClassDef::insertTemplateInstance(const QCString &fileName, int startLine, int startColumn, const QCString &templSpec,bool &freshInstance) { freshInstance = FALSE; - if (m_impl->templateInstances==0) + if (m_impl->templateInstances==0) { m_impl->templateInstances = new QDict<ClassDef>(17); } @@ -3590,7 +3600,7 @@ ClassDef *ClassDef::insertTemplateInstance(const QCString &fileName, ClassDef *ClassDef::getVariableInstance(const char *templSpec) { - if (m_impl->variableInstances==0) + if (m_impl->variableInstances==0) { m_impl->variableInstances = new QDict<ClassDef>(17); m_impl->variableInstances->setAutoDelete(TRUE); @@ -3746,7 +3756,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters( QCString clName = className(); //bool isGeneric = getLanguage()==SrcLangExt_CSharp; - //if (isGeneric && clName.right(2)=="-g") + //if (isGeneric && clName.right(2)=="-g") //{ // clName = clName.left(clName.length()-2); //} @@ -3928,7 +3938,7 @@ void ClassDef::sortMemberLists() * For protected inheritance, both protected and public members of the * base class should be joined in the protected member section. * - * For private inheritance, both protected and public members of the + * For private inheritance, both protected and public members of the * base class should be joined in the private member section. */ static void convertProtectionLevel( @@ -3948,9 +3958,9 @@ static void convertProtectionLevel( // the private section of the base class should not // be visible { - case MemberListType_priMethods: - case MemberListType_priStaticMethods: - case MemberListType_priSlots: + case MemberListType_priMethods: + case MemberListType_priStaticMethods: + case MemberListType_priSlots: case MemberListType_priAttribs: case MemberListType_priStaticAttribs: case MemberListType_priTypes: @@ -3967,15 +3977,15 @@ static void convertProtectionLevel( // both the public and protected members are shown // as protected { - case MemberListType_pubMethods: - case MemberListType_pubStaticMethods: - case MemberListType_pubSlots: - case MemberListType_pubAttribs: - case MemberListType_pubStaticAttribs: - case MemberListType_pubTypes: - case MemberListType_priMethods: - case MemberListType_priStaticMethods: - case MemberListType_priSlots: + case MemberListType_pubMethods: + case MemberListType_pubStaticMethods: + case MemberListType_pubSlots: + case MemberListType_pubAttribs: + case MemberListType_pubStaticAttribs: + case MemberListType_pubTypes: + case MemberListType_priMethods: + case MemberListType_priStaticMethods: + case MemberListType_priSlots: case MemberListType_priAttribs: case MemberListType_priStaticAttribs: case MemberListType_priTypes: @@ -3983,25 +3993,25 @@ static void convertProtectionLevel( *outListType2=-1; break; - case MemberListType_proMethods: + case MemberListType_proMethods: *outListType2=MemberListType_pubMethods; break; - case MemberListType_proStaticMethods: + case MemberListType_proStaticMethods: *outListType2=MemberListType_pubStaticMethods; break; - case MemberListType_proSlots: + case MemberListType_proSlots: *outListType2=MemberListType_pubSlots; break; - case MemberListType_proAttribs: + case MemberListType_proAttribs: *outListType2=MemberListType_pubAttribs; break; - case MemberListType_proStaticAttribs: + case MemberListType_proStaticAttribs: *outListType2=MemberListType_pubStaticAttribs; break; - case MemberListType_proTypes: + case MemberListType_proTypes: *outListType2=MemberListType_pubTypes; break; - default: + default: break; } } @@ -4011,15 +4021,15 @@ static void convertProtectionLevel( // both the public and protected members are shown // as private { - case MemberListType_pubMethods: - case MemberListType_pubStaticMethods: - case MemberListType_pubSlots: - case MemberListType_pubAttribs: - case MemberListType_pubStaticAttribs: - case MemberListType_pubTypes: - case MemberListType_proMethods: - case MemberListType_proStaticMethods: - case MemberListType_proSlots: + case MemberListType_pubMethods: + case MemberListType_pubStaticMethods: + case MemberListType_pubSlots: + case MemberListType_pubAttribs: + case MemberListType_pubStaticAttribs: + case MemberListType_pubTypes: + case MemberListType_proMethods: + case MemberListType_proStaticMethods: + case MemberListType_proSlots: case MemberListType_proAttribs: case MemberListType_proStaticAttribs: case MemberListType_proTypes: @@ -4027,7 +4037,7 @@ static void convertProtectionLevel( *outListType2=-1; break; - case MemberListType_priMethods: + case MemberListType_priMethods: if (extractPrivate) { *outListType1=MemberListType_pubMethods; @@ -4039,7 +4049,7 @@ static void convertProtectionLevel( *outListType2=-1; } break; - case MemberListType_priStaticMethods: + case MemberListType_priStaticMethods: if (extractPrivate) { *outListType1=MemberListType_pubStaticMethods; @@ -4051,7 +4061,7 @@ static void convertProtectionLevel( *outListType2=-1; } break; - case MemberListType_priSlots: + case MemberListType_priSlots: if (extractPrivate) { *outListType1=MemberListType_pubSlots; @@ -4099,7 +4109,7 @@ static void convertProtectionLevel( *outListType2=-1; } break; - default: + default: break; } } @@ -4116,7 +4126,7 @@ int ClassDef::countMemberDeclarations(MemberListType lt,ClassDef *inheritedFrom, MemberList * ml2 = getMemberList((MemberListType)lt2); if (getLanguage()!=SrcLangExt_VHDL) // use specific declarations function { - if (ml) + if (ml) { ml->countDecMembers(); count+=ml->numDecMembers(); @@ -4164,7 +4174,7 @@ int ClassDef::countInheritedDecMembers(MemberListType lt, convertProtectionLevel(lt,ibcd->prot,<1,<2); //printf("%s: convert %d->(%d,%d) prot=%d\n", // icd->name().data(),lt,lt1,lt2,ibcd->prot); - if (visitedClasses->find(icd)==0) + if (visitedClasses->find(icd)==0) { visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance if (lt1!=-1) @@ -4191,7 +4201,7 @@ void ClassDef::getTitleForMemberListType(MemberListType type, if (lde->kind()==LayoutDocEntry::MemberDecl) { LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; - if (lmd->type==type) + if (lmd->type==type) { title = lmd->title(lang); subtitle = lmd->subtitle(lang); @@ -4254,8 +4264,8 @@ int ClassDef::countMembersIncludingGrouped(MemberListType lt, { int count=0; MemberList *ml = getMemberList(lt); - if (ml) - { + if (ml) + { count=ml->countInheritableMembers(inheritedFrom); } //printf("%s:countMembersIncludingGrouped: count=%d\n",name().data(),count); @@ -4265,7 +4275,7 @@ int ClassDef::countMembersIncludingGrouped(MemberListType lt, MemberGroup *mg; for (;(mg=mgli.current());++mgli) { - bool hasOwnSection = !mg->allMembersInSameSection() || + bool hasOwnSection = !mg->allMembersInSameSection() || !m_impl->subGrouping; // group is in its own section if ((additional && hasOwnSection) || (!additional && !hasOwnSection)) { @@ -4307,7 +4317,7 @@ void ClassDef::writeInheritedMemberDeclarations(OutputList &ol, lt2=lt3; } //printf("%s:convert %d->(%d,%d) prot=%d\n",icd->name().data(),lt,lt1,lt2,ibcd->prot); - if (visitedClasses->find(icd)==0) + if (visitedClasses->find(icd)==0) { visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance if (lt1!=-1) @@ -4345,17 +4355,17 @@ void ClassDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QC { //printf("%s::writeMemberDeclarations(%s) ml=%p ml2=%p\n",name().data(),title.data(),ml,ml2); QCString tt = title, st = subTitle; - if (ml) + if (ml) { //printf(" writeDeclaration type=%d count=%d\n",lt,ml->numDecMembers()); - ml->writeDeclarations(ol,this,0,0,0,tt,st,definitionType(),FALSE,showInline,inheritedFrom,lt); + ml->writeDeclarations(ol,this,0,0,0,tt,st,definitionType(),FALSE,showInline,inheritedFrom,lt); tt.resize(0); st.resize(0); } if (ml2) { //printf(" writeDeclaration type=%d count=%d\n",lt2,ml2->numDecMembers()); - ml2->writeDeclarations(ol,this,0,0,0,tt,st,definitionType(),FALSE,showInline,inheritedFrom,lt); + ml2->writeDeclarations(ol,this,0,0,0,tt,st,definitionType(),FALSE,showInline,inheritedFrom,lt); } static bool inlineInheritedMembers = Config_getBool("INLINE_INHERITED_MEMB"); if (!inlineInheritedMembers) // show inherited members as separate lists @@ -4407,91 +4417,91 @@ void ClassDef::writePlainMemberDeclaration(OutputList &ol, { //printf("%s: ClassDef::writePlainMemberDeclaration()\n",name().data()); MemberList * ml = getMemberList(lt); - if (ml) + if (ml) { ml->setInGroup(inGroup); - ml->writePlainDeclarations(ol,this,0,0,0,definitionType(),inheritedFrom,inheritId); + ml->writePlainDeclarations(ol,this,0,0,0,definitionType(),inheritedFrom,inheritId); } } -bool ClassDef::isLocal() const -{ - return m_impl->isLocal; +bool ClassDef::isLocal() const +{ + return m_impl->isLocal; } -ClassSDict *ClassDef::getClassSDict() -{ - return m_impl->innerClasses; +ClassSDict *ClassDef::getClassSDict() +{ + return m_impl->innerClasses; } -ClassDef::CompoundType ClassDef::compoundType() const -{ - return m_impl->compType; -} +ClassDef::CompoundType ClassDef::compoundType() const +{ + return m_impl->compType; +} BaseClassList *ClassDef::baseClasses() const -{ - return m_impl->inherits; +{ + return m_impl->inherits; } BaseClassList *ClassDef::subClasses() const -{ - return m_impl->inheritedBy; +{ + return m_impl->inheritedBy; } MemberNameInfoSDict *ClassDef::memberNameInfoSDict() const -{ - return m_impl->allMemberNameInfoSDict; +{ + return m_impl->allMemberNameInfoSDict; } -Protection ClassDef::protection() const -{ - return m_impl->prot; +Protection ClassDef::protection() const +{ + return m_impl->prot; } -ArgumentList *ClassDef::templateArguments() const -{ - return m_impl->tempArgs; +ArgumentList *ClassDef::templateArguments() const +{ + return m_impl->tempArgs; } NamespaceDef *ClassDef::getNamespaceDef() const -{ - return m_impl->nspace; +{ + return m_impl->nspace; } -FileDef *ClassDef::getFileDef() const -{ - return m_impl->fileDef; +FileDef *ClassDef::getFileDef() const +{ + return m_impl->fileDef; } -QDict<ClassDef> *ClassDef::getTemplateInstances() const -{ - return m_impl->templateInstances; +QDict<ClassDef> *ClassDef::getTemplateInstances() const +{ + return m_impl->templateInstances; } -ClassDef *ClassDef::templateMaster() const -{ - return m_impl->templateMaster; -} +ClassDef *ClassDef::templateMaster() const +{ + return m_impl->templateMaster; +} -bool ClassDef::isTemplate() const -{ - return m_impl->tempArgs!=0; +bool ClassDef::isTemplate() const +{ + return m_impl->tempArgs!=0; } -IncludeInfo *ClassDef::includeInfo() const -{ - return m_impl->incInfo; +IncludeInfo *ClassDef::includeInfo() const +{ + return m_impl->incInfo; } -UsesClassDict *ClassDef::usedImplementationClasses() const -{ - return m_impl->usesImplClassDict; +UsesClassDict *ClassDef::usedImplementationClasses() const +{ + return m_impl->usesImplClassDict; } -UsesClassDict *ClassDef::usedByImplementationClasses() const -{ - return m_impl->usedByImplClassDict; +UsesClassDict *ClassDef::usedByImplementationClasses() const +{ + return m_impl->usedByImplClassDict; } UsesClassDict *ClassDef::usedInterfaceClasses() const @@ -4504,9 +4514,9 @@ bool ClassDef::isTemplateArgument() const return m_impl->isTemplArg; } -bool ClassDef::isAbstract() const -{ - return m_impl->isAbstract || (m_impl->spec&Entry::Abstract); +bool ClassDef::isAbstract() const +{ + return m_impl->isAbstract || (m_impl->spec&Entry::Abstract); } bool ClassDef::isFinal() const @@ -4524,69 +4534,69 @@ bool ClassDef::isPublished() const return m_impl->spec&Entry::Published; } -bool ClassDef::isObjectiveC() const -{ - return getLanguage()==SrcLangExt_ObjC; +bool ClassDef::isObjectiveC() const +{ + return getLanguage()==SrcLangExt_ObjC; } -bool ClassDef::isCSharp() const -{ - return getLanguage()==SrcLangExt_CSharp; +bool ClassDef::isCSharp() const +{ + return getLanguage()==SrcLangExt_CSharp; } -ClassDef *ClassDef::categoryOf() const -{ - return m_impl->categoryOf; +ClassDef *ClassDef::categoryOf() const +{ + return m_impl->categoryOf; } -const QList<MemberList> &ClassDef::getMemberLists() const -{ - return m_impl->memberLists; +const QList<MemberList> &ClassDef::getMemberLists() const +{ + return m_impl->memberLists; } -MemberGroupSDict *ClassDef::getMemberGroupSDict() const -{ - return m_impl->memberGroupSDict; +MemberGroupSDict *ClassDef::getMemberGroupSDict() const +{ + return m_impl->memberGroupSDict; } -void ClassDef::setNamespace(NamespaceDef *nd) -{ - m_impl->nspace = nd; +void ClassDef::setNamespace(NamespaceDef *nd) +{ + m_impl->nspace = nd; } -void ClassDef::setFileDef(FileDef *fd) -{ - m_impl->fileDef=fd; +void ClassDef::setFileDef(FileDef *fd) +{ + m_impl->fileDef=fd; } -void ClassDef::setSubGrouping(bool enabled) -{ - m_impl->subGrouping = enabled; +void ClassDef::setSubGrouping(bool enabled) +{ + m_impl->subGrouping = enabled; } -void ClassDef::setProtection(Protection p) -{ - m_impl->prot=p; +void ClassDef::setProtection(Protection p) +{ + m_impl->prot=p; } -void ClassDef::setIsStatic(bool b) -{ - m_impl->isStatic=b; +void ClassDef::setIsStatic(bool b) +{ + m_impl->isStatic=b; } -void ClassDef::setCompoundType(CompoundType t) -{ - m_impl->compType = t; -} +void ClassDef::setCompoundType(CompoundType t) +{ + m_impl->compType = t; +} -void ClassDef::setTemplateMaster(ClassDef *tm) -{ - m_impl->templateMaster=tm; +void ClassDef::setTemplateMaster(ClassDef *tm) +{ + m_impl->templateMaster=tm; } -void ClassDef::makeTemplateArgument(bool b) -{ - m_impl->isTemplArg = b; +void ClassDef::makeTemplateArgument(bool b) +{ + m_impl->isTemplArg = b; } void ClassDef::setCategoryOf(ClassDef *cd) @@ -4644,7 +4654,7 @@ QCString ClassDef::anchor() const else { // normal locally defined class - anc = convertNameToFile(m_impl->fileName); + anc = convertNameToFile(m_impl->fileName); } } return anc; @@ -4657,12 +4667,12 @@ bool ClassDef::isEmbeddedInOuterScope() const Definition *container = getOuterScope(); - bool containerLinkable = - container && + bool containerLinkable = + container && ( (container==Doxygen::globalScope && getFileDef() && getFileDef()->isLinkableInProject()) || // global class in documented file container->isLinkableInProject() // class in documented scope - ); + ); // inline because of INLINE_GROUPED_CLASSES=YES ? bool b1 = (inlineGroupedClasses && partOfGroups()!=0); // a grouped class @@ -4734,7 +4744,7 @@ bool ClassDef::isExtension() const QCString n = name(); int si = n.find('('); int ei = n.find(')'); - bool b = ei>si && n.mid(si+1,ei-si-1).stripWhiteSpace().isEmpty(); + bool b = ei>si && n.mid(si+1,ei-si-1).stripWhiteSpace().isEmpty(); return b; } @@ -4743,3 +4753,8 @@ const ClassSDict *ClassDef::innerClasses() const return m_impl->innerClasses; } +const FileList &ClassDef::usedFiles() const +{ + return m_impl->files; +} + |