📄 filedef.cpp
字号:
//int dl=doc.length(); if ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) || !documentation().isEmpty() /* || startBodyLine!=-1 */ ) { ol.writeRuler(); ol.pushGeneratorState(); //bool latexOn = ol.isEnabled(OutputGenerator::Latex); //if (latexOn) ol.disable(OutputGenerator::Latex); ol.disable(OutputGenerator::Latex); ol.disable(OutputGenerator::RTF); ol.writeAnchor(0,"_details"); //if (latexOn) ol.enable(OutputGenerator::Latex); ol.popGeneratorState(); ol.startGroupHeader(); parseText(ol,theTranslator->trDetailedDescription()); ol.endGroupHeader(); if (!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) { ol+=briefOutput; } if (!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF") && !documentation().isEmpty()) { ol.newParagraph(); } if (!documentation().isEmpty()) { //if (doc.at(dl-1)!='.' && doc.at(dl-1)!='!' && doc.at(dl-1)!='?') // doc+='.'; parseDoc(ol,filepath,1,0,0,documentation()+"\n"); } //printf("Writing source ref for file %s\n",name().data()); if (Config_getBool("SOURCE_BROWSER")) { ol.newParagraph(); QCString refText = theTranslator->trDefinedInSourceFile(); int fileMarkerPos = refText.find("@0"); if (fileMarkerPos!=-1) // should always pass this. { parseText(ol,refText.left(fileMarkerPos)); //text left from marker 1 ol.writeObjectLink(0,getSourceFileBase(), 0,name()); parseText(ol,refText.right( refText.length()-fileMarkerPos-2)); // text right from marker 2 } } } docDefineMembers.writeDocumentation(ol,name(),this, theTranslator->trDefineDocumentation()); docProtoMembers.writeDocumentation(ol,name(),this, theTranslator->trFunctionPrototypeDocumentation()); docTypedefMembers.writeDocumentation(ol,name(),this, theTranslator->trTypedefDocumentation()); docEnumMembers.writeDocumentation(ol,name(),this, theTranslator->trEnumerationTypeDocumentation()); docFuncMembers.writeDocumentation(ol,name(),this, theTranslator->trFunctionDocumentation()); docVarMembers.writeDocumentation(ol,name(),this, theTranslator->trVariableDocumentation()); // write Author section (Man only) ol.disableAllBut(OutputGenerator::Man); ol.startGroupHeader(); parseText(ol,theTranslator->trAuthor(TRUE,TRUE)); ol.endGroupHeader(); parseText(ol,theTranslator->trGeneratedAutomatically(Config_getString("PROJECT_NAME"))); ol.enableAll(); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { writeDocAnchorsToTagFile(); Doxygen::tagFile << " </compound>" << endl; } endFile(ol);}/*! Write a source listing of this file to the output */void FileDef::writeSource(OutputList &ol){ ol.disableAllBut(OutputGenerator::Html); startFile(ol,getSourceFileBase(),0,docname+" Source File"); startTitle(ol,0); parseText(ol,docname); endTitle(ol,0,0); if (isLinkable()) { ol.startTextLink(getOutputFileBase(),0); parseText(ol,theTranslator->trGotoDocumentation()); ol.endTextLink(); } initParseCodeContext(); ol.startCodeFragment(); //if (name().left(9)=="memory.c") //{ parseCode(ol,0, fileToString(absFilePath(),Config_getBool("FILTER_SOURCE_FILES")), FALSE,0,this ); //} ol.endCodeFragment(); endFile(ol); ol.enableAll();}void FileDef::addMembersToMemberGroup(){ ::addMembersToMemberGroup(&decDefineMembers,memberGroupDict,memberGroupList); ::addMembersToMemberGroup(&decProtoMembers,memberGroupDict,memberGroupList); ::addMembersToMemberGroup(&decTypedefMembers,memberGroupDict,memberGroupList); ::addMembersToMemberGroup(&decEnumMembers,memberGroupDict,memberGroupList); ::addMembersToMemberGroup(&decFuncMembers,memberGroupDict,memberGroupList); ::addMembersToMemberGroup(&decVarMembers,memberGroupDict,memberGroupList);}/*! Adds member definition \a md to the list of all members of this file */void FileDef::insertMember(MemberDef *md){ //printf("%s:FileDef::insertMember(%s)\n",name().data(),md->name().data()); allMemberList.append(md); bool sortMemberDocs = Config_getBool("SORT_MEMBER_DOCS"); switch(md->memberType()) { case MemberDef::Variable: case MemberDef::Property: decVarMembers.append(md); if (sortMemberDocs) docVarMembers.inSort(md); else docVarMembers.append(md); break; case MemberDef::Function: decFuncMembers.append(md); if (sortMemberDocs) docFuncMembers.inSort(md); else docFuncMembers.append(md); break; case MemberDef::Typedef: decTypedefMembers.append(md); if (sortMemberDocs) docTypedefMembers.inSort(md); else docTypedefMembers.append(md); break; case MemberDef::Enumeration: decEnumMembers.append(md); if (sortMemberDocs) docEnumMembers.inSort(md); else docEnumMembers.append(md); break; case MemberDef::EnumValue: // enum values are shown inside their enums break; case MemberDef::Prototype: decProtoMembers.append(md); if (sortMemberDocs) docProtoMembers.inSort(md); else docProtoMembers.append(md); break; case MemberDef::Define: decDefineMembers.append(md); if (sortMemberDocs) docDefineMembers.inSort(md); else docDefineMembers.append(md); break; default: err("FileDef::insertMembers(): " "member `%s' with class scope `%s' inserted in file scope `%s'!\n", md->name().data(), md->getClassDef() ? md->getClassDef()->name().data() : "", name().data()); } //addMemberToGroup(md,groupId);}/*! Adds compound definition \a cd to the list of all compounds of this file */void FileDef::insertClass(ClassDef *cd){ if (Config_getBool("SORT_MEMBER_DOCS")) classSDict->inSort(cd->name(),cd); else classSDict->append(cd->name(),cd);}/*! Adds namespace definition \a nd to the list of all compounds of this file */void FileDef::insertNamespace(NamespaceDef *nd){ if (!nd->name().isEmpty() && namespaceDict->find(nd->name())==0) { if (Config_getBool("SORT_MEMBER_DOCS")) namespaceList->inSort(nd); else namespaceList->append(nd); namespaceDict->insert(nd->name(),nd); }}void FileDef::addSourceRef(int line,Definition *d,MemberDef *md){ if (d) { if (srcDefDict==0) srcDefDict = new QIntDict<Definition>(257); if (srcMemberDict==0) srcMemberDict = new QIntDict<MemberDef>(257); srcDefDict->insert(line,d); if (md) srcMemberDict->insert(line,md); //printf("Adding member %s with anchor %s at line %d to file %s\n", // d->name().data(),anchor,line,name().data()); }}Definition *FileDef::getSourceDefinition(int lineNr){ Definition *result=0; if (srcDefDict) { result = srcDefDict->find(lineNr); } return result;}MemberDef *FileDef::getSourceMember(int lineNr){ MemberDef *result=0; if (srcMemberDict) { result = srcMemberDict->find(lineNr); } return result;}void FileDef::addUsingDirective(NamespaceDef *nd){ if (usingDirList==0) { usingDirList = new NamespaceList; } usingDirList->append(nd);}void FileDef::addUsingDeclaration(ClassDef *cd){ if (usingDeclList==0) { usingDeclList = new ClassList; } usingDeclList->append(cd);}void FileDef::addIncludeDependency(FileDef *fd,const char *incName,bool local){ //printf("FileDef::addIncludeDependency(%p,%s,%d)\n",fd,incName,local); QCString iName = fd ? fd->absFilePath().data() : incName; if (!iName.isEmpty() && includeDict->find(iName)==0) { IncludeInfo *ii = new IncludeInfo; ii->fileDef = fd; ii->includeName = incName; ii->local = local; includeList->append(ii); includeDict->insert(iName,ii); }}void FileDef::addIncludedByDependency(FileDef *fd,const char *incName,bool local){ //printf("FileDef::addIncludedByDependency(%p,%s,%d)\n",fd,incName,local); QCString iName = fd ? fd->absFilePath().data() : incName; if (!iName.isEmpty() && includedByDict->find(iName)==0) { IncludeInfo *ii = new IncludeInfo; ii->fileDef = fd; ii->includeName = incName; ii->local = local; includedByList->append(ii); includedByDict->insert(iName,ii); }}bool FileDef::generateSourceFile() const { QCString extension = name().right(4); return !isReference() && (Config_getBool("SOURCE_BROWSER") || (Config_getBool("VERBATIM_HEADERS") && guessSection(name())==Entry::HEADER_SEC) ) && extension!=".doc" && extension!=".txt" && extension!=".dox"; }void FileDef::addListReferences(){ addRefItem(todoId(),testId(),bugId(), theTranslator->trFile(TRUE,TRUE), getOutputFileBase(),name() ); MemberGroupListIterator mgli(*memberGroupList); MemberGroup *mg; for (;(mg=mgli.current());++mgli) { mg->addListReferences(this); } docDefineMembers.addListReferences(this); docProtoMembers.addListReferences(this); docTypedefMembers.addListReferences(this); docEnumMembers.addListReferences(this); docFuncMembers.addListReferences(this); docVarMembers.addListReferences(this);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -