diff options
Diffstat (limited to 'src/filedef.cpp')
-rw-r--r-- | src/filedef.cpp | 69 |
1 files changed, 40 insertions, 29 deletions
diff --git a/src/filedef.cpp b/src/filedef.cpp index 5f62357..f038e2e 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -37,12 +37,13 @@ FileDef::FileDef(const char *p,const char *nm,const char *ref) path=p; filepath=path+nm; filename=nameToFile(nm); - reference=ref; + setReference(ref); memList = new MemberList; classList = new ClassList; includeList = new FileList; defineList = new DefineList; namespaceList = new NamespaceList; + namespaceDict = new NamespaceDict(7); } /*! destroy the file definition */ @@ -52,6 +53,8 @@ FileDef::~FileDef() delete classList; delete includeList; delete defineList; + delete namespaceList; + delete namespaceDict; } /*! Compute the HTML anchor names for all members in the class */ @@ -105,7 +108,7 @@ void FileDef::writeDocumentation(OutputList &ol) bool found=FALSE; while (nd) { - if (nd->isVisibleExt()) + if (nd->name().find('@')==-1) { if (!found) { @@ -115,16 +118,16 @@ void FileDef::writeDocumentation(OutputList &ol) ol.startMemberList(); found=TRUE; } - ol.startMemberItem(); + ol.startMemberItem(FALSE,0); ol.writeString("namespace "); ol.insertMemberAlign(); - if (nd->hasDocumentation()) + if (nd->isLinkable()) { ol.writeObjectLink(nd->getReference(), - nd->getOutputFileBase(), - 0, - nd->name() - ); + nd->getOutputFileBase(), + 0, + nd->name() + ); } else { @@ -132,7 +135,7 @@ void FileDef::writeDocumentation(OutputList &ol) ol.docify(nd->name()); ol.endBold(); } - ol.endMemberItem(); + ol.endMemberItem(FALSE,0,0,FALSE); } nd=namespaceList->next(); } @@ -144,7 +147,7 @@ void FileDef::writeDocumentation(OutputList &ol) bool found=FALSE; while (cd) { - if ( cd->isVisibleExt() ) + if (cd->name().find('@')==-1) { if (!found) { @@ -154,22 +157,23 @@ void FileDef::writeDocumentation(OutputList &ol) ol.startMemberList(); found=TRUE; } - ol.startMemberItem(); + ol.startMemberItem(FALSE,FALSE); switch (cd->compoundType()) { case ClassDef::Class: ol.writeString("class"); break; case ClassDef::Struct: ol.writeString("struct"); break; case ClassDef::Union: ol.writeString("union"); break; + case ClassDef::Interface: ol.writeString("interface"); break; } ol.writeString(" "); ol.insertMemberAlign(); - if (cd->hasDocumentation()) + if (cd->isLinkable()) { ol.writeObjectLink(cd->getReference(), - cd->getOutputFileBase(), - 0, - cd->name() - ); + cd->getOutputFileBase(), + 0, + cd->name() + ); } else { @@ -177,14 +181,14 @@ void FileDef::writeDocumentation(OutputList &ol) ol.docify(cd->name()); ol.endBold(); } - ol.endMemberItem(); + ol.endMemberItem(FALSE,0,0,FALSE); } cd=classList->next(); + if (found) ol.endMemberList(); } - if (found) ol.endMemberList(); } - writeMemberDecs(ol,0,0,this,0,0,memList); + memList->writeDeclarations(ol,0,0,this,0,0); ol.endMemberSections(); //doc=doc.stripWhiteSpace(); @@ -222,7 +226,7 @@ void FileDef::writeDocumentation(OutputList &ol) ol.startGroupHeader(); parseText(ol,theTranslator->trDefineDocumentation()); ol.endGroupHeader(); - writeMemberDocs(ol,memList,name(),MemberDef::Define); + memList->writeDocumentation(ol,name(),MemberDef::Define); } if ( memList->protoCount()>0 ) @@ -231,7 +235,7 @@ void FileDef::writeDocumentation(OutputList &ol) ol.startGroupHeader(); parseText(ol,theTranslator->trFunctionPrototypeDocumentation()); ol.endGroupHeader(); - writeMemberDocs(ol,memList,name(),MemberDef::Prototype); + memList->writeDocumentation(ol,name(),MemberDef::Prototype); } if ( memList->typedefCount()>0 ) @@ -240,7 +244,7 @@ void FileDef::writeDocumentation(OutputList &ol) ol.startGroupHeader(); parseText(ol,theTranslator->trTypedefDocumentation()); ol.endGroupHeader(); - writeMemberDocs(ol,memList,name(),MemberDef::Typedef); + memList->writeDocumentation(ol,name(),MemberDef::Typedef); } if ( memList->enumCount()>0 ) @@ -249,7 +253,7 @@ void FileDef::writeDocumentation(OutputList &ol) ol.startGroupHeader(); parseText(ol,theTranslator->trEnumerationTypeDocumentation()); ol.endGroupHeader(); - writeMemberDocs(ol,memList,name(),MemberDef::Enumeration); + memList->writeDocumentation(ol,name(),MemberDef::Enumeration); } if ( memList->enumValueCount()>0 ) @@ -258,16 +262,19 @@ void FileDef::writeDocumentation(OutputList &ol) ol.startGroupHeader(); parseText(ol,theTranslator->trEnumerationValueDocumentation()); ol.endGroupHeader(); - writeMemberDocs(ol,memList,name(),MemberDef::EnumValue); + memList->writeDocumentation(ol,name(),MemberDef::EnumValue); } - if ( memList->funcCount()>0 ) + int cnt; + if ( (cnt=memList->funcCount()>0) ) { ol.writeRuler(); ol.startGroupHeader(); - parseText(ol,theTranslator->trFunctionDocumentation()); + QCString cntString; + cntString.sprintf(" (%d)",cnt); + parseText(ol,theTranslator->trFunctionDocumentation()+cntString); ol.endGroupHeader(); - writeMemberDocs(ol,memList,name(),MemberDef::Function); + memList->writeDocumentation(ol,name(),MemberDef::Function); } if ( memList->varCount()>0 ) @@ -276,7 +283,7 @@ void FileDef::writeDocumentation(OutputList &ol) ol.startGroupHeader(); parseText(ol,theTranslator->trVariableDocumentation()); ol.endGroupHeader(); - writeMemberDocs(ol,memList,name(),MemberDef::Variable); + memList->writeDocumentation(ol,name(),MemberDef::Variable); } // write Author section (Man only) @@ -304,7 +311,11 @@ void FileDef::insertClass(ClassDef *cd) /*! Adds namespace definition \a nd to the list of all compounds of this file */ void FileDef::insertNamespace(NamespaceDef *nd) { - namespaceList->append(nd); + if (!nd->name().isEmpty() && namespaceDict->find(nd->name())==0) + { + namespaceList->append(nd); + namespaceDict->insert(nd->name(),nd); + } } //----------------------------------------------------------------------------- |