diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/classdef.cpp | 8 | ||||
-rw-r--r-- | src/config.l | 25 | ||||
-rw-r--r-- | src/doc.l | 5 | ||||
-rw-r--r-- | src/dot.cpp | 103 | ||||
-rw-r--r-- | src/dot.h | 2 | ||||
-rw-r--r-- | src/doxygen.cpp | 13 | ||||
-rw-r--r-- | src/htmlgen.cpp | 12 | ||||
-rw-r--r-- | src/logos.cpp | 4 | ||||
-rw-r--r-- | src/memberdef.cpp | 18 | ||||
-rw-r--r-- | src/memberdef.h | 2 | ||||
-rw-r--r-- | src/memberlist.cpp | 2 | ||||
-rw-r--r-- | src/rtfgen.cpp | 10 | ||||
-rw-r--r-- | src/scanner.l | 5 | ||||
-rw-r--r-- | src/translator_de.h | 43 | ||||
-rw-r--r-- | src/xmlgen.cpp | 45 |
15 files changed, 195 insertions, 102 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp index 396d979..d37ac01 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -1271,17 +1271,11 @@ void ClassDef::writeMemberList(OutputList &ol) MemberDef *md=mi->memberDef; 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); - Specifier virt=md->virtualness(); - MemberDef *rmd=md->reimplements(); - while (rmd && virt==Normal) - { - virt = rmd->virtualness()==Normal ? Normal : Virtual; - rmd = rmd->reimplements(); - } if (cd && !md->name().isEmpty() && md->name()[0]!='@') { diff --git a/src/config.l b/src/config.l index 702f652..14db2c1 100644 --- a/src/config.l +++ b/src/config.l @@ -963,6 +963,20 @@ void Config::check() } s=aliasList.next(); } + + // check dot image format + QCString &dotImageFormat=Config_getEnum("DOT_IMAGE_FORMAT"); + dotImageFormat=dotImageFormat.stripWhiteSpace(); + if (dotImageFormat.isEmpty()) + { + dotImageFormat = "gif"; + } + else if (dotImageFormat!="gif" && dotImageFormat!="png" && dotImageFormat!="jpg") + { + config_err("Invalid value for DOT_IMAGE_FORMAT: `%s'. Using the default.\n",dotImageFormat.data()); + dotImageFormat = "gif"; + } + // check dot path QCString &dotPath = Config_getString("DOT_PATH"); @@ -2248,6 +2262,17 @@ void Config::create() TRUE ); cb->addDependency("HAVE_DOT"); + ce = addEnum( + "DOT_IMAGE_FORMAT", + "The DOT_IMAGE_FORMAT tag can be used to set the image format of the images \n" + "generated by dot. Possible values are gif, jpg, and png\n" + "If left blank gif will be used. \n", + "gif" + ); + ce->addValue("gif"); + ce->addValue("jpg"); + ce->addValue("png"); + ce->addDependency("HAVE_DOT"); cs = addString( "DOT_PATH", "The tag DOT_PATH can be used to specify the path where the dot tool can be \n" @@ -727,12 +727,15 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type) switch(type) { case IT_Html: + if (!Config_getBool("GENERATE_HTML")) return result; outputDir = Config_getString("HTML_OUTPUT"); break; case IT_Latex: + if (!Config_getBool("GENERATE_LATEX")) return result; outputDir = Config_getString("LATEX_OUTPUT"); break; case IT_RTF: + if (!Config_getBool("GENERATE_RTF")) return result; outputDir = Config_getString("RTF_OUTPUT"); break; } @@ -884,7 +887,7 @@ static void checkArgName(const QCString &name) return; } } - printf("member type=%d\n",memberDef->memberType()); + //printf("member type=%d\n",memberDef->memberType()); QCString scope=memberDef->getScopeString(); if (!scope.isEmpty()) scope+="::"; else scope=""; warn(memberDef->docFile(),memberDef->docLine(), diff --git a/src/dot.cpp b/src/dot.cpp index af77df0..3c8360d 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -336,7 +336,7 @@ void DotNode::writeBox(QTextStream &t, t << " Node" << m_number << " [shape=\"box\",label=\"" << convertLabel(m_label) << "\",fontsize=10,height=0.2,width=0.4"; - if (format==GIF) t << ",fontname=\"doxfont\""; + if (format==BITMAP) t << ",fontname=\"Helvetica\""; t << ",color=\"" << labCol << "\""; if (m_isRoot) { @@ -369,7 +369,7 @@ void DotNode::writeArrow(QTextStream &t, { t << ",label=\"" << ei->m_label << "\""; } - if (format==GIF) t << ",fontname=\"doxfont\""; + if (format==BITMAP) t << ",fontname=\"Helvetica\""; t << "];" << endl; } @@ -687,10 +687,11 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) for (dnli.toFirst();(n=dnli.current());++dnli) { QCString baseName; + QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); baseName.sprintf("inherit_graph_%d",count++); baseName = convertNameToFile(baseName); QCString dotName=baseName+".dot"; - QCString gifName=baseName+".gif"; + QCString imgName=baseName+"."+ imgExt; QCString mapName=baseName+".map"; QFile f(dotName); @@ -703,14 +704,15 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) DotNode *node; for (;(node=dnli2.current());++dnli2) { - if (node->m_subgraphId==n->m_subgraphId) node->write(t,GIF,FALSE,TRUE); + if (node->m_subgraphId==n->m_subgraphId) node->write(t,BITMAP,FALSE,TRUE); } t << "}" << endl; f.close(); QCString dotArgs(4096); - dotArgs.sprintf("-Tgif \"%s\" -o \"%s\"",dotName.data(),gifName.data()); - //printf("Running: dot -Tgif %s -o %s\n",dotName.data(),gifName.data()); + dotArgs.sprintf("-T%s \"%s\" -o \"%s\"", + imgExt.data(), dotName.data(),imgName.data()); + //printf("Running: dot -T%s %s -o %s\n",imgExt.data(),dotName.data(),imgName.data()); if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) { err("Problems running dot. Check your installation!\n"); @@ -726,7 +728,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) return; } QCString mapLabel = convertNameToFile(n->m_label); - out << "<tr><td><img src=\"" << gifName << "\" border=\"0\" usemap=\"#" + out << "<tr><td><img src=\"" << imgName << "\" border=\"0\" usemap=\"#" << mapLabel << "_map\"></td></tr>" << endl; out << "<map name=\"" << mapLabel << "_map\">" << endl; convertMapFile(out,mapName); @@ -1294,11 +1296,12 @@ QCString DotClassGraph::writeGraph(QTextStream &out, findMaximalDotGraph(m_startNode,m_maxDistance,baseName, thisDir,format,!isTBRank,m_graphType==Inheritance); - if (format==GIF) // run dot to create a .gif image + if (format==BITMAP) // run dot to create a bitmap image { QCString dotArgs(4096); - dotArgs.sprintf("-Tgif \"%s.dot\" -o \"%s.gif\"", - baseName.data(),baseName.data()); + QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); + dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s.%s\"", + imgExt.data(),baseName.data(),baseName.data(),imgExt.data()); if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) { err("Error: Problems running dot. Check your installation!\n"); @@ -1316,7 +1319,8 @@ QCString DotClassGraph::writeGraph(QTextStream &out, return baseName; } QCString mapLabel = convertNameToFile(m_startNode->m_label+"_"+mapName); - out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#" + out << "<p><center><img src=\"" << baseName << "." + << imgExt << "\" border=\"0\" usemap=\"#" << mapLabel << "\" alt=\""; switch (m_graphType) { @@ -1520,12 +1524,13 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, findMaximalDotGraph(m_startNode,m_maxDistance,baseName,thisDir,format, FALSE,FALSE,!m_inverse); - if (format==GIF) + if (format==BITMAP) { - // run dot to create a .gif image + // run dot to create a bitmap image QCString dotArgs(4096); - dotArgs.sprintf("-Tgif \"%s.dot\" -o \"%s.gif\"", - baseName.data(),baseName.data()); + QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); + dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s.%s\"", + imgExt.data(),baseName.data(),baseName.data(),imgExt.data()); if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) { err("Problems running dot. Check your installation!\n"); @@ -1545,8 +1550,9 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, return baseName; } - out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#" - << mapName << "_map\" alt=\""; + out << "<p><center><img src=\"" << baseName << "." + << imgExt << "\" border=\"0\" usemap=\"#" + << mapName << "_map\" alt=\""; if (m_inverse) out << "Included by dependency graph"; else out << "Include dependency graph"; out << "\">"; out << "</center>" << endl; @@ -1633,43 +1639,25 @@ void generateGraphLegend(const char *path) return; } QTextStream dotText(&dotFile); -#if 0 - dotText << "digraph inheritance\n"; - dotText << "{\n"; - dotText << " Node7 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n"; - dotText << " Node8 -> Node7 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node8 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_publicbase" << htmlFileExtension << "\"];\n"; - dotText << " Node9 -> Node8 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node9 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"red\",URL=\"$class_truncated" << htmlFileExtension << "\"];\n"; - dotText << " Node11 -> Node7 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node11 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_protectedbase" << htmlFileExtension << "\"];\n"; - dotText << " Node12 -> Node7 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node12 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_privatebase" << htmlFileExtension << "\"];\n"; - dotText << " Node13 -> Node7 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node13 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"grey75\"];\n"; - dotText << " Node14 -> Node7 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"doxfont\"];\n"; - dotText << " Node14 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_used" << htmlFileExtension << "\"];\n"; - dotText << "}\n"; -#endif dotText << "digraph inheritance\n"; dotText << "{\n"; - dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n"; - dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classPublicBase" << htmlFileExtension << "\"];\n"; - dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"red\",URL=\"$classTruncated" << htmlFileExtension << "\"];\n"; - dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classProtectedBase" << htmlFileExtension << "\"];\n"; - dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classPrivateBase" << htmlFileExtension << "\"];\n"; - dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"grey75\"];\n"; - dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n"; - dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n"; - dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"doxfont\"];\n"; - dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n"; - dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"doxfont\"];\n"; - dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classUsed" << htmlFileExtension << "\"];\n"; + dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n"; + dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; + dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPublicBase" << htmlFileExtension << "\"];\n"; + dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; + dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"red\",URL=\"$classTruncated" << htmlFileExtension << "\"];\n"; + dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; + dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classProtectedBase" << htmlFileExtension << "\"];\n"; + dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; + dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPrivateBase" << htmlFileExtension << "\"];\n"; + dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; + dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"grey75\"];\n"; + dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n"; + dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n"; + dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"Helvetica\"];\n"; + dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n"; + dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"Helvetica\"];\n"; + dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classUsed" << htmlFileExtension << "\"];\n"; dotText << "}\n"; dotFile.close(); @@ -1683,9 +1671,10 @@ void generateGraphLegend(const char *path) // go to the html output directory (i.e. path) QDir::setCurrent(d.absPath()); - // run dot to generate the a .gif image from the graph + // run dot to generate the a bitmap image from the graph QCString dotArgs(4096); - dotArgs.sprintf("-Tgif graph_legend.dot -o graph_legend.gif"); + QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); + dotArgs.sprintf("-T%s graph_legend.dot -o graph_legend.%s",imgExt.data(),imgExt.data()); if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0) { err("Problems running dot. Check your installation!\n"); @@ -1700,9 +1689,11 @@ void writeDotGraphFromFile(const char *inFile,const char *outFile, GraphOutputFormat format) { QCString dotArgs(4096); - if (format==GIF) + QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT"); + if (format==BITMAP) { - dotArgs.sprintf("-Tgif \"%s\" -o \"%s.gif\"",inFile,outFile); + dotArgs.sprintf("-T%s \"%s\" -o \"%s.%s\"",imgExt.data(), + inFile,outFile,imgExt.data()); } else // format==EPS { @@ -27,7 +27,7 @@ class QTextStream; class DotNodeList; class ClassSDict; -enum GraphOutputFormat { GIF , EPS }; +enum GraphOutputFormat { BITMAP , EPS }; struct EdgeInfo { diff --git a/src/doxygen.cpp b/src/doxygen.cpp index dd39762..1168e25 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * $Id$ + * * * * Copyright (C) 1997-2002 by Dimitri van Heesch. @@ -1294,9 +1294,14 @@ static MemberDef *addVariableToFile( MemberDef *md; for (mni.toFirst();(md=mni.current());++mni) { - if ((nd==0 && md->getFileDef() && - root->fileName==md->getFileDef()->absFilePath()) - || (nd!=0 && md->getNamespaceDef()==nd)) + if ( + ((nd==0 && md->getFileDef() && + root->fileName==md->getFileDef()->absFilePath() + ) + || (nd!=0 && md->getNamespaceDef()==nd) + ) + && !md->isDefine() // function style #define's can be "overloaded" by typedefs or variables + ) // variable already in the scope { addMemberDocs(root,md,def,0,FALSE); diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 35002c5..747902d 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -755,8 +755,6 @@ void HtmlGenerator::startMemberDescription() DBG_HTML(t << "<!-- startMemberDescription -->" << endl) if (Config_getBool("HTML_ALIGN_MEMBERS")) { - //t << "<tr><td><img src=null.gif></td><td><img src=null.gif></td>" - // "<td></td><td><font size=-1><em>"; t << "<tr><td> </td><td><font size=-1><em>"; } else @@ -922,9 +920,11 @@ void HtmlGenerator::startDotFile(const char *name,bool hasCaption) "/" #endif +baseName; - writeDotGraphFromFile(name,outName,GIF); + writeDotGraphFromFile(name,outName,BITMAP); t << "<div align=\"center\">" << endl; - t << "<img src=\"" << baseName << ".gif\" alt=\"" << baseName << "\">" << endl; + t << "<img src=\"" << baseName << "." + << Config_getEnum("DOT_IMAGE_FORMAT") << "\" alt=\"" + << baseName << "\">" << endl; if (hasCaption) { t << "<p><strong>"; @@ -1068,7 +1068,7 @@ void HtmlGenerator::startDotGraph() void HtmlGenerator::endDotGraph(DotClassGraph &g) { - g.writeGraph(t,GIF,Config_getString("HTML_OUTPUT")); + g.writeGraph(t,BITMAP,Config_getString("HTML_OUTPUT")); } void HtmlGenerator::startInclDepGraph() @@ -1077,7 +1077,7 @@ void HtmlGenerator::startInclDepGraph() void HtmlGenerator::endInclDepGraph(DotInclDepGraph &g) { - g.writeGraph(t,GIF,Config_getString("HTML_OUTPUT")); + g.writeGraph(t,BITMAP,Config_getString("HTML_OUTPUT")); } void HtmlGenerator::writeGraphicalHierarchy(DotGfxHierarchyTable &g) diff --git a/src/logos.cpp b/src/logos.cpp index 293f1bd..56ae8bd 100644 --- a/src/logos.cpp +++ b/src/logos.cpp @@ -3180,7 +3180,7 @@ void writeSearchButton(const char *dir) void writeDoxFont(const char *dir) { - QCString fileName=(QCString)dir+"/doxfont.ttf"; + QCString fileName=(QCString)dir+"/Helvetica.ttf"; QFile f(fileName); if (f.open(IO_WriteOnly)) f.writeBlock((char *)doxfont_data,doxfont_len); @@ -3194,5 +3194,5 @@ void writeDoxFont(const char *dir) void removeDoxFont(const char *dir) { QDir d(dir); - d.remove("doxfont.ttf"); + d.remove("Helvetica.ttf"); } diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 303d8f3..69bcf9f 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -1114,12 +1114,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, } Specifier lvirt=virtualness(); - MemberDef *rmd=reimplements(); - while (rmd && lvirt==Normal) - { - lvirt = rmd->virtualness()==Normal ? Normal : Virtual; - rmd = rmd->reimplements(); - } if (protection()!=Public || lvirt!=Normal || isFriend() || isRelated() || isExplicit() || @@ -1725,3 +1719,15 @@ void MemberDef::setSectionList(Definition *d, MemberList *sl) classSectionSDict->append((int)d,sl); } +Specifier MemberDef::virtualness() const +{ + Specifier v = virt; + MemberDef *rmd = reimplements(); + while (rmd && v==Normal) + { + v = rmd->virtualness()==Normal ? Normal : Virtual; + rmd = rmd->reimplements(); + } + return v; +} + diff --git a/src/memberdef.h b/src/memberdef.h index acbcb8c..78818b9 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -99,7 +99,7 @@ class MemberDef : public Definition // direct kind info Protection protection() const { return prot; } - Specifier virtualness() const { return virt; } + Specifier virtualness() const; MemberType memberType() const { return mtype; } // convenience methods diff --git a/src/memberlist.cpp b/src/memberlist.cpp index 228232e..ffc5631 100644 --- a/src/memberlist.cpp +++ b/src/memberlist.cpp @@ -449,7 +449,7 @@ void MemberList::writeDeclarations(OutputList &ol, { //printf("Member group has docs!\n"); ol.startMemberGroupDocs(); - parseDoc(ol,"<generated>",1,0,0,mg->documentation()); + parseDoc(ol,"<generated>",1,0,0,mg->documentation()+"\n"); ol.endMemberGroupDocs(); } ol.startMemberGroup(); diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index bd09fc6..d83711a 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -2275,7 +2275,7 @@ void RTFGenerator::startDotFile(const char *name,bool) "/" #endif +baseName; - writeDotGraphFromFile(name,outName,GIF); + writeDotGraphFromFile(name,outName,BITMAP); newParagraph(); t << "{" << endl; t << Rtf_Style_Reset << endl; @@ -2631,13 +2631,13 @@ void RTFGenerator::endDotGraph(DotClassGraph &g) newParagraph(); QCString fileName = - g.writeGraph(t,GIF,Config_getString("RTF_OUTPUT"),TRUE,FALSE); + g.writeGraph(t,BITMAP,Config_getString("RTF_OUTPUT"),TRUE,FALSE); // display the file t << "{" << endl; t << Rtf_Style_Reset << endl; t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE "; - t << fileName << ".gif"; + t << fileName << "." << Config_getEnum("DOT_IMAGE_FORMAT"); t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl; t << "}" << endl; } @@ -2650,13 +2650,13 @@ void RTFGenerator::endInclDepGraph(DotInclDepGraph &g) { newParagraph(); - QCString fileName = g.writeGraph(t,GIF,Config_getString("RTF_OUTPUT"),FALSE); + QCString fileName = g.writeGraph(t,BITMAP,Config_getString("RTF_OUTPUT"),FALSE); // display the file t << "{" << endl; t << Rtf_Style_Reset << endl; t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE "; - t << fileName << ".gif"; + t << fileName << "." << Config_getEnum("DOT_IMAGE_FORMAT"); t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl; t << "}" << endl; } diff --git a/src/scanner.l b/src/scanner.l index b644c96..e3ca3da 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -2090,6 +2090,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN( CopyArgComment ); } } +<CopyArgComment>^{B}*"*"+/{BN}+ <CopyArgComment>[^\n\*]+ { fullArgString+=yytext; } <CopyArgComment>"*/" { fullArgString+=yytext; if (lastCopyArgChar!=0) @@ -3445,7 +3446,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) <SkipCode>"//" { *pSkipDoc+=yytext; } -<SkipCode>"/*" { +<SkipCode>"/*"|"*/" { *pSkipDoc+=yytext; } <SkipCode>[^ \<\*\t\/\\\n]+ { @@ -3571,7 +3572,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN(lastFormulaContext); } <ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; } -<ExampleDoc,PageDoc,ClassDocBrief,SkipCode,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" { +<ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" { checkDocs(); //printf("current->section=%x\n",current->section); if (YY_START==SkipCode) // premature end of code block diff --git a/src/translator_de.h b/src/translator_de.h index 082ac9d..7eaf6c0 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -58,15 +58,17 @@ // - trCompoundReference(), trLegendDocs() updated // - Removed some TODO's // +// 2002/02/13 Oliver Brandt (o.brandt@tu-bs.de) +// - Updated for "new since 1.2.13" version +// - Removed some TODO's +// // Todo: -// - translation of all Config_getBool("OPTIMIZE_OUTPUT_FOR_C") -// strings (see translator_en.h) // - see FIXME #ifndef TRANSLATOR_DE_H #define TRANSLATOR_DE_H -class TranslatorGerman : public TranslatorAdapter_1_2_13 +class TranslatorGerman : public Translator { public: @@ -123,7 +125,9 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13 /* header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() - { return "Dokumentation der Datenelemente"; } + { /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */ + return "Dokumentation der Datenelemente"; + } /* this is the text of a link put after brief descriptions. */ virtual QCString trMore() @@ -215,6 +219,7 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13 /* This is put above each page as a link to all members of files. */ virtual QCString trFileMembers() + /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */ { return "Datei-Elemente"; } /* This is put above each page as a link to all related pages. */ @@ -340,11 +345,9 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13 * annotated compound index. */ virtual QCString trCompoundIndex() + /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */ { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - return "Datenstruktur-Verzeichnis"; - else - return "Datenstruktur-Verzeichnis"; + return "Datenstruktur-Verzeichnis"; } /* This is used in LaTeX as the title of the chapter with the @@ -1341,7 +1344,7 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13 virtual QCString trGlobal(bool first_capital, bool singular) { QCString result((first_capital ? "Global" : "global")); // FIXME - if (!singular) result+="s"; + if (!singular) result+=""; return result; } @@ -1368,7 +1371,27 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13 virtual QCString trReferences() { return "Benutzt"; - } + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.13 +////////////////////////////////////////////////////////////////////////// + /* used in member documentation blocks to produce a list of + * members that are implemented by this one. + */ + virtual QCString trImplementedFromList(int numEntries) + { + return "Implementiert " + trWriteList(numEntries) + "."; + } + + /* used in member documentation blocks to produce a list of + * all members that implement this abstract member. + */ + virtual QCString trImplementedInList(int numEntries) + { + return "Implementiert in " + trWriteList(numEntries) + "."; + } + }; #endif diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index 5a4a9d3..9273f63 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -1309,6 +1309,50 @@ static void writeTemplateLists(Definition *d,QTextStream &t) } } +static void writeListOfAllMember(ClassDef *cd,QTextStream &t) +{ + t << " <listofallmembers>" << endl; + MemberNameInfoSDict::Iterator mnii(*cd->memberNameInfoSDict()); + MemberNameInfo *mni; + for (mnii.toFirst();(mni=mnii.current());++mnii) + { + MemberNameInfoIterator mii(*mni); + MemberInfo *mi; + for (mii.toFirst();(mi=mii.current());++mii) + { + MemberDef *md=mi->memberDef; + ClassDef *cd=md->getClassDef(); + Definition *d=md->getGroupDef(); + if (d==0) d = cd; + Protection prot = mi->prot; + Specifier virt=md->virtualness(); + t << " <member refid=\"" << d->getOutputFileBase() << "_" << + md->anchor() << "\" prot=\""; + switch (prot) + { + case Public: t << "public"; break; + case Protected: t << "protected"; break; + case Private: t << "private"; break; + } + t << "\" virt=\""; + switch(virt) + { + case Normal: t << "non-virtual"; break; + case Virtual: t << "virtual"; break; + case Pure: t << "pure-virtual"; break; + } + t << "\""; + if (!mi->ambiguityResolutionScope.isEmpty()) + { + t << " ambiguityscope=\"" << mi->ambiguityResolutionScope << "\""; + } + t << "><scope>" << cd->name() << "</scope><name>" << + md->name() << "</name></member>" << endl; + } + } + t << " </listofallmembers>" << endl; +} + static void generateXMLForClass(ClassDef *cd,QTextStream &ti) { // + brief description @@ -1415,6 +1459,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti) } } writeTemplateLists(cd,t); + writeListOfAllMember(cd,t); MemberGroupSDict::Iterator mgli(*cd->memberGroupSDict); MemberGroup *mg; for (;(mg=mgli.current());++mgli) |