diff options
Diffstat (limited to 'src')
157 files changed, 856 insertions, 1217 deletions
diff --git a/src/Makefile.in b/src/Makefile.in index 880902f..57bbcea 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,6 +1,6 @@ # -# +# $Id$ # # Copyright (C) 1997-2007 by Dimitri van Heesch. # diff --git a/src/bufstr.h b/src/bufstr.h index 3d33cce..18db9d4 100644 --- a/src/bufstr.h +++ b/src/bufstr.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/classdef.cpp b/src/classdef.cpp index 58be2bb..182815a 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/classdef.h b/src/classdef.h index 1cfccc2..762d138 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/classlist.cpp b/src/classlist.cpp index 0e9de89..6619b8e 100644 --- a/src/classlist.cpp +++ b/src/classlist.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -99,7 +99,8 @@ void ClassSDict::writeDeclaration(OutputList &ol,const ClassDef::CompoundType *f ol.startMemberList(); found=TRUE; } - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) + if (!Config_getString("GENERATE_TAGFILE").isEmpty() && + !cd->isReference()) // skip classes found in tag files { Doxygen::tagFile << " <class kind=\"" << cd->compoundTypeString() << "\">" << convertToXML(cd->name()) << "</class>" << endl; diff --git a/src/classlist.h b/src/classlist.h index ace8195..b212873 100644 --- a/src/classlist.h +++ b/src/classlist.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -773,12 +773,32 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst) ) { dst->addSourceReferencedBy(src); + MemberDef *mdDef = dst->memberDefinition(); + if (mdDef) + { + mdDef->addSourceReferencedBy(src); + } + MemberDef *mdDecl = dst->memberDeclaration(); + if (mdDecl) + { + mdDecl->addSourceReferencedBy(src); + } } if ((referencesRelation || callGraph) && (src->isFunction() || src->isSlot()) ) { src->addSourceReferences(dst); + MemberDef *mdDef = src->memberDefinition(); + if (mdDef) + { + mdDef->addSourceReferences(dst); + } + MemberDef *mdDecl = src->memberDeclaration(); + if (mdDecl) + { + mdDecl->addSourceReferences(dst); + } } } diff --git a/src/commentcnv.h b/src/commentcnv.h index a2965f7..8bc8030 100644 --- a/src/commentcnv.h +++ b/src/commentcnv.h @@ -1,6 +1,6 @@ /***************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/commentcnv.l b/src/commentcnv.l index 465c951..e9a3b47 100644 --- a/src/commentcnv.l +++ b/src/commentcnv.l @@ -1,6 +1,6 @@ /***************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/commentscan.l b/src/commentscan.l index 5db2db5..8635906 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -959,7 +959,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" BEGIN(SkipLang); } } -<Comment>{CMD}"f{"[^}\n]+"}" { // start of a formula with custom environment +<Comment>{CMD}"f{"[^}\n]+"}"("{"?) { // start of a formula with custom environment formulaText="\\begin"; formulaEnv=&yytext[2]; formulaText+=formulaEnv; diff --git a/src/config.l b/src/config.l index f084d03..23d0c5b 100644 --- a/src/config.l +++ b/src/config.l @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -29,6 +29,7 @@ #include <qtextstream.h> #include <qregexp.h> #include <qstack.h> +#include <qglobal.h> #include "config.h" #include "version.h" @@ -1211,6 +1212,7 @@ void Config::check() filePatternList.append("*.mm"); filePatternList.append("*.dox"); filePatternList.append("*.py"); + filePatternList.append("*.f90"); if (portable_fileSystemIsCaseSensitive()) { // unix => case sensitive match => also include useful uppercase versions @@ -1228,6 +1230,7 @@ void Config::check() filePatternList.append("*.M"); filePatternList.append("*.MM"); filePatternList.append("*.PY"); + filePatternList.append("*.F90"); } } @@ -1692,6 +1695,16 @@ void Config::create() "the \\nosubgrouping command. \n", TRUE ); + cb = addBool( "TYPEDEF_HIDES_STRUCT", + "When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct (or union) is \n" + "documented as struct with the name of the typedef. So \n" + "typedef struct TypeS {} TypeT, will appear in the documentation as a struct \n" + "with name TypeT. When disabled the typedef will appear as a member of a file, \n" + "namespace, or class. And the struct will be named TypeS. This can typically \n" + "be useful for C code where the coding convention is that all structs are \n" + "typedef'ed and only the typedef is referenced never the struct's name.\n", + FALSE + ); //----------------------------------------------------------------------------------------------- addInfo("Build","Build related configuration options"); //----------------------------------------------------------------------------------------------- @@ -1987,7 +2000,7 @@ void Config::create() "and *.h) to filter out the source-files in the directories. If left \n" "blank the following patterns are tested: \n" "*.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx \n" - "*.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py\n" + "*.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90\n" ); cb = addBool( "RECURSIVE", @@ -2953,7 +2966,7 @@ void Config::create() "Warning: Depending on the platform used, enabling this option may lead to \n" "badly anti-aliased labels on the edges of a graph (i.e. they become hard to \n" "read). \n", - FALSE + TRUE ); cb->addDependency("HAVE_DOT"); cb = addBool( diff --git a/src/constexp.h b/src/constexp.h index 0df7ec3..d2bc7d0 100644 --- a/src/constexp.h +++ b/src/constexp.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/constexp.l b/src/constexp.l index c2cd529..5e44ba3 100644 --- a/src/constexp.l +++ b/src/constexp.l @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/constexp.y b/src/constexp.y index 04c6224..b0ced42 100644 --- a/src/constexp.y +++ b/src/constexp.y @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/cppvalue.cpp b/src/cppvalue.cpp index 983a55f..5858e60 100644 --- a/src/cppvalue.cpp +++ b/src/cppvalue.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/cppvalue.h b/src/cppvalue.h index b080431..c9a48f0 100644 --- a/src/cppvalue.h +++ b/src/cppvalue.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/debug.cpp b/src/debug.cpp index f1033a5..274294e 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/debug.h b/src/debug.h index 95891d2..1a35900 100644 --- a/src/debug.h +++ b/src/debug.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/declinfo.h b/src/declinfo.h index 7287e1e..07869d8 100644 --- a/src/declinfo.h +++ b/src/declinfo.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/declinfo.l b/src/declinfo.l index 54c0a2a..5cb3944 100644 --- a/src/declinfo.l +++ b/src/declinfo.l @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/defargs.h b/src/defargs.h index b7c6aa1..abee943 100644 --- a/src/defargs.h +++ b/src/defargs.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/defargs.l b/src/defargs.l index 5939504..a924f10 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/defgen.cpp b/src/defgen.cpp index 26201b7..87a46de 100644 --- a/src/defgen.cpp +++ b/src/defgen.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/defgen.h b/src/defgen.h index 5560602..7c8e2e4 100644 --- a/src/defgen.h +++ b/src/defgen.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/define.cpp b/src/define.cpp index 42789be..47e4541 100644 --- a/src/define.cpp +++ b/src/define.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/define.h b/src/define.h index 4c1f904..b57007b 100644 --- a/src/define.h +++ b/src/define.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/definition.cpp b/src/definition.cpp index 7647a68..408f831 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/definition.h b/src/definition.h index 2bbc682..8f57ba8 100644 --- a/src/definition.h +++ b/src/definition.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -164,7 +164,7 @@ class Definition : public DefinitionIntf, public LockableObj /*! returns the file in which this definition was found */ QCString getDefFileName() const; - /*! returns the file in which this definition was found */ + /*! returns the extension of the file in which this definition was found */ QCString getDefFileExtension() const; /*! returns the line number at which the definition was found */ diff --git a/src/diagram.cpp b/src/diagram.cpp index 45e839b..dc6b05d 100644 --- a/src/diagram.cpp +++ b/src/diagram.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. @@ -968,7 +968,7 @@ ClassDiagram::~ClassDiagram() } void ClassDiagram::writeFigure(QTextStream &output,const char *path, - const char *fileName) + const char *fileName) const { uint baseRows=base->computeRows(); uint superRows=super->computeRows(); @@ -1263,7 +1263,7 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path, void ClassDiagram::writeImage(QTextStream &t,const char *path, const char *relPath,const char *fileName, - bool generateMap) + bool generateMap) const { uint baseRows=base->computeRows(); uint superRows=super->computeRows(); diff --git a/src/diagram.h b/src/diagram.h index ad19723..d0c9d12 100644 --- a/src/diagram.h +++ b/src/diagram.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. @@ -123,9 +123,9 @@ class ClassDiagram ClassDiagram(ClassDef *root); ~ClassDiagram(); void writeFigure(QTextStream &t,const char *path, - const char *file); + const char *file) const; void writeImage(QTextStream &t,const char *path,const char *relPath, - const char *file,bool generateMap=TRUE); + const char *file,bool generateMap=TRUE) const; private: TreeDiagram *base; TreeDiagram *super; diff --git a/src/dirdef.h b/src/dirdef.h index 27224de..234a708 100644 --- a/src/dirdef.h +++ b/src/dirdef.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/docparser.cpp b/src/docparser.cpp index b46aaed..3418c22 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/docparser.h b/src/docparser.h index 5d18fe1..e39127c 100644 --- a/src/docparser.h +++ b/src/docparser.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/doctokenizer.h b/src/doctokenizer.h index 444516f..13995b6 100644 --- a/src/doctokenizer.h +++ b/src/doctokenizer.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/doctokenizer.l b/src/doctokenizer.l index b48af79..233205d 100644 --- a/src/doctokenizer.l +++ b/src/doctokenizer.l @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. @@ -772,7 +772,7 @@ REFWORD ("#"|"::")?({ID}("."|"#"|"::"|"-"|"/"))*({ID}(":")?){FUNCARG}? <St_XRefItem>" " { BEGIN(St_XRefItem2); } -<St_XRefItem2>[0-9]+\n { +<St_XRefItem2>[0-9]+{WS} { QString numStr=yytext; numStr=numStr.left(yyleng-1); g_token->id=numStr.toInt(); diff --git a/src/docvisitor.h b/src/docvisitor.h index 82f5137..d48e444 100644 --- a/src/docvisitor.h +++ b/src/docvisitor.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/dot.cpp b/src/dot.cpp index 02cd88f..87ed3e1 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -1,6 +1,6 @@ /***************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. @@ -1013,7 +1013,7 @@ const DotNode *DotNode::findDocNode() const int DotGfxHierarchyTable::m_curNodeNumber; -void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) +void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const { //printf("DotGfxHierarchyTable::writeGraph(%s)\n",name); //printf("m_rootNodes=%p count=%d\n",m_rootNodes,m_rootNodes->count()); @@ -1793,7 +1793,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out, const char *path, const char *relPath, bool /*isTBRank*/, - bool generateImageMap) + bool generateImageMap) const { QDir d(path); // store the original directory @@ -2012,8 +2012,12 @@ void DotInclDepGraph::buildGraph(DotNode *n,FileDef *fd,int distance) else { QCString tmp_url; - if (bfd) tmp_url=doc || src ? bfd->getReference()+"$"+url : QCString(); - QCString tooltip = fd->briefDescriptionAsTooltip(); + QCString tooltip; + if (bfd) + { + tmp_url=doc || src ? bfd->getReference()+"$"+url : QCString(); + tooltip = bfd->briefDescriptionAsTooltip(); + } bn = new DotNode( m_curNodeNumber++, // n ii->includeName, // label @@ -2135,7 +2139,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, const char *path, const char *relPath, bool generateImageMap - ) + ) const { QDir d(path); // store the original directory @@ -2432,7 +2436,7 @@ DotCallGraph::~DotCallGraph() } QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format, - const char *path,const char *relPath,bool generateImageMap) + const char *path,const char *relPath,bool generateImageMap) const { QDir d(path); // store the original directory @@ -2571,7 +2575,7 @@ QCString DotDirDeps::writeGraph(QTextStream &out, GraphOutputFormat format, const char *path, const char *relPath, - bool generateImageMap) + bool generateImageMap) const { QDir d(path); // store the original directory @@ -2820,6 +2824,7 @@ error: * \param inFile just the basename part of the filename * \param outDir output directory * \param relPath relative path the to root of the output dir + * \param context the scope in which this graph is found (for resolving links) * \returns a string which is the HTML image map (without the \<map\>\</map\>) */ QString getDotImageMapFromFile(const QString& inFile, const QString& outDir, @@ -3066,7 +3071,7 @@ void DotGroupCollaboration::addCollaborationMember( QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat format, const char *path, const char *relPath, - bool writeImageMap) + bool writeImageMap) const { QDir d(path); // store the original directory @@ -3105,7 +3110,7 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo Edge* edge; for (eli.toFirst();(edge=eli.current());++eli) { - edge->write( tdot, m_curNodeId ); + edge->write( tdot ); } writeGraphFooter(tdot); @@ -3189,7 +3194,7 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo return baseName; } -void DotGroupCollaboration::Edge::write( QTextStream &t, int& ) +void DotGroupCollaboration::Edge::write( QTextStream &t ) const { const char* linkTypeColor[] = { "darkorchid3" @@ -3253,7 +3258,7 @@ bool DotGroupCollaboration::isTrivial() const return m_usedNodes->count() <= 1; } -void DotGroupCollaboration::writeGraphHeader(QTextStream &t) +void DotGroupCollaboration::writeGraphHeader(QTextStream &t) const { t << "digraph structs" << endl; t << "{" << endl; @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. @@ -139,7 +139,7 @@ class DotGfxHierarchyTable public: DotGfxHierarchyTable(); ~DotGfxHierarchyTable(); - void writeGraph(QTextStream &t,const char *path); + void writeGraph(QTextStream &t,const char *path) const; private: void addHierarchy(DotNode *n,ClassDef *cd,bool hide); @@ -160,7 +160,7 @@ class DotClassGraph bool isTrivial() const; bool isTooBig() const; QCString writeGraph(QTextStream &t,GraphOutputFormat f,const char *path, - const char *relPath, bool TBRank=TRUE,bool imageMap=TRUE); + const char *relPath, bool TBRank=TRUE,bool imageMap=TRUE) const; void writeXML(QTextStream &t); void writeDEF(QTextStream &t); @@ -190,7 +190,7 @@ class DotInclDepGraph ~DotInclDepGraph(); QCString writeGraph(QTextStream &t, GraphOutputFormat f,const char *path, const char *relPath, - bool writeImageMap=TRUE); + bool writeImageMap=TRUE) const; bool isTrivial() const; bool isTooBig() const; QCString diskName() const; @@ -216,7 +216,7 @@ class DotCallGraph DotCallGraph(MemberDef *md,bool inverse); ~DotCallGraph(); QCString writeGraph(QTextStream &t, GraphOutputFormat f, - const char *path,const char *relPath,bool writeImageMap=TRUE); + const char *path,const char *relPath,bool writeImageMap=TRUE) const; void buildGraph(DotNode *n,MemberDef *md,int distance); bool isTrivial() const; bool isTooBig() const; @@ -245,7 +245,7 @@ class DotDirDeps GraphOutputFormat format, const char *path, const char *relPath, - bool writeImageMap=TRUE); + bool writeImageMap=TRUE) const; private: DirDef *m_dir; }; @@ -284,20 +284,20 @@ class DotGroupCollaboration EdgeType eType; QList<Link> links; - void write( QTextStream &t, int& curNodeId ); + void write( QTextStream &t ) const; }; DotGroupCollaboration(GroupDef* gd); ~DotGroupCollaboration(); QCString writeGraph(QTextStream &t, GraphOutputFormat format, const char *path,const char *relPath, - bool writeImageMap=TRUE); + bool writeImageMap=TRUE) const; void buildGraph(GroupDef* gd); bool isTrivial() const; private : void addCollaborationMember( Definition* def, QCString& url, EdgeType eType ); void addMemberList( class MemberList* ml ); - void writeGraphHeader(QTextStream &t); + void writeGraphHeader(QTextStream &t) const; Edge* addEdge( DotNode* _pNStart, DotNode* _pNEnd, EdgeType _eType, const QCString& _label, const QCString& _url ); diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 5a62e38..4088467 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. @@ -134,6 +134,9 @@ Store *Doxygen::symbolStorage; QCString Doxygen::objDBFileName; QCString Doxygen::entryDBFileName; bool Doxygen::gatherDefines = TRUE; +IndexList Doxygen::indexList; + +bool Doxygen::userComments = FALSE; // locally accessible globals static QDict<EntryNav> classEntries(1009); @@ -149,6 +152,7 @@ FileStorage *g_storage = 0; QCString spaces; static bool g_successfulRun = FALSE; +static bool g_dumpSymbolMap = FALSE; @@ -1255,100 +1259,60 @@ static void resolveClassNestingRelations() ClassSDict::Iterator cli(*Doxygen::classSDict); for (cli.toFirst();cli.current();++cli) cli.current()->visited=FALSE; - int nestingLevel=0; bool done=FALSE; + int iteration=0; while (!done) { - // iterate over all classes searching for a class with right nesting - // level (starting with 0 and going up until no more classes are found) - // - // we start with all classes that are inside a namespace and then - // do the ones outside the namespace to avoid an "internal inconsistency" for the - // following: - // File A: - // using namespace N; - // class C::P {} - // File B: - // namespace N { class C { class P {}; }; } - // - // If file A is parsed before file B then without it C::P would not be related to N. done=TRUE; - ClassSDict::Iterator cli(*Doxygen::classSDict); + ++iteration; ClassDef *cd=0; - // first handle any class inside a namespace for (cli.toFirst();(cd=cli.current());++cli) { - QCString c,n; - extractNamespaceName(cd->name(),c,n,TRUE); - n = stripAnonymousNamespaceScope(n); - if (cd->name().contains("::")==nestingLevel && !n.isEmpty()) + if (!cd->visited) { - cd->visited=TRUE; - //printf("Level=%d processing=%s\n",nestingLevel,cd->name().data()); - // also add class to the correct structural context - Definition *d = findScopeFromQualifiedName(Doxygen::globalScope, - cd->name(),cd->getFileDef()); - if (d==0) // we didn't find anything, create the scope artificially - // anyway, so we can at least relate scopes properly. - { - Definition *d = buildScopeFromQualifiedName(cd->name(),cd->name().contains("::")); - if (d!=cd) // avoid recursion in case of redundant scopes, i.e: namespace N { class N::C {}; } - // for this case doxygen assumes the exitance of a namespace N::N in which C is to be found! - { - d->addInnerCompound(cd); - cd->setOuterScope(d); - warn(cd->getDefFileName(),cd->getDefLine(), - "Warning: Internal inconsistency: scope for class %s not " - "found!",cd->name().data() - ); - } - } - else - { - //printf("****** adding %s to scope %s\n",cd->name().data(),d->name().data()); - d->addInnerCompound(cd); - cd->setOuterScope(d); - } - } - if (!cd->visited) done=FALSE; - } - // and now the same for classes outside any namespace - for (cli.toFirst();(cd=cli.current());++cli) - { - if (cd->name().contains("::")==nestingLevel && !cd->visited) - { - cd->visited=TRUE; QCString name = stripAnonymousNamespaceScope(cd->name()); - //printf("Level=%d processing=%s\n",nestingLevel,cd->name().data()); + //printf("processing=%s, iteration=%d\n",cd->name().data(),iteration); // also add class to the correct structural context Definition *d = findScopeFromQualifiedName(Doxygen::globalScope, name,cd->getFileDef()); - if (d==0) // we didn't find anything, create the scope artificially - // anyway, so we can at least relate scopes properly. - { - Definition *d = buildScopeFromQualifiedName(name,name.contains("::")); - if (d!=cd) // avoid recursion in case of redundant scopes, i.e: namespace N { class N::C {}; } - // for this case doxygen assumes the exitance of a namespace N::N in which C is to be found! - { - d->addInnerCompound(cd); - cd->setOuterScope(d); - warn(cd->getDefFileName(),cd->getDefLine(), - "Warning: Internal inconsistency: scope for class %s not " - "found while looking in the global scope!",name.data() - ); - } - } - else + if (d) { - //printf("****** adding %s to scope %s\n",cd->name().data(),d->name().data()); + //printf("****** adding %s to scope %s in iteration %d\n",cd->name().data(),d->name().data(),iteration); d->addInnerCompound(cd); cd->setOuterScope(d); + cd->visited=TRUE; + done=FALSE; } + //else + //{ + // printf("****** ignoring %s: scope not (yet) found in iteration %d\n",cd->name().data(),iteration); + //} + } + } + } + + //give warnings for unresolved compounds + ClassDef *cd=0; + for (cli.toFirst();(cd=cli.current());++cli) + { + if (!cd->visited) + { + QCString name = stripAnonymousNamespaceScope(cd->name()); + //printf("processing unresolved=%s, iteration=%d\n",cd->name().data(),iteration); + /// create the scope artificially + // anyway, so we can at least relate scopes properly. + Definition *d = buildScopeFromQualifiedName(name,name.contains("::")); + if (d!=cd) // avoid recursion in case of redundant scopes, i.e: namespace N { class N::C {}; } + // for this case doxygen assumes the exitance of a namespace N::N in which C is to be found! + { + d->addInnerCompound(cd); + cd->setOuterScope(d); + warn(cd->getDefFileName(),cd->getDefLine(), + "Warning: Internal inconsistency: scope for class %s not " + "found!",name.data() + ); } - if (!cd->visited) done=FALSE; } - nestingLevel++; - //printf("nestingLevel=%d\n",nestingLevel); } } @@ -2604,7 +2568,7 @@ static void addMethodToClass(EntryNav *rootNav,ClassDef *cd, Entry *root = rootNav->entry(); FileDef *fd=rootNav->fileDef(); - int l,i; + int l,i=-1; static QRegExp re("([a-z_A-Z0-9: ]*[ &*]+[ ]*"); if (!root->type.isEmpty() && (i=re.match(root->type,0,&l))!=-1) // function variable @@ -3389,6 +3353,7 @@ static void transferFunctionDocumentation() ); } + mdec->mergeRefItems(mdef); mdef->mergeRefItems(mdec); @@ -8779,6 +8744,60 @@ void readAliases() } //---------------------------------------------------------------------------- + +static void dumpSymbol(QTextStream &t,Definition *d) +{ + QCString anchor; + if (d->definitionType()==Definition::TypeMember) + { + MemberDef *md = (MemberDef *)d; + anchor=":"+md->anchor(); + } + QCString scope; + if (d->getOuterScope() && d->getOuterScope()!=Doxygen::globalScope) + { + scope = d->getOuterScope()->getOutputFileBase()+Doxygen::htmlFileExtension; + } + t << "REPLACE INTO symbols (symbol_id,scope_id,name,file,line) VALUES('" + << d->getOutputFileBase()+Doxygen::htmlFileExtension+anchor << "','" + << scope << "','" + << d->name() << "','" + << d->getDefFileName() << "','" + << d->getDefLine() + << "');" << endl; +} + +static void dumpSymbolMap() +{ + QFile f("symbols.sql"); + if (f.open(IO_WriteOnly)) + { + QTextStream t(&f); + QDictIterator<DefinitionIntf> di(*Doxygen::symbolMap); + DefinitionIntf *intf; + for (;(intf=di.current());++di) + { + if (intf->definitionType()==DefinitionIntf::TypeSymbolList) // list of symbols + { + DefinitionListIterator dli(*(DefinitionList*)intf); + Definition *d; + // for each symbol + for (dli.toFirst();(d=dli.current());++dli) + { + dumpSymbol(t,d); + } + } + else // single symbol + { + Definition *d = (Definition *)intf; + if (d!=Doxygen::globalScope) dumpSymbol(t,d); + } + } + } +} + + +//---------------------------------------------------------------------------- // print the usage of doxygen static void usage(const char *name) @@ -9093,6 +9112,9 @@ void readConfiguration(int argc, char **argv) exit(1); } break; + case 'm': + g_dumpSymbolMap = TRUE; + break; case '-': if (strcmp(&argv[optind][2],"help")==0) { @@ -9846,6 +9868,11 @@ void generateOutput() // } // printf("\n"); //} + if (g_dumpSymbolMap) + { + dumpSymbolMap(); + exit(0); + } initDocParser(); @@ -9854,8 +9881,11 @@ void generateOutput() { outputList->add(new HtmlGenerator); HtmlGenerator::init(); - if (Config_getBool("GENERATE_HTMLHELP")) HtmlHelp::getInstance()->initialize(); - if (Config_getBool("GENERATE_TREEVIEW")) FTVHelp::getInstance()->initialize(); + if (Config_getBool("GENERATE_HTMLHELP")) Doxygen::indexList.addIndex(new HtmlHelp); + //HtmlHelp::getInstance()->initialize(); + if (Config_getBool("GENERATE_TREEVIEW")) Doxygen::indexList.addIndex(new FTVHelp); + //FTVHelp::getInstance()->initialize(); + Doxygen::indexList.initialize(); if (Config_getBool("HTML_DYNAMIC_SECTIONS")) HtmlGenerator::generateSectionImages(); copyStyleSheet(); } @@ -10020,14 +10050,17 @@ void generateOutput() Doxygen::formulaList.generateBitmaps(Config_getString("HTML_OUTPUT")); } - if (Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_HTMLHELP")) - { - HtmlHelp::getInstance()->finalize(); - } - if (Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_TREEVIEW")) - { - FTVHelp::getInstance()->finalize(); - } + //if (Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_HTMLHELP")) + //{ + // HtmlHelp::getInstance()->finalize(); + //} + //if (Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_TREEVIEW")) + //{ + // FTVHelp::getInstance()->finalize(); + //} + + Doxygen::indexList.finalize(); + if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << "</tagfile>" << endl; diff --git a/src/doxygen.css b/src/doxygen.css index c7db1a8..e261cf6 100644 --- a/src/doxygen.css +++ b/src/doxygen.css @@ -299,6 +299,7 @@ HR { height: 1px; font-size: 80%; color: #606060; font-weight: normal; + margin-left: 3px; } .memnav { background-color: #e8eef2; diff --git a/src/doxygen.h b/src/doxygen.h index 4f6c972..e0d99c1 100644 --- a/src/doxygen.h +++ b/src/doxygen.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. @@ -36,6 +36,7 @@ #include "membergroup.h" #include "reflist.h" #include "dirdef.h" +#include "index.h" class PageSList; class PageSDict; @@ -126,6 +127,8 @@ class Doxygen static QCString objDBFileName; static QCString entryDBFileName; static bool gatherDefines; + static bool userComments; + static IndexList indexList; }; void initDoxygen(); diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in index e9129d1..3519e09 100644 --- a/src/doxygen.pro.in +++ b/src/doxygen.pro.in @@ -1,5 +1,5 @@ # -# +# $Id$ # # Copyright (C) 1997-2007 by Dimitri van Heesch. # diff --git a/src/doxygen_css.h b/src/doxygen_css.h index 7679514..ed651af 100644 --- a/src/doxygen_css.h +++ b/src/doxygen_css.h @@ -299,6 +299,7 @@ " font-size: 80%;\n" " color: #606060;\n" " font-weight: normal;\n" +" margin-left: 3px;\n" "} \n" ".memnav { \n" " background-color: #e8eef2;\n" diff --git a/src/doxytag.l b/src/doxytag.l index 5c8a4b3..932222b 100644 --- a/src/doxytag.l +++ b/src/doxytag.l @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/doxytag.pro.in b/src/doxytag.pro.in index 28e829e..daf77b2 100644 --- a/src/doxytag.pro.in +++ b/src/doxytag.pro.in @@ -1,5 +1,5 @@ # -# +# $Id$ # # Copyright (C) 1997-2007 by Dimitri van Heesch. # diff --git a/src/doxytag.t b/src/doxytag.t index 570acc3..a652d72 100644 --- a/src/doxytag.t +++ b/src/doxytag.t @@ -1,5 +1,5 @@ # -# +# $Id$ # # Copyright (C) 1997-2007 by Dimitri van Heesch. # diff --git a/src/entry.cpp b/src/entry.cpp index edb54c1..970459b 100644 --- a/src/entry.cpp +++ b/src/entry.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/entry.h b/src/entry.h index 1a51944..dec7a6c 100644 --- a/src/entry.h +++ b/src/entry.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/example.h b/src/example.h index 98fde77..80df545 100644 --- a/src/example.h +++ b/src/example.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/filedef.cpp b/src/filedef.cpp index 3588a45..c33f4f8 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -29,7 +29,6 @@ #include "dot.h" #include "message.h" #include "docparser.h" -#include "ftvhelp.h" #include "searchindex.h" #include "htags.h" #include "parserintf.h" @@ -1235,8 +1234,6 @@ static void addDirsAsGroups(Directory *root,GroupDef *parent,int level) void generateFileTree() { - FTVHelp::generateTreeViewImages(); - Directory *root=new Directory(0,"root"); root->setLast(TRUE); FileNameListIterator fnli(*Doxygen::inputNameList); diff --git a/src/filedef.h b/src/filedef.h index 1ad232c..20ac57f 100644 --- a/src/filedef.h +++ b/src/filedef.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/filename.cpp b/src/filename.cpp index 21659ef..929cc5f 100644 --- a/src/filename.cpp +++ b/src/filename.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/filename.h b/src/filename.h index b665255..71620ea 100644 --- a/src/filename.h +++ b/src/filename.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/formula.cpp b/src/formula.cpp index 673ca7e..380a53e 100644 --- a/src/formula.cpp +++ b/src/formula.cpp @@ -1,6 +1,6 @@ /****************************************************************************** i - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/formula.h b/src/formula.h index 581b6a2..ef46baa 100644 --- a/src/formula.h +++ b/src/formula.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/fortrancode.l b/src/fortrancode.l index daf9593..c71de8f 100644 --- a/src/fortrancode.l +++ b/src/fortrancode.l @@ -107,6 +107,7 @@ static Definition * g_currentDefinition; static MemberDef * g_currentMemberDef; static bool g_includeCodeFragment; +static char stringStartSymbol; // single or double quote static void endFontClass() { @@ -831,6 +832,7 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE) } <*>"!"[^>\n].*|"!"$ { // normal comment + if(YY_START == String) REJECT; // ignore in strings startFontClass("comment"); codifyLines(yytext); endFontClass(); @@ -846,26 +848,26 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE) generateLink(*g_code, yytext); g_insideBody=FALSE; } - /*------ strings --------------------------------------------------*/ <*>"\\\\" { str+=yytext; /* ignore \\ */} -<*>"\\\"" { str+=yytext; /* ignore \" */} +<*>"\\\""|\\\' { str+=yytext; /* ignore \" */} -<String>\" { // string ends with next quote without previous backspace +<String>\"|\' { // string ends with next quote without previous backspace + if(yytext[0]!=stringStartSymbol) REJECT; // single vs double quote str+=yytext; startFontClass("stringliteral"); codifyLines(str); endFontClass(); yy_pop_state(); } -<*>\" { /* string starts */ +<*>\"|\' { /* string starts */ + /* if(YY_START == StrIgnore) REJECT; // ignore in simple comments */ yy_push_state(YY_START); - BEGIN(String); + stringStartSymbol=yytext[0]; // single or double quote + BEGIN(String); str=yytext; } -<String>. {str+=yytext;} - - +<String>. {str+=yytext;} /*-----------------------------------------------------------------------------*/ <*>\n { diff --git a/src/fortranscanner.h b/src/fortranscanner.h index 2e16c67..da782a9 100644 --- a/src/fortranscanner.h +++ b/src/fortranscanner.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2006 by Dimitri van Heesch. * diff --git a/src/fortranscanner.l b/src/fortranscanner.l index e4ef1f8..eecdd60 100644 --- a/src/fortranscanner.l +++ b/src/fortranscanner.l @@ -184,7 +184,7 @@ B [ \t] BS [ \t]* BS_ [ \t]+ COMMA {BS},{BS} -ARGS {BS}("("[^)]*")"){BS} +ARGS {BS}("("[^)]*")") NOARGS {BS}"\n" NUM_TYPE (complex|integer|logical|real) @@ -196,7 +196,7 @@ INTENT_SPEC intent{BS}"("{BS}(in|out|in{BS}out){BS}")" ATTR_SPEC (ALLOCATABLE|DIMENSION{ARGS}|EXTERNAL|{INTENT_SPEC}|INTRINSIC|OPTIONAL|PARAMETER|POINTER|PRIVATE|PUBLIC|SAVE|TARGET) ACCESS_SPEC (PRIVATE|PUBLIC) /* Assume that attribute statements are almost the same as attributes. */ -ATTR_STMT {ATTR_SPEC}|DIMENSION +ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC} %option noyywrap %option stack @@ -311,7 +311,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION } /*------ ignore special fortran statements */ -<Start,ModuleBody,SubprogBody>(^|[ \t])interface({BS_}{ID})?/[ \t\n] { // handle interface block +<Start,ModuleBody,SubprogBody>^[ \t]*interface({BS_}{ID}({BS}\({BS}[^ \t()]+{BS}\))?)? { // handle interface block QString name = yytext; int index = name.find("interface", 0, FALSE); index = name.find(QRegExp("[^ \\t]"), index+9); @@ -379,7 +379,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION /*------- type definition -------------------------------------------------------------------------------*/ -<Start,ModuleBody>"type"({BS_}|({COMMA}{ACCESS_SPEC})) { /* type definition found : TYPE , access-spec::type-name |*/ +<Start,ModuleBody>^{BS}"type"({BS_}|({COMMA}{ACCESS_SPEC})) { /* type definition found : TYPE , access-spec::type-name |*/ yy_push_state(YY_START); BEGIN(Typedef); current->protection = defaultProtection; @@ -419,7 +419,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION <Start,ModuleBody,TypedefBody,SubprogBody>{ {TYPE_SPEC}/{SEPARATE} { /* variable declaration starts */ - //cout << "4=========> got variable type: " << yytext << endl; + //fprintf(stderr,"4=========> got variable type: %s\n",yytext); QString help=yytext; help= help.simplifyWhiteSpace(); argType= help.latin1(); @@ -444,9 +444,9 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION REJECT; } } -{ATTR_STMT}{BS}/{ID} { +{ATTR_STMT}/{BS_}{ID}|{BS}"::" { /* attribute statement starts */ - //cout << "5=========> Attribute statement: "<< yytext << endl; + //fprintf(stderr,"5=========> Attribute statement: %s\n", yytext); QString tmp = yytext; currentModifiers |= tmp.stripWhiteSpace(); argType=""; diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp index cf9e6a3..ebe1149 100644 --- a/src/ftvhelp.cpp +++ b/src/ftvhelp.cpp @@ -347,6 +347,7 @@ FTVHelp::~FTVHelp() delete[] m_indentNodes; } +#if 0 /*! return a reference to the one and only instance of this class. */ FTVHelp *FTVHelp::getInstance() @@ -354,6 +355,7 @@ FTVHelp *FTVHelp::getInstance() if (m_theInstance==0) m_theInstance = new FTVHelp; return m_theInstance; } +#endif /*! This will create a folder tree view table of contents file (tree.js). * \sa finalize() @@ -369,6 +371,7 @@ void FTVHelp::initialize() void FTVHelp::finalize() { generateTreeView(); + generateTreeViewImages(); delete m_theInstance; m_theInstance=0; } @@ -377,19 +380,19 @@ void FTVHelp::finalize() * This will start a new sublist in contents file. * \sa decContentsDepth() */ -int FTVHelp::incContentsDepth() +void FTVHelp::incContentsDepth() { //int i; for (i=0;i<m_dc+1;i++) m_cts << " "; m_indent++; ASSERT(m_indent<MAX_INDENT); - return m_indent; + //return m_indent; } /*! Decrease the level of the contents hierarchy. * This will end the current sublist. * \sa incContentsDepth() */ -int FTVHelp::decContentsDepth() +void FTVHelp::decContentsDepth() { //int i; for (i=0;i<m_dc;i++) m_cts << " "; @@ -405,7 +408,7 @@ int FTVHelp::decContentsDepth() parent->children.append(children->take(0)); } } - return m_indent; + //return m_indent; } /*! Add a list item to the contents file. @@ -416,10 +419,10 @@ int FTVHelp::decContentsDepth() * \param name the name of the item. */ void FTVHelp::addContentsItem(bool isDir, + const char *name, const char *ref, const char *file, - const char *anchor, - const char *name + const char *anchor ) { QList<FTVNode> *nl = &m_indentNodes[m_indent]; @@ -611,7 +614,7 @@ void FTVHelp::generateTreeView() t << " <frame src=\"tree" << Doxygen::htmlFileExtension << "\" name=\"treefrm\">" << endl; t << " <frame src=\"main" << Doxygen::htmlFileExtension << "\" name=\"basefrm\">" << endl; t << " <noframes>" << endl; - t << " <a href=\"main.html\">Frames are disabled. Click here to go to the main page.</a>" << endl; + t << " <a href=\"main" << Doxygen::htmlFileExtension << "\">Frames are disabled. Click here to go to the main page.</a>" << endl; t << " </noframes>" << endl; t << "</frameset>" << endl; t << "</html>" << endl; diff --git a/src/ftvhelp.h b/src/ftvhelp.h index 8fdca6a..c2f063a 100644 --- a/src/ftvhelp.h +++ b/src/ftvhelp.h @@ -14,6 +14,7 @@ #include "qtbc.h" #include <qtextstream.h> #include <qlist.h> +#include "index.h" class QFile; struct FTVNode; @@ -54,33 +55,32 @@ extern FTVImageInfo image_info[]; /*! A class that generates a dynamic tree view side panel. */ -class FTVHelp +class FTVHelp : public IndexIntf { public: - static FTVHelp *getInstance(); + FTVHelp(); + //static FTVHelp *getInstance(); void initialize(); void finalize(); - int incContentsDepth(); - int decContentsDepth(); - /*! return the current depth of the contents tree */ - int contentsDepth() const { return m_indent; } + void incContentsDepth(); + void decContentsDepth(); void addContentsItem(bool isDir, + const char *name, const char *ref, const char *file, - const char *anchor, - const char *name); - static void generateTreeViewImages(); + const char *anchor); + void addIndexItem(const char *, const char *, + const char *, const char *, + const char *) {} + void addIndexFile(const char *) {} private: + void generateTreeViewImages(); void generateTreeView(); void generateTree(QTextStream &t,const QList<FTVNode> &nl,int level); void generateIndent(QTextStream &t,FTVNode *n,int level); void generateLink(QTextStream &t,FTVNode *n); - FTVHelp(); ~FTVHelp(); - //QFile *m_cf; - //QTextStream m_cts; - //int m_dc; static FTVHelp *m_theInstance; QList<FTVNode> *m_indentNodes; int m_indent; diff --git a/src/groupdef.cpp b/src/groupdef.cpp index 4370f5c..4905b28 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/groupdef.h b/src/groupdef.h index dddf52b..d0761b2 100644 --- a/src/groupdef.h +++ b/src/groupdef.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/htmlattrib.h b/src/htmlattrib.h index 3291d05..8c852e4 100644 --- a/src/htmlattrib.h +++ b/src/htmlattrib.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp index 8040855..baebc7f 100644 --- a/src/htmldocvisitor.cpp +++ b/src/htmldocvisitor.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/htmldocvisitor.h b/src/htmldocvisitor.h index a91550c..2708c7b 100644 --- a/src/htmldocvisitor.h +++ b/src/htmldocvisitor.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 1cf596d..143baf5 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -658,6 +658,7 @@ static void generateDynamicSections(QTextStream &t,const QCString &relPath) " button.src='" << relPath << "closed.gif';\n" " section.id='dynsection'+sectionCounter;\n" " section.style.display='none';\n" + " section.style.marginLeft='14px';\n" " sectionCounter++;\n" " }\n" " }\n" @@ -682,10 +683,11 @@ void HtmlGenerator::startFile(const char *name,const char *, fileName+=Doxygen::htmlFileExtension; } startPlainFile(fileName); - if (Config_getBool("GENERATE_HTMLHELP")) - { - HtmlHelp::getInstance()->addIndexFile(fileName); - } + Doxygen::indexList.addIndexFile(fileName); + //if (Config_getBool("GENERATE_HTMLHELP")) + //{ + // HtmlHelp::getInstance()->addIndexFile(fileName); + //} QCString dispTitle = title; QCString projName = Config_getString("PROJECT_NAME"); @@ -1118,7 +1120,7 @@ void HtmlGenerator::startClassDiagram() t << "<div class=\"dynheader\">" << endl; } -void HtmlGenerator::endClassDiagram(ClassDiagram &d, +void HtmlGenerator::endClassDiagram(const ClassDiagram &d, const char *fileName,const char *name) { t << "</div>" << endl; @@ -1490,7 +1492,7 @@ void HtmlGenerator::startDotGraph() t << "<div class=\"dynheader\">" << endl; } -void HtmlGenerator::endDotGraph(DotClassGraph &g) +void HtmlGenerator::endDotGraph(const DotClassGraph &g) { t << "</div>" << endl; t << "<div class=\"dynsection\">" << endl; @@ -1511,7 +1513,7 @@ void HtmlGenerator::startInclDepGraph() t << "<div class=\"dynheader\">" << endl; } -void HtmlGenerator::endInclDepGraph(DotInclDepGraph &g) +void HtmlGenerator::endInclDepGraph(const DotInclDepGraph &g) { t << "</div>" << endl; t << "<div class=\"dynsection\">" << endl; @@ -1524,7 +1526,7 @@ void HtmlGenerator::startGroupCollaboration() t << "<div class=\"dynheader\">" << endl; } -void HtmlGenerator::endGroupCollaboration(DotGroupCollaboration &g) +void HtmlGenerator::endGroupCollaboration(const DotGroupCollaboration &g) { t << "</div>" << endl; t << "<div class=\"dynsection\">" << endl; @@ -1537,7 +1539,7 @@ void HtmlGenerator::startCallGraph() t << "<div class=\"dynheader\">" << endl; } -void HtmlGenerator::endCallGraph(DotCallGraph &g) +void HtmlGenerator::endCallGraph(const DotCallGraph &g) { t << "</div>" << endl; t << "<div class=\"dynsection\">" << endl; @@ -1550,7 +1552,7 @@ void HtmlGenerator::startDirDepGraph() t << "<div class=\"dynheader\">" << endl; } -void HtmlGenerator::endDirDepGraph(DotDirDeps &g) +void HtmlGenerator::endDirDepGraph(const DotDirDeps &g) { t << "</div>" << endl; t << "<div class=\"dynsection\">" << endl; @@ -1558,7 +1560,7 @@ void HtmlGenerator::endDirDepGraph(DotDirDeps &g) t << "</div>" << endl; } -void HtmlGenerator::writeGraphicalHierarchy(DotGfxHierarchyTable &g) +void HtmlGenerator::writeGraphicalHierarchy(const DotGfxHierarchyTable &g) { g.writeGraph(t,dir); } diff --git a/src/htmlgen.h b/src/htmlgen.h index 5c318be..3af767c 100644 --- a/src/htmlgen.h +++ b/src/htmlgen.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -173,11 +173,9 @@ class HtmlGenerator : public OutputGenerator void endIndent(); void writeSynopsis() {} void startClassDiagram(); - void endClassDiagram(ClassDiagram &,const char *,const char *); + void endClassDiagram(const ClassDiagram &,const char *,const char *); void startPageRef() {} void endPageRef(const char *,const char *) {} - //void startQuickIndexItem(const char *,const char *); - //void endQuickIndexItem(); void writeQuickLinks(bool compact,HighlightedItem hli); void writeNonBreakableSpace(int); @@ -195,16 +193,16 @@ class HtmlGenerator : public OutputGenerator { t << "</td></tr>" << endl; } void startDotGraph(); - void endDotGraph(DotClassGraph &g); + void endDotGraph(const DotClassGraph &g); void startInclDepGraph(); - void endInclDepGraph(DotInclDepGraph &g); + void endInclDepGraph(const DotInclDepGraph &g); void startGroupCollaboration(); - void endGroupCollaboration(DotGroupCollaboration &g); + void endGroupCollaboration(const DotGroupCollaboration &g); void startCallGraph(); - void endCallGraph(DotCallGraph &g); + void endCallGraph(const DotCallGraph &g); void startDirDepGraph(); - void endDirDepGraph(DotDirDeps &g); - void writeGraphicalHierarchy(DotGfxHierarchyTable &g); + void endDirDepGraph(const DotDirDeps &g); + void writeGraphicalHierarchy(const DotGfxHierarchyTable &g); void startTextBlock(bool) {} void endTextBlock(bool) {} diff --git a/src/htmlhelp.cpp b/src/htmlhelp.cpp index 58e79f2..1ff3101 100644 --- a/src/htmlhelp.cpp +++ b/src/htmlhelp.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -270,6 +270,7 @@ HtmlHelp::HtmlHelp() : indexFileDict(1009) index = new HtmlHelpIndex; } +#if 0 /*! return a reference to the one and only instance of this class. */ HtmlHelp *HtmlHelp::getInstance() @@ -277,6 +278,7 @@ HtmlHelp *HtmlHelp::getInstance() if (theInstance==0) theInstance = new HtmlHelp; return theInstance; } +#endif static QDict<QCString> s_languageDict; @@ -504,47 +506,50 @@ void HtmlHelp::finalize() * This will start a new unnumbered HTML list in contents file. * \sa decContentsDepth() */ -int HtmlHelp::incContentsDepth() +void HtmlHelp::incContentsDepth() { int i; for (i=0;i<dc+1;i++) cts << " "; cts << "<UL>\n"; - return ++dc; + ++dc; } /*! Decrease the level of the contents hierarchy. * This will end the unnumber HTML list. * \sa incContentsDepth() */ -int HtmlHelp::decContentsDepth() +void HtmlHelp::decContentsDepth() { int i; for (i=0;i<dc;i++) cts << " "; cts << "</UL>\n"; - return --dc; + --dc; } /*! Add an list item to the contents file. * \param isDir boolean indicating if this is a dir or file entry * \param name the name of the item. * \param ref the URL of to the item. + * \param file the file in which the item is defined. * \param anchor the anchor of the item. */ void HtmlHelp::addContentsItem(bool isDir, - const char *name,const char *ref, + const char *name, + const char * /*ref*/, + const char *file, const char *anchor) { // If we're using a binary toc then folders cannot have links. if(Config_getBool("BINARY_TOC") && isDir) { - ref = 0; + file = 0; anchor = 0; } int i; for (i=0;i<dc;i++) cts << " "; cts << "<LI><OBJECT type=\"text/sitemap\">"; cts << "<param name=\"Name\" value=\"" << name << "\">"; - if (ref) // made ref optional param - KPW + if (file) // made file optional param - KPW { - cts << "<param name=\"Local\" value=\"" << ref << Doxygen::htmlFileExtension; + cts << "<param name=\"Local\" value=\"" << file << Doxygen::htmlFileExtension; if (anchor) cts << "#" << anchor; cts << "\">"; } diff --git a/src/htmlhelp.h b/src/htmlhelp.h index 81cac26..fb11d87 100644 --- a/src/htmlhelp.h +++ b/src/htmlhelp.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -24,6 +24,7 @@ #include "qtbc.h" #include <qtextstream.h> #include <qstrlist.h> +#include "index.h" class QFile; class HtmlHelpIndex; @@ -32,7 +33,7 @@ class HtmlHelpIndex; * These files can be used with the Microsoft HTML Help workshop * to generate compressed HTML files (.chm). */ -class HtmlHelp +class HtmlHelp : public IndexIntf { /*! used in imageNumber param of HTMLHelp::addContentsItem() function to specify document icon in tree view. @@ -61,28 +62,25 @@ class HtmlHelp TOOL, TOOL_NEW }; public: - static HtmlHelp *getInstance(); + //static HtmlHelp *getInstance(); + HtmlHelp(); void initialize(); void finalize(); - int incContentsDepth(); - int decContentsDepth(); - /*! return the current depth of the contents tree */ - int contentsDepth() { return dc; } - // added imageNumber - KPW + void incContentsDepth(); + void decContentsDepth(); void addContentsItem(bool isDir, const char *name, const char *ref = 0, + const char *file = 0, const char *anchor = 0); void addIndexItem(const char *level1, const char *level2, const char *contRef, const char *memRef, const char *anchor); void addIndexFile(const char *name); - private: void createProjectFile(); - HtmlHelp(); QFile *cf,*kf; QTextStream cts,kts; HtmlHelpIndex *index; diff --git a/src/image.cpp b/src/image.cpp index 811317a..799ef75 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/image.h b/src/image.h index 34a07f3..11e15a6 100644 --- a/src/image.h +++ b/src/image.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/index.cpp b/src/index.cpp index 316963e..100cf99 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -303,19 +303,6 @@ static bool classHasVisibleChildren(ClassDef *cd) void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level) { if (bcl==0) return; - HtmlHelp *htmlHelp=0; - FTVHelp *ftvHelp=0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - } BaseClassListIterator bcli(*bcl); bool started=FALSE; for ( ; bcli.current() ; ++bcli) @@ -326,8 +313,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level) if (!started) { startIndexHierarchy(ol,level); - if (hasHtmlHelp) htmlHelp->incContentsDepth(); - if (hasFtvHelp) ftvHelp->incContentsDepth(); + Doxygen::indexList.incContentsDepth(); started=TRUE; } //printf("Passed...\n"); @@ -345,28 +331,18 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level) ol.docify(" [external]"); ol.endTypewriter(); } - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(hasChildren,cd->displayName(),cd->getOutputFileBase()); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->displayName()); - } + Doxygen::indexList.addContentsItem(hasChildren, + cd->displayName(), + cd->getReference(), + cd->getOutputFileBase(), + 0); } else { ol.startIndexItem(0,0); ol.parseText(cd->name()); ol.endIndexItem(0,0); - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(hasChildren,cd->displayName(),0); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(hasChildren,0,0,0,cd->displayName()); - } + Doxygen::indexList.addContentsItem(hasChildren,cd->displayName(),0,0,0); } if (hasChildren) { @@ -380,8 +356,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level) if (started) { endIndexHierarchy(ol,level); - if (hasHtmlHelp) htmlHelp->decContentsDepth(); - if (hasFtvHelp) ftvHelp->decContentsDepth(); + Doxygen::indexList.decContentsDepth(); } } @@ -392,19 +367,6 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level) void writeClassTree(BaseClassList *cl,int level) { if (cl==0) return; - HtmlHelp *htmlHelp=0; - FTVHelp *ftvHelp=0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - } BaseClassListIterator cli(*cl); bool started=FALSE; for ( ; cli.current() ; ++cli) @@ -415,22 +377,14 @@ void writeClassTree(BaseClassList *cl,int level) { if (!started) { - if (hasHtmlHelp) htmlHelp->incContentsDepth(); - if (hasFtvHelp) ftvHelp->incContentsDepth(); + Doxygen::indexList.incContentsDepth(); started=TRUE; } bool hasChildren = !cd->visited && classHasVisibleChildren(cd); //printf("tree2: Has children %s: %d\n",cd->name().data(),hasChildren); if (cd->isLinkable()) { - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(hasChildren,cd->displayName(),cd->getOutputFileBase()); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->displayName()); - } + Doxygen::indexList.addContentsItem(hasChildren,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),0); } if (hasChildren) { @@ -441,15 +395,14 @@ void writeClassTree(BaseClassList *cl,int level) } if (started) { - if (hasHtmlHelp) htmlHelp->decContentsDepth(); - if (hasFtvHelp) ftvHelp->decContentsDepth(); + Doxygen::indexList.decContentsDepth(); } } //---------------------------------------------------------------------------- /*! Generates HTML Help tree of classes */ -void writeClassTreeNode(ClassDef *cd,bool hasHtmlHelp,bool hasFtvHelp,bool &started,int level) +void writeClassTreeNode(ClassDef *cd,bool &started,int level) { //printf("writeClassTreeNode(%s) visited=%d\n",cd->name().data(),cd->visited); if (cd->isVisibleInHierarchy() && !cd->visited) @@ -462,14 +415,7 @@ void writeClassTreeNode(ClassDef *cd,bool hasHtmlHelp,bool hasFtvHelp,bool &star //printf("node: Has children %s: %d\n",cd->name().data(),hasChildren); if (cd->isLinkable()) { - if (hasHtmlHelp) - { - HtmlHelp::getInstance()->addContentsItem(hasChildren,cd->displayName(),cd->getOutputFileBase()); - } - if (hasFtvHelp) - { - FTVHelp::getInstance()->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->displayName()); - } + Doxygen::indexList.addContentsItem(hasChildren,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),0); } if (hasChildren) { @@ -482,9 +428,6 @@ void writeClassTreeNode(ClassDef *cd,bool hasHtmlHelp,bool hasFtvHelp,bool &star void writeClassTree(ClassList *cl,int level) { if (cl==0) return; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); ClassListIterator cli(*cl); bool started=FALSE; for ( cli.toFirst() ; cli.current() ; ++cli) @@ -493,16 +436,13 @@ void writeClassTree(ClassList *cl,int level) } for ( cli.toFirst() ; cli.current() ; ++cli) { - writeClassTreeNode(cli.current(),hasHtmlHelp,hasFtvHelp,started,level); + writeClassTreeNode(cli.current(),started,level); } } void writeClassTree(ClassSDict *d,int level) { if (d==0) return; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); ClassSDict::Iterator cli(*d); bool started=FALSE; for ( cli.toFirst() ; cli.current() ; ++cli) @@ -511,7 +451,7 @@ void writeClassTree(ClassSDict *d,int level) } for ( cli.toFirst() ; cli.current() ; ++cli) { - writeClassTreeNode(cli.current(),hasHtmlHelp,hasFtvHelp,started,level); + writeClassTreeNode(cli.current(),started,level); } } @@ -519,20 +459,6 @@ void writeClassTree(ClassSDict *d,int level) static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started) { - HtmlHelp *htmlHelp=0; - FTVHelp *ftvHelp=0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - } - ClassSDict::Iterator cli(*cl); for (;cli.current(); ++cli) { @@ -549,8 +475,7 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started) if (!started) { startIndexHierarchy(ol,0); - if (hasHtmlHelp) htmlHelp->incContentsDepth(); - if (hasFtvHelp) ftvHelp->incContentsDepth(); + Doxygen::indexList.incContentsDepth(); started=TRUE; } bool hasChildren = !cd->visited && classHasVisibleChildren(cd); @@ -568,28 +493,14 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started) ol.docify(" [external]"); ol.endTypewriter(); } - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(hasChildren,cd->displayName(),cd->getOutputFileBase()); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->displayName()); - } + Doxygen::indexList.addContentsItem(hasChildren,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),0); } else { ol.startIndexItem(0,0); ol.parseText(cd->displayName()); ol.endIndexItem(0,0); - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(hasChildren,cd->displayName(),0); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(hasChildren,0,0,0,cd->displayName()); - } + Doxygen::indexList.addContentsItem(hasChildren,cd->displayName(),0,0,0); } if (hasChildren) { @@ -603,20 +514,6 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started) void writeClassHierarchy(OutputList &ol) { - HtmlHelp *htmlHelp=0; - FTVHelp *ftvHelp=0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - } - initClassHierarchy(Doxygen::classSDict); initClassHierarchy(Doxygen::hiddenClasses); @@ -626,8 +523,7 @@ void writeClassHierarchy(OutputList &ol) if (started) { endIndexHierarchy(ol,0); - if (hasHtmlHelp) htmlHelp->decContentsDepth(); - if (hasFtvHelp) ftvHelp->decContentsDepth(); + Doxygen::indexList.decContentsDepth(); } } @@ -675,8 +571,6 @@ void writeHierarchicalIndex(OutputList &ol) HLI_Hierarchy); startTitle(ol,0); QCString title = theTranslator->trClassHierarchy(); - QCString htmlHelpTitle = title; - QCString ftvHelpTitle = title; if (!Config_getString("PROJECT_NAME").isEmpty()) { title.prepend(Config_getString("PROJECT_NAME")+" "); @@ -684,21 +578,7 @@ void writeHierarchicalIndex(OutputList &ol) ol.parseText(title); endTitle(ol,0,0); ol.startTextBlock(); - HtmlHelp *htmlHelp = 0; - FTVHelp *ftvHelp = 0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"hierarchy"); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(TRUE,0,"hierarchy",0,ftvHelpTitle); - } + Doxygen::indexList.addContentsItem(TRUE,title,0,"hierarchy",0); if (Config_getBool("HAVE_DOT") && Config_getBool("GRAPHICAL_HIERARCHY")) { ol.disable(OutputGenerator::Latex); @@ -726,27 +606,11 @@ void writeGraphicalClassHierarchy(OutputList &ol) QCString title = theTranslator->trGraphicalHierarchy(); startFile(ol,"inherits",0,title.data(),HLI_Hierarchy); startTitle(ol,0); - QCString htmlHelpTitle = title; - QCString ftvHelpTitle = title; if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" "); ol.parseText(title); endTitle(ol,0,0); ol.startTextBlock(); - HtmlHelp *htmlHelp = 0; - FTVHelp *ftvHelp = 0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"inherits"); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(FALSE,0,"inherits",0,ftvHelpTitle); - } + Doxygen::indexList.addContentsItem(FALSE,title,0,"inherits",0); ol.startTextLink("hierarchy",0); ol.parseText(theTranslator->trGotoTextualHierarchy()); ol.endTextLink(); @@ -803,29 +667,12 @@ void writeFileIndex(OutputList &ol) startFile(ol,"files",0,theTranslator->trFileIndex().data(),HLI_Files); startTitle(ol,0); QCString title = theTranslator->trFileList(); - QCString htmlHelpTitle = title; - QCString ftvHelpTitle = title; if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" "); ol.parseText(title); endTitle(ol,0,0); ol.startTextBlock(); - HtmlHelp *htmlHelp = 0; - FTVHelp *ftvHelp = 0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"files"); - htmlHelp->incContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(TRUE,0,"files",0,ftvHelpTitle); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE,title,0,"files",0); + Doxygen::indexList.incContentsDepth(); ol.parseText(theTranslator->trFileListDescription(Config_getBool("EXTRACT_ALL"))); ol.endTextBlock(); @@ -903,28 +750,14 @@ void writeFileIndex(OutputList &ol) if (doc) { ol.writeObjectLink(0,fd->getOutputFileBase(),0,fd->name()); - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(FALSE,fullName,fd->getOutputFileBase()); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(FALSE,fd->getReference(),fd->getOutputFileBase(),0,fullName); - } + Doxygen::indexList.addContentsItem(FALSE,fullName,fd->getReference(),fd->getOutputFileBase(),0); } else { ol.startBold(); ol.docify(fd->name()); ol.endBold(); - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(FALSE,fullName,0); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(FALSE,0,0,0,fullName); - } + Doxygen::indexList.addContentsItem(FALSE,fullName,0,0,0); } if (src) { @@ -972,14 +805,7 @@ void writeFileIndex(OutputList &ol) } } ol.endIndexList(); - if (hasHtmlHelp) - { - htmlHelp->decContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp->decContentsDepth(); - } + Doxygen::indexList.decContentsDepth(); endFile(ol); ol.popGeneratorState(); } @@ -1016,29 +842,12 @@ void writeNamespaceIndex(OutputList &ol) title = theTranslator->trNamespaceList(); } startTitle(ol,0); - QCString htmlHelpTitle = title; - QCString ftvHelpTitle = title; if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" "); ol.parseText(title); endTitle(ol,0,0); ol.startTextBlock(); - HtmlHelp *htmlHelp = 0; - FTVHelp *ftvHelp = 0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"namespaces"); - htmlHelp->incContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(TRUE,0,"namespaces",0,ftvHelpTitle); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE,title,0,"namespaces",0); + Doxygen::indexList.incContentsDepth(); //ol.newParagraph(); if (Config_getBool("OPTIMIZE_OUTPUT_JAVA")) { @@ -1087,25 +896,11 @@ void writeNamespaceIndex(OutputList &ol) } ol.endIndexValue(nd->getOutputFileBase(),hasBrief); //ol.writeEndAnnoItem(nd->getOutputFileBase()); - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(FALSE,nd->displayName(),nd->getOutputFileBase()); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(FALSE,nd->getReference(),nd->getOutputFileBase(),0,nd->displayName()); - } + Doxygen::indexList.addContentsItem(FALSE,nd->displayName(),nd->getReference(),nd->getOutputFileBase(),0); } } if (!first) ol.endIndexList(); - if (hasHtmlHelp) - { - htmlHelp->decContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp->decContentsDepth(); - } + Doxygen::indexList.decContentsDepth(); endFile(ol); ol.popGeneratorState(); } @@ -1133,9 +928,6 @@ int countAnnotatedClasses() void writeAnnotatedClassList(OutputList &ol) { - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); ol.startIndexList(); ClassSDict::Iterator cli(*Doxygen::classSDict); ClassDef *cd; @@ -1210,14 +1002,7 @@ void writeAnnotatedClassList(OutputList &ol) } ol.endIndexValue(cd->getOutputFileBase(),hasBrief); //ol.writeEndAnnoItem(cd->getOutputFileBase()); - if (hasHtmlHelp) - { - HtmlHelp::getInstance()->addContentsItem(FALSE,cd->displayName(),cd->getOutputFileBase()); - } - if (hasFtvHelp) - { - FTVHelp::getInstance()->addContentsItem(FALSE,cd->getReference(),cd->getOutputFileBase(),0,cd->displayName()); - } + Doxygen::indexList.addContentsItem(FALSE,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),0); } } ol.endIndexList(); @@ -1473,10 +1258,6 @@ void writeAlphabeticalIndex(OutputList &ol) void writeAnnotatedIndex(OutputList &ol) { - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (annotatedClasses==0) return; ol.pushGeneratorState(); @@ -1484,37 +1265,16 @@ void writeAnnotatedIndex(OutputList &ol) QCString title = theTranslator->trCompoundList(); startFile(ol,"annotated",0,title.data(),HLI_Annotated); startTitle(ol,0); - QCString htmlHelpTitle = title; - QCString ftvHelpTitle = title; if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" "); ol.parseText(title); endTitle(ol,0,0); ol.startTextBlock(); - HtmlHelp *htmlHelp = 0; - FTVHelp *ftvHelp = 0; - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"annotated"); - htmlHelp->incContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(TRUE,0,"annotated",0,ftvHelpTitle); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE,title,0,"annotated",0); + Doxygen::indexList.incContentsDepth(); ol.parseText(theTranslator->trCompoundListDescription()); ol.endTextBlock(); writeAnnotatedClassList(ol); - if (hasHtmlHelp) - { - htmlHelp->decContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp->decContentsDepth(); - } + Doxygen::indexList.decContentsDepth(); endFile(ol); ol.popGeneratorState(); @@ -2007,19 +1767,7 @@ void writeClassMemberIndex(OutputList &ol) if (documentedClassMembers[CMHL_All]>0) { QCString title = theTranslator->trCompoundMembers(); - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - HtmlHelp *htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(FALSE,title,"functions"); - } - if (hasFtvHelp) - { - FTVHelp *ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(FALSE,0,"functions",0,title); - } + Doxygen::indexList.addContentsItem(FALSE,title,0,"functions",0); } } @@ -2139,19 +1887,7 @@ void writeFileMemberIndex(OutputList &ol) if (documentedFileMembers[FMHL_All]>0) { QCString title = theTranslator->trFileMembers(); - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - HtmlHelp *htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(FALSE,title,"globals"); - } - if (hasFtvHelp) - { - FTVHelp *ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(FALSE,0,"globals",0,title); - } + Doxygen::indexList.addContentsItem(FALSE,title,0,"globals",0); } } @@ -2268,19 +2004,7 @@ void writeNamespaceMemberIndex(OutputList &ol) if (documentedNamespaceMembers[NMHL_All]>0) { QCString title = theTranslator->trNamespaceMembers(); - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - HtmlHelp *htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(FALSE,title,"namespacemembers"); - } - if (hasFtvHelp) - { - FTVHelp *ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(FALSE,0,"namespacemembers",0,title); - } + Doxygen::indexList.addContentsItem(FALSE,title,0,"namespacemembers",0); } } @@ -2294,29 +2018,12 @@ void writeExampleIndex(OutputList &ol) QCString title = theTranslator->trExamples(); startFile(ol,"examples",0,title.data(),HLI_Examples); startTitle(ol,0); - QCString htmlHelpTitle = title; - QCString ftvHelpTitle = title; if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" "); ol.parseText(title); endTitle(ol,0,0); ol.startTextBlock(); - HtmlHelp *htmlHelp = 0; - FTVHelp *ftvHelp = 0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"examples"); - htmlHelp->incContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(TRUE,0,"examples",0,ftvHelpTitle); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE,title,0,"examples",0); + Doxygen::indexList.incContentsDepth(); ol.parseText(theTranslator->trExamplesDescription()); //ol.newParagraph(); ol.endTextBlock(); @@ -2330,26 +2037,17 @@ void writeExampleIndex(OutputList &ol) if (!pd->title().isEmpty()) { ol.writeObjectLink(0,n,0,pd->title()); - if (hasHtmlHelp) htmlHelp->addContentsItem(FALSE,pd->title(),n); - if (hasFtvHelp) ftvHelp->addContentsItem(FALSE,pd->getReference(),n,0,pd->title()); + Doxygen::indexList.addContentsItem(FALSE,pd->title(),pd->getReference(),n,0); } else { ol.writeObjectLink(0,n,0,pd->name()); - if (hasHtmlHelp) htmlHelp->addContentsItem(FALSE,pd->name(),n); - if (hasFtvHelp) ftvHelp->addContentsItem(FALSE,pd->getReference(),n,0,pd->name()); + Doxygen::indexList.addContentsItem(FALSE,pd->name(),pd->getReference(),n,0); } ol.writeString("\n"); } ol.endItemList(); - if (hasHtmlHelp) - { - htmlHelp->decContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp->decContentsDepth(); - } + Doxygen::indexList.decContentsDepth(); endFile(ol); ol.popGeneratorState(); } @@ -2379,21 +2077,7 @@ void countRelatedPages(int &docPages,int &indexPages) static void writeSubPages(PageDef *pd) { //printf("Write subpages(%s #=%d)\n",pd->name().data(),pd->getSubPages() ? pd->getSubPages()->count() : 0 ); - static bool generateHtml = Config_getBool("GENERATE_HTML") ; - static bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - static bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - HtmlHelp *htmlHelp = 0; - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->incContentsDepth(); - } - FTVHelp *ftvHelp = 0; - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.incContentsDepth(); PageSDict *subPages = pd->getSubPages(); if (subPages) @@ -2411,25 +2095,12 @@ static void writeSubPages(PageDef *pd) bool hasSubPages = subPage->hasSubPages(); - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(hasSubPages,pageTitle,subPage->getOutputFileBase()); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(hasSubPages,subPage->getReference(),subPage->getOutputFileBase(),0,pageTitle); - } + Doxygen::indexList.addContentsItem(hasSubPages,pageTitle,subPage->getReference(),subPage->getOutputFileBase(),0); writeSubPages(subPage); } } - if (hasHtmlHelp) - { - htmlHelp->decContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp->decContentsDepth(); - } + Doxygen::indexList.decContentsDepth(); + } void writePageIndex(OutputList &ol) @@ -2440,29 +2111,12 @@ void writePageIndex(OutputList &ol) startFile(ol,"pages",0,theTranslator->trPageIndex().data(),HLI_Pages); startTitle(ol,0); QCString title = theTranslator->trRelatedPages(); - QCString htmlHelpTitle = title; - QCString ftvHelpTitle = title; if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" "); ol.parseText(title); endTitle(ol,0,0); ol.startTextBlock(); - HtmlHelp *htmlHelp = 0; - FTVHelp *ftvHelp = 0; - static bool generateHtml = Config_getBool("GENERATE_HTML") ; - static bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - static bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"pages"); - htmlHelp->incContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(TRUE,0,"pages",0,ftvHelpTitle); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE,title,0,"pages",0); + Doxygen::indexList.incContentsDepth(); ol.parseText(theTranslator->trRelatedPagesDescription()); ol.endTextBlock(); startIndexHierarchy(ol,0); @@ -2491,26 +2145,12 @@ void writePageIndex(OutputList &ol) ol.endTypewriter(); } ol.writeString("\n"); - if (hasHtmlHelp) - { - htmlHelp->addContentsItem(hasSubPages,pageTitle,pd->getOutputFileBase()); - } - if (hasFtvHelp) - { - ftvHelp->addContentsItem(hasSubPages,pd->getReference(),pd->getOutputFileBase(),0,pageTitle); - } + Doxygen::indexList.addContentsItem(hasSubPages,pageTitle,pd->getReference(),pd->getOutputFileBase(),0); writeSubPages(pd); } } endIndexHierarchy(ol,0); - if (hasHtmlHelp) - { - htmlHelp->decContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp->decContentsDepth(); - } + Doxygen::indexList.decContentsDepth(); endFile(ol); ol.popGeneratorState(); } @@ -2573,8 +2213,7 @@ void writeGraphInfo(OutputList &ol) ol.popGeneratorState(); } -void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &title, - HtmlHelp *htmlHelp,FTVHelp *ftvHelp) +void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &title) { if (ml && ml->count()>0) { @@ -2587,33 +2226,18 @@ void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &title, if (first) { first=FALSE; - if (htmlHelp) - { - htmlHelp->addContentsItem(TRUE, convertToHtml(title,TRUE), gd->getOutputFileBase(),0); - htmlHelp->incContentsDepth(); - } - if (ftvHelp) - { - - ftvHelp->addContentsItem(TRUE, gd->getReference(), gd->getOutputFileBase(), 0, title); - ftvHelp->incContentsDepth(); - } - } - if (htmlHelp) - { - htmlHelp->addContentsItem(FALSE,md->name(),md->getOutputFileBase(),md->anchor()); - } - if (ftvHelp) - { - ftvHelp->addContentsItem(FALSE,md->getReference(),md->getOutputFileBase(),md->anchor(),md->name()); + Doxygen::indexList.addContentsItem(TRUE, convertToHtml(title,TRUE), gd->getReference(), gd->getOutputFileBase(), 0); + Doxygen::indexList.incContentsDepth(); } + Doxygen::indexList.addContentsItem(FALSE,md->name(),md->getReference(),md->getOutputFileBase(),md->anchor()); } md=ml->next(); } - if (htmlHelp && !first) htmlHelp->decContentsDepth(); - if (ftvHelp && !first) ftvHelp->decContentsDepth(); - + if (!first) + { + Doxygen::indexList.decContentsDepth(); + } } } @@ -2624,8 +2248,6 @@ void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &title, */ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) { - HtmlHelp *htmlHelp=0; - FTVHelp *ftvHelp = 0; if (level>20) { warn(gd->getDefFileName(),gd->getDefLine(), @@ -2633,17 +2255,6 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) ); return; } - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - } /* Some groups should appear twice under different parent-groups. * That is why we should not check if it was visited @@ -2676,17 +2287,8 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) bool isDir = hasSubGroups || hasSubPages || numSubItems>0; //printf("gd=`%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count()); - if (htmlHelp) - { - htmlHelp->addContentsItem(isDir,gd->groupTitle(),gd->getOutputFileBase()); - htmlHelp->incContentsDepth(); - } - if (ftvHelp) - { - ftvHelp->addContentsItem(isDir,gd->getReference(),gd->getOutputFileBase(), - 0,gd->groupTitle()); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(isDir,gd->groupTitle(),gd->getReference(),gd->getOutputFileBase(),0); + Doxygen::indexList.incContentsDepth(); //ol.writeListItem(); //ol.startTextLink(gd->getOutputFileBase(),0); @@ -2714,16 +2316,11 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) { SectionInfo *si=0; if (!pd->name().isEmpty()) si=Doxygen::sectionDict[pd->name()]; - if (htmlHelp) htmlHelp->addContentsItem(FALSE, + Doxygen::indexList.addContentsItem(FALSE, convertToHtml(pd->title(),TRUE), - gd->getOutputFileBase(), - si ? si->label.data() : 0 - ); - if (ftvHelp) ftvHelp->addContentsItem(FALSE, gd->getReference(), gd->getOutputFileBase(), - si ? si->label.data() : 0, - convertToHtml(pd->title(),TRUE) + si ? si->label.data() : 0 ); } @@ -2744,67 +2341,39 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) if (Config_getBool("TOC_EXPAND")) { writeGroupIndexItem(gd,gd->getMemberList(MemberList::docDefineMembers), - theTranslator->trDefines(),htmlHelp,ftvHelp); + theTranslator->trDefines()); writeGroupIndexItem(gd,gd->getMemberList(MemberList::docTypedefMembers), - theTranslator->trTypedefs(),htmlHelp,ftvHelp); + theTranslator->trTypedefs()); writeGroupIndexItem(gd,gd->getMemberList(MemberList::docEnumMembers), - theTranslator->trEnumerations(),htmlHelp,ftvHelp); + theTranslator->trEnumerations()); writeGroupIndexItem(gd,gd->getMemberList(MemberList::docFuncMembers), - theTranslator->trFunctions(),htmlHelp,ftvHelp); + theTranslator->trFunctions()); writeGroupIndexItem(gd,gd->getMemberList(MemberList::docVarMembers), - theTranslator->trVariables(),htmlHelp,ftvHelp); + theTranslator->trVariables()); writeGroupIndexItem(gd,gd->getMemberList(MemberList::docProtoMembers), - theTranslator->trFuncProtos(),htmlHelp,ftvHelp); + theTranslator->trFuncProtos()); // write namespaces NamespaceSDict *namespaceSDict=gd->namespaceSDict; if (namespaceSDict->count()>0) { - if (htmlHelp) - { - htmlHelp->addContentsItem(TRUE, convertToHtml(theTranslator->trNamespaces(),TRUE), gd->getOutputFileBase(), 0); - htmlHelp->incContentsDepth(); - } - - if (ftvHelp) - { - - ftvHelp->addContentsItem(TRUE, gd->getReference(), gd->getOutputFileBase(), 0, theTranslator->trNamespaces()); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE, convertToHtml(theTranslator->trNamespaces(),TRUE),gd->getReference(), gd->getOutputFileBase(), 0); + Doxygen::indexList.incContentsDepth(); NamespaceSDict::Iterator ni(*namespaceSDict); NamespaceDef *nsd; for (ni.toFirst();(nsd=ni.current());++ni) { - if (htmlHelp) - { - htmlHelp->addContentsItem(FALSE, convertToHtml(nsd->name(),TRUE), nsd->getOutputFileBase()); - } - if (ftvHelp) - { - ftvHelp->addContentsItem(FALSE, nsd->getReference(), nsd->getOutputFileBase(), 0, convertToHtml(nsd->name(),TRUE)); - } + Doxygen::indexList.addContentsItem(FALSE, convertToHtml(nsd->name(),TRUE), nsd->getReference(), nsd->getOutputFileBase(), 0); } - if (htmlHelp) htmlHelp->decContentsDepth(); - if (ftvHelp) ftvHelp->decContentsDepth(); + Doxygen::indexList.decContentsDepth(); } // write classes if (gd->classSDict->count()>0) { - if (htmlHelp) - { - htmlHelp->addContentsItem(TRUE, convertToHtml(theTranslator->trClasses(),TRUE), gd->getOutputFileBase(), 0); - htmlHelp->incContentsDepth(); - } - - if (ftvHelp) - { - - ftvHelp->addContentsItem(TRUE, gd->getReference(), gd->getOutputFileBase(), 0, theTranslator->trClasses()); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE, convertToHtml(theTranslator->trClasses(),TRUE), gd->getReference(), gd->getOutputFileBase(), 0); + Doxygen::indexList.incContentsDepth(); ClassDef *cd; ClassSDict::Iterator cdi(*gd->classSDict); @@ -2813,91 +2382,52 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) if (cd->isLinkable()) { //printf("node: Has children %s\n",cd->name().data()); - if (htmlHelp) - htmlHelp->addContentsItem(FALSE,cd->displayName(),cd->getOutputFileBase()); - if (ftvHelp) - ftvHelp->addContentsItem(FALSE,cd->getReference(),cd->getOutputFileBase(),0,cd->displayName()); + Doxygen::indexList.addContentsItem(FALSE,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),0); } } //writeClassTree(gd->classSDict,1); - if (htmlHelp) htmlHelp->decContentsDepth(); - if (ftvHelp) ftvHelp->decContentsDepth(); + Doxygen::indexList.decContentsDepth(); } // write file list FileList *fileList=gd->fileList; if (fileList->count()>0) { - if (htmlHelp) - { - htmlHelp->addContentsItem(TRUE, - convertToHtml(theTranslator->trFile(TRUE,FALSE),TRUE), + Doxygen::indexList.addContentsItem(TRUE, + theTranslator->trFile(TRUE,FALSE), + gd->getReference(), gd->getOutputFileBase(), 0); - htmlHelp->incContentsDepth(); - } - - if (ftvHelp) - { - - ftvHelp->addContentsItem(TRUE, gd->getReference(), - gd->getOutputFileBase(), 0, - theTranslator->trFile(TRUE,FALSE)); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.incContentsDepth(); FileDef *fd=fileList->first(); while (fd) { - if (htmlHelp) - htmlHelp->addContentsItem(FALSE,convertToHtml(fd->name(),TRUE),fd->getOutputFileBase()); - if (ftvHelp) - ftvHelp->addContentsItem(FALSE, fd->getReference(), fd->getOutputFileBase(), 0, convertToHtml(fd->name(),TRUE)); + Doxygen::indexList.addContentsItem(FALSE, convertToHtml(fd->name(),TRUE),fd->getReference(), fd->getOutputFileBase(), 0); fd=fileList->next(); } - if (htmlHelp) - htmlHelp->decContentsDepth(); - if (ftvHelp) - ftvHelp->decContentsDepth(); + Doxygen::indexList.decContentsDepth(); } // write examples if (gd->exampleDict->count()>0) { - if (htmlHelp) - { - htmlHelp->addContentsItem(TRUE, convertToHtml(theTranslator->trExamples(),TRUE), gd->getOutputFileBase(), 0); - htmlHelp->incContentsDepth(); - } - - if (ftvHelp) - { - ftvHelp->addContentsItem(TRUE, gd->getReference(), gd->getOutputFileBase(), 0, theTranslator->trExamples()); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE, convertToHtml(theTranslator->trExamples(),TRUE),gd->getReference(), gd->getOutputFileBase(), 0); + Doxygen::indexList.incContentsDepth(); PageSDict::Iterator eli(*(gd->exampleDict)); PageDef *pd=eli.toFirst(); while (pd) { - if (htmlHelp) - { - htmlHelp->addContentsItem(FALSE,pd->getReference(),pd->getOutputFileBase()); - } - if (ftvHelp) - { - ftvHelp->addContentsItem(FALSE,pd->getReference(),pd->getOutputFileBase(),0,pd->name()); - } + Doxygen::indexList.addContentsItem(FALSE,pd->name(),pd->getReference(),pd->getOutputFileBase(),0); pd=++eli; } - if (htmlHelp) htmlHelp->decContentsDepth(); - if (ftvHelp) ftvHelp->decContentsDepth(); + Doxygen::indexList.decContentsDepth(); } } - if (htmlHelp) htmlHelp->decContentsDepth(); - if (ftvHelp) ftvHelp->decContentsDepth(); + Doxygen::indexList.decContentsDepth(); //gd->visited=TRUE; } @@ -2918,8 +2448,6 @@ void writeGroupHierarchy(OutputList &ol) //---------------------------------------------------------------------------- void writeDirTreeNode(OutputList &ol, DirDef *dd,int level) { - HtmlHelp *htmlHelp=0; - FTVHelp *ftvHelp = 0; if (level>20) { warn(dd->getDefFileName(),dd->getDefLine(), @@ -2928,17 +2456,6 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd,int level) ); return; } - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - } static bool tocExpand = Config_getBool("TOC_EXPAND"); bool isDir = dd->subDirs().count()>0 || // there are subdirs @@ -2946,17 +2463,8 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd,int level) dd->getFiles() && dd->getFiles()->count()>0 // there are files ); //printf("gd=`%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count()); - if (htmlHelp) - { - htmlHelp->addContentsItem(isDir,dd->shortName(),dd->getOutputFileBase()); - htmlHelp->incContentsDepth(); - } - if (ftvHelp) - { - ftvHelp->addContentsItem(isDir,dd->getReference(),dd->getOutputFileBase(), - 0,dd->shortName()); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(isDir,dd->shortName(),dd->getReference(),dd->getOutputFileBase(),0); + Doxygen::indexList.incContentsDepth(); ol.startIndexItem(dd->getReference(),dd->getOutputFileBase()); ol.parseText(dd->shortName()); @@ -2990,17 +2498,13 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd,int level) FileDef *fd=fileList->first(); while (fd) { - if (htmlHelp) - htmlHelp->addContentsItem(FALSE,convertToHtml(fd->name(),TRUE),fd->getOutputFileBase()); - if (ftvHelp) - ftvHelp->addContentsItem(FALSE, fd->getReference(), fd->getOutputFileBase(), 0, convertToHtml(fd->name(),TRUE)); + Doxygen::indexList.addContentsItem(FALSE, convertToHtml(fd->name(),TRUE),fd->getReference(), fd->getOutputFileBase(), 0); fd=fileList->next(); } } } - if (htmlHelp) htmlHelp->decContentsDepth(); - if (ftvHelp) ftvHelp->decContentsDepth(); + Doxygen::indexList.decContentsDepth(); } void writeDirHierarchy(OutputList &ol) @@ -3025,40 +2529,17 @@ void writeGroupIndex(OutputList &ol) startFile(ol,"modules",0,theTranslator->trModuleIndex().data(),HLI_Modules); startTitle(ol,0); QCString title = theTranslator->trModules(); - QCString htmlHelpTitle = title; - QCString ftvHelpTitle = title; if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" "); ol.parseText(title); endTitle(ol,0,0); ol.startTextBlock(); - HtmlHelp *htmlHelp = 0; - FTVHelp *ftvHelp = 0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"modules"); - htmlHelp->incContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(TRUE,0,"modules",0,ftvHelpTitle); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE,title,0,"modules",0); + Doxygen::indexList.incContentsDepth(); + ol.parseText(theTranslator->trModulesDescription()); ol.endTextBlock(); writeGroupHierarchy(ol); - if (hasHtmlHelp) - { - htmlHelp->decContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp->decContentsDepth(); - } + Doxygen::indexList.decContentsDepth(); endFile(ol); ol.popGeneratorState(); } @@ -3073,8 +2554,6 @@ void writeDirIndex(OutputList &ol) startFile(ol,"dirs",0,theTranslator->trDirIndex().data(),HLI_Directories); startTitle(ol,0); QCString title = theTranslator->trDirectories(); - QCString htmlHelpTitle = title; - QCString ftvHelpTitle = title; if (!Config_getString("PROJECT_NAME").isEmpty()) { title.prepend(Config_getString("PROJECT_NAME")+" "); @@ -3082,36 +2561,14 @@ void writeDirIndex(OutputList &ol) ol.parseText(title); endTitle(ol,0,0); ol.startTextBlock(); - HtmlHelp *htmlHelp = 0; - FTVHelp *ftvHelp = 0; - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - htmlHelp = HtmlHelp::getInstance(); - htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"dirs"); - htmlHelp->incContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp = FTVHelp::getInstance(); - ftvHelp->addContentsItem(TRUE,0,"dirs",0,ftvHelpTitle); - ftvHelp->incContentsDepth(); - } + Doxygen::indexList.addContentsItem(TRUE,title,0,"dirs",0); + Doxygen::indexList.incContentsDepth(); ol.parseText(theTranslator->trDirDescription()); ol.endTextBlock(); writeDirHierarchy(ol); - if (hasHtmlHelp) - { - htmlHelp->decContentsDepth(); - } - if (hasFtvHelp) - { - ftvHelp->decContentsDepth(); - } + Doxygen::indexList.decContentsDepth(); endFile(ol); ol.popGeneratorState(); } @@ -3165,17 +2622,7 @@ void writeIndex(OutputList &ol) if (Doxygen::mainPage) { - bool &generateHtml = Config_getBool("GENERATE_HTML") ; - bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP"); - bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW"); - if (hasHtmlHelp) - { - HtmlHelp::getInstance()->addContentsItem(Doxygen::mainPage->hasSubPages(),title,indexName); - } - if (hasFtvHelp) - { - FTVHelp::getInstance()->addContentsItem(Doxygen::mainPage->hasSubPages(),0,indexName,0,title); - } + Doxygen::indexList.addContentsItem(Doxygen::mainPage->hasSubPages(),title,0,indexName,0); if (Doxygen::mainPage->hasSubPages()) { diff --git a/src/index.h b/src/index.h index ebe563e..88dc2e6 100644 --- a/src/index.h +++ b/src/index.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -20,10 +20,75 @@ #include "qtbc.h" #include <qfile.h> +#include <qlist.h> class MemberDef; class OutputList; + +class IndexIntf +{ + public: + virtual ~IndexIntf() {} + virtual void initialize() = 0; + virtual void finalize() = 0; + virtual void incContentsDepth() = 0; + virtual void decContentsDepth() = 0; + virtual void addContentsItem(bool isDir, const char *name, const char *ref = 0, + const char *file = 0, const char *anchor = 0) = 0; + virtual void addIndexItem(const char *level1, const char *level2, const char *contRef, + const char *memRef, const char *anchor) = 0; + virtual void addIndexFile(const char *name) = 0; +}; + +class IndexList : public IndexIntf +{ + void foreach(void (IndexIntf::*methodPtr)()) + { + QListIterator<IndexIntf> li(m_intfs); + for (li.toFirst();li.current();++li) (li.current()->*methodPtr)(); + }; + template<typename A1> + void foreach(void (IndexIntf::*methodPtr)(A1),A1 a1) + { + QListIterator<IndexIntf> li(m_intfs); + for (li.toFirst();li.current();++li) (li.current()->*methodPtr)(a1); + }; + template<typename A1,typename A2,typename A3,typename A4,typename A5> + void foreach(void (IndexIntf::*methodPtr)(A1,A2,A3,A4,A5),A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) + { + QListIterator<IndexIntf> li(m_intfs); + for (li.toFirst();li.current();++li) (li.current()->*methodPtr)(a1,a2,a3,a4,a5); + }; + + public: + IndexList() { m_intfs.setAutoDelete(TRUE); } + void addIndex(IndexIntf *intf) + { m_intfs.append(intf); } + void initialize() + { foreach(&IndexIntf::initialize); } + void finalize() + { foreach(&IndexIntf::finalize); } + void incContentsDepth() + { foreach(&IndexIntf::incContentsDepth); } + void decContentsDepth() + { foreach(&IndexIntf::decContentsDepth); } + void addContentsItem(bool isDir, const char *name, const char *ref = 0, + const char *file = 0, const char *anchor = 0) + { foreach<bool,const char *,const char *,const char *,const char*> + (&IndexIntf::addContentsItem,isDir,name,ref,file,anchor); } + void addIndexItem(const char *level1, const char *level2, const char *contRef, + const char *memRef, const char *anchor) + { foreach<const char *,const char *,const char *,const char *,const char *> + (&IndexIntf::addIndexItem,level1,level2,contRef,memRef,anchor); } + void addIndexFile(const char *name) + { foreach<const char *>(&IndexIntf::addIndexFile,name); } + + private: + QList<IndexIntf> m_intfs; +}; + + enum IndexSections { isTitlePageStart, diff --git a/src/instdox.cpp b/src/instdox.cpp index 85ff84d..7aae5f6 100644 --- a/src/instdox.cpp +++ b/src/instdox.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/instdox.h b/src/instdox.h index a35e2b1..7d20788 100644 --- a/src/instdox.h +++ b/src/instdox.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/language.h b/src/language.h index 2028387..bd97124 100644 --- a/src/language.h +++ b/src/language.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp index 76bff77..c5293de 100644 --- a/src/latexdocvisitor.cpp +++ b/src/latexdocvisitor.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/latexdocvisitor.h b/src/latexdocvisitor.h index 562d299..5a904ba 100644 --- a/src/latexdocvisitor.h +++ b/src/latexdocvisitor.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 8023514..6561404 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -1311,7 +1311,7 @@ void LatexGenerator::startClassDiagram() //t << "{"; } -void LatexGenerator::endClassDiagram(ClassDiagram &d, +void LatexGenerator::endClassDiagram(const ClassDiagram &d, const char *fileName,const char *) { d.writeFigure(t,dir,fileName); @@ -1465,7 +1465,7 @@ void LatexGenerator::startDotGraph() { } -void LatexGenerator::endDotGraph(DotClassGraph &g) +void LatexGenerator::endDotGraph(const DotClassGraph &g) { g.writeGraph(t,EPS,Config_getString("LATEX_OUTPUT"),relPath); } @@ -1474,7 +1474,7 @@ void LatexGenerator::startInclDepGraph() { } -void LatexGenerator::endInclDepGraph(DotInclDepGraph &g) +void LatexGenerator::endInclDepGraph(const DotInclDepGraph &g) { g.writeGraph(t,EPS,Config_getString("LATEX_OUTPUT"),relPath); } @@ -1483,7 +1483,7 @@ void LatexGenerator::startGroupCollaboration() { } -void LatexGenerator::endGroupCollaboration(DotGroupCollaboration &g) +void LatexGenerator::endGroupCollaboration(const DotGroupCollaboration &g) { g.writeGraph(t,EPS,Config_getString("LATEX_OUTPUT"),relPath); } @@ -1492,7 +1492,7 @@ void LatexGenerator::startCallGraph() { } -void LatexGenerator::endCallGraph(DotCallGraph &g) +void LatexGenerator::endCallGraph(const DotCallGraph &g) { g.writeGraph(t,EPS,Config_getString("LATEX_OUTPUT"),relPath); } @@ -1501,7 +1501,7 @@ void LatexGenerator::startDirDepGraph() { } -void LatexGenerator::endDirDepGraph(DotDirDeps &g) +void LatexGenerator::endDirDepGraph(const DotDirDeps &g) { g.writeGraph(t,EPS,Config_getString("LATEX_OUTPUT"),relPath); } diff --git a/src/latexgen.h b/src/latexgen.h index e57df38..4ab92e2 100644 --- a/src/latexgen.h +++ b/src/latexgen.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -168,7 +168,7 @@ class LatexGenerator : public OutputGenerator void endIndent() {} void writeSynopsis() {} void startClassDiagram(); - void endClassDiagram(ClassDiagram &,const char *,const char *); + void endClassDiagram(const ClassDiagram &,const char *,const char *); void startPageRef(); void endPageRef(const char *,const char *); void writeQuickLinks(bool,HighlightedItem) {} @@ -187,16 +187,16 @@ class LatexGenerator : public OutputGenerator void lastIndexPage() {} void startDotGraph(); - void endDotGraph(DotClassGraph &); + void endDotGraph(const DotClassGraph &); void startInclDepGraph(); - void endInclDepGraph(DotInclDepGraph &); + void endInclDepGraph(const DotInclDepGraph &); void startCallGraph(); void startGroupCollaboration(); - void endGroupCollaboration(DotGroupCollaboration &g); - void endCallGraph(DotCallGraph &); + void endGroupCollaboration(const DotGroupCollaboration &g); + void endCallGraph(const DotCallGraph &); void startDirDepGraph(); - void endDirDepGraph(DotDirDeps &g); - void writeGraphicalHierarchy(DotGfxHierarchyTable &) {} + void endDirDepGraph(const DotDirDeps &g); + void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {} void startTextBlock(bool) {} void endTextBlock(bool) {} diff --git a/src/libdoxycfg.pro.in b/src/libdoxycfg.pro.in index 1632b4f..822de52 100644 --- a/src/libdoxycfg.pro.in +++ b/src/libdoxycfg.pro.in @@ -1,5 +1,5 @@ # -# +# $Id$ # # Copyright (C) 1997-2007 by Dimitri van Heesch. # diff --git a/src/libdoxycfg.t b/src/libdoxycfg.t index 6be6e51..e6817d5 100644 --- a/src/libdoxycfg.t +++ b/src/libdoxycfg.t @@ -1,5 +1,5 @@ # -# +# $Id$ # # Copyright (C) 1997-2007 by Dimitri van Heesch. # diff --git a/src/libdoxygen.pro.in b/src/libdoxygen.pro.in index 78ed341..5b926f0 100644 --- a/src/libdoxygen.pro.in +++ b/src/libdoxygen.pro.in @@ -1,5 +1,5 @@ # -# +# $Id$ # # Copyright (C) 1997-2007 by Dimitri van Heesch. # diff --git a/src/libdoxygen.t b/src/libdoxygen.t index f2cc6cb..ea6e839 100644 --- a/src/libdoxygen.t +++ b/src/libdoxygen.t @@ -1,5 +1,5 @@ # -# +# $Id$ # # Copyright (C) 1997-2007 by Dimitri van Heesch. # diff --git a/src/lockingptr.h b/src/lockingptr.h index a3cedfd..f694d24 100644 --- a/src/lockingptr.h +++ b/src/lockingptr.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/logos.cpp b/src/logos.cpp index dfed41c..fd939ad 100644 --- a/src/logos.cpp +++ b/src/logos.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/logos.h b/src/logos.h index 1dc89cc..a3cc4b6 100644 --- a/src/logos.h +++ b/src/logos.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/main.cpp b/src/main.cpp index 64006bc..afb5010 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp index 8a63d5d..dee0911 100644 --- a/src/mandocvisitor.cpp +++ b/src/mandocvisitor.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/mandocvisitor.h b/src/mandocvisitor.h index c2c5f0d..4274568 100644 --- a/src/mandocvisitor.h +++ b/src/mandocvisitor.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/mangen.cpp b/src/mangen.cpp index 220dee2..0feab40 100644 --- a/src/mangen.cpp +++ b/src/mangen.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/mangen.h b/src/mangen.h index 45ef306..25a6082 100644 --- a/src/mangen.h +++ b/src/mangen.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -48,7 +48,6 @@ class ManGenerator : public OutputGenerator void endFile(); void clearBuffer(); - //void writeIndex(); void startIndexSection(IndexSections) {} void endIndexSection(IndexSections) {} void startProjectNumber() {} @@ -71,11 +70,6 @@ class ManGenerator : public OutputGenerator void endIndexValue(const char *,bool) {} void startItemList() {} void endItemList() { newParagraph(); } - //void startEnumList() {} - //void endEnumList() { newParagraph(); } - //void startAlphabeticalIndexList() {} - //void endAlphabeticalIndexList() {} - //void writeIndexHeading(const char *) {} void startIndexItem(const char *ref,const char *file); void endIndexItem(const char *ref,const char *file); void docify(const char *text); @@ -89,7 +83,6 @@ class ManGenerator : public OutputGenerator void endTextLink() {} void startHtmlLink(const char *url); void endHtmlLink(); - //void writeMailLink(const char *url); void startTypewriter() { t << "\\fC"; firstCol=FALSE; } void endTypewriter() { t << "\\fP"; firstCol=FALSE; } void startGroupHeader(); @@ -124,15 +117,9 @@ class ManGenerator : public OutputGenerator void writeAnchor(const char *,const char *) {} void startCodeFragment(); void endCodeFragment(); - //void startPreFragment() { startCodeFragment(); } - //void endPreFragment() { endCodeFragment(); } - //void startVerbatimFragment() { startCodeFragment(); } - //void endVerbatimFragment() { endCodeFragment(); } void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; } void startCodeLine() {} void endCodeLine() { codify("\n"); col=0; } - //void writeBoldString(const char *text) - // { t << "\\fB"; docify(text); t << "\\fP"; firstCol=FALSE; } void startEmphasis() { t << "\\fI"; firstCol=FALSE; } void endEmphasis() { t << "\\fP"; firstCol=FALSE; } void startBold() { t << "\\fB"; firstCol=FALSE; } @@ -150,7 +137,6 @@ class ManGenerator : public OutputGenerator void startCodeAnchor(const char *) {} void endCodeAnchor() {} void writeLatexSpacing() {} - //void writeLatexLabel(const char *,const char *) {} void writeStartAnnoItem(const char *type,const char *file, const char *path,const char *name); void writeEndAnnoItem(const char *) { t << endl; firstCol=TRUE; } @@ -162,33 +148,6 @@ class ManGenerator : public OutputGenerator void endCenter() {} void startSmall() {} void endSmall() {} - //void startSubscript() { t << "\\*<"; firstCol=FALSE; } - //void endSubscript() { t << "\\*>"; firstCol=FALSE; } - //void startSuperscript() { t << "\\*{"; firstCol=FALSE; } - //void endSuperscript() { t << "\\*}"; firstCol=FALSE; } - //void startTable(bool,int) {} - //void endTable(bool) {} - //void startCaption() {} - //void endCaption() {} - //void nextTableRow() {} - //void endTableRow() {} - //void nextTableColumn() {} - //void endTableColumn() {} - //void writeCopyright() { t << "(c)"; firstCol=FALSE; } - //void writeQuote() { t << "`"; firstCol=FALSE; } - //void writeUmlaut(char c) { t << c << "\\*'"; firstCol=FALSE; } - //void writeAcute(char c) { t << c << "\\*`"; firstCol=FALSE; } - //void writeGrave(char c) { t << c << "\\*:"; firstCol=FALSE; } - //void writeCirc(char c) { t << c << "\\*^"; firstCol=FALSE; } - //void writeTilde(char c) { t << c << "\\*~"; firstCol=FALSE; } - //void writeRing(char c) { t << c << "\\*0"; /* just a wild guess, - // need to check! */ - // firstCol=FALSE; } - //void writeSharpS() { t << "s\\*:"; /* just a wild guess, - // need to check! */ - // firstCol=FALSE; } - //void writeCCedil(char c) { t << c; /* TODO: fix this */ - // firstCol=FALSE; } void startMemberDescription() { t << "\n.RI \"\\fI"; firstCol=FALSE; } void endMemberDescription() { t << "\\fP\""; firstCol=FALSE; } void startDescList(SectionTypes); @@ -197,33 +156,19 @@ class ManGenerator : public OutputGenerator void endSimpleSect(); void startParamList(ParamListTypes,const char *title); void endParamList(); - //void endDescTitle(); void writeDescItem(); void startSection(const char *,const char *,SectionInfo::SectionType); void endSection(const char *,SectionInfo::SectionType); - //void writeSectionRef(const char *,const char *,const char *,const char *) {} - //void writeSectionRefItem(const char *,const char *,const char *) {} - //void writeSectionRefAnchor(const char *,const char *,const char *) {} void addIndexItem(const char *,const char *) {} void startIndent() {} void endIndent() {} void writeSynopsis(); - //void generateExternalIndex() {} void startClassDiagram() {} - void endClassDiagram(ClassDiagram &,const char *,const char *) {} - //void startColorFont(uchar,uchar,uchar) {} - //void endColorFont() {} + void endClassDiagram(const ClassDiagram &,const char *,const char *) {} void startPageRef() {} void endPageRef(const char *,const char *) {} - //void startQuickIndexItem(const char *,const char *) {} - //void endQuickIndexItem() {} void writeQuickLinks(bool,HighlightedItem) {} - //void writeFormula(const char *,const char *) {} void writeNonBreakableSpace(int n) { int i; for (i=0;i<n;i++) t << " "; } - //void startImage(const char *,const char *,bool) {} - //void endImage(bool) {} - //void startDotFile(const char *,bool) {} - //void endDotFile(bool) {} void startDescTable() {} void endDescTable() {} @@ -233,16 +178,16 @@ class ManGenerator : public OutputGenerator void endDescTableData() {} void startDotGraph() {} - void endDotGraph(DotClassGraph &) {} + void endDotGraph(const DotClassGraph &) {} void startInclDepGraph() {} - void endInclDepGraph(DotInclDepGraph &) {} + void endInclDepGraph(const DotInclDepGraph &) {} void startGroupCollaboration() {} - void endGroupCollaboration(DotGroupCollaboration &) {} + void endGroupCollaboration(const DotGroupCollaboration &) {} void startCallGraph() {} - void endCallGraph(DotCallGraph &) {} + void endCallGraph(const DotCallGraph &) {} void startDirDepGraph() {} - void endDirDepGraph(DotDirDeps &) {} - void writeGraphicalHierarchy(DotGfxHierarchyTable &) {} + void endDirDepGraph(const DotDirDeps &) {} + void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {} void startTextBlock(bool) {} void endTextBlock(bool) {} @@ -262,14 +207,6 @@ class ManGenerator : public OutputGenerator void startFontClass(const char *) {} void endFontClass() {} - //void startHtmlOnly() {} - //void endHtmlOnly() {} - //void startLatexOnly() {} - //void endLatexOnly() {} - - //void startSectionRefList() {} - //void endSectionRefList() {} - void startConstraintList(const char *); void startConstraintParam(); void endConstraintParam(); diff --git a/src/marshal.cpp b/src/marshal.cpp index a11a25f..a032a64 100644 --- a/src/marshal.cpp +++ b/src/marshal.cpp @@ -301,7 +301,17 @@ void marshalMemberList(StorageIntf *s,MemberList *ml) } else { - marshalUInt(s,1); // not a null pointer + marshalUInt(s,ml->count()); + MemberListIterator mli(*ml); + MemberDef *md; + uint count=0; + for (mli.toFirst();(md=mli.current());++mli) + { + marshalObjPointer(s,md); + count++; + } + assert(count==ml->count()); + ml->marshal(s); } } @@ -690,11 +700,18 @@ GroupList *unmarshalGroupList(StorageIntf *s) MemberList *unmarshalMemberList(StorageIntf *s) { + uint i; uint count = unmarshalUInt(s); if (count==NULL_LIST) return 0; - MemberList *ml = new MemberList; - ml->unmarshal(s); - return ml; + MemberList *result = new MemberList; + assert(count<1000000); + for (i=0;i<count;i++) + { + MemberDef *md = (MemberDef*)unmarshalObjPointer(s); + result->append(md); + } + result->unmarshal(s); + return result; } ExampleSDict *unmarshalExampleSDict(StorageIntf *s) diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 6591a37..c556047 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -1080,7 +1080,7 @@ void MemberDef::writeDeclaration(OutputList &ol, if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd; // write tag file information of this member - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) + if (!Config_getString("GENERATE_TAGFILE").isEmpty() && !isReference()) { Doxygen::tagFile << " <member kind=\""; switch (m_impl->mtype) @@ -1127,7 +1127,7 @@ void MemberDef::writeDeclaration(OutputList &ol, } // write search index info - if (Config_getBool("SEARCHENGINE")) + if (Config_getBool("SEARCHENGINE") && !isReference()) { Doxygen::searchIndex->setCurrentDoc(qualifiedName(),getOutputFileBase(),anchor()); Doxygen::searchIndex->addWord(localName(),TRUE); @@ -1141,9 +1141,9 @@ void MemberDef::writeDeclaration(OutputList &ol, // differs from the cname. //if (getOuterScope()) osname=getOuterScope()->name(); - HtmlHelp *htmlHelp=0; - bool hasHtmlHelp = Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_HTMLHELP"); - if (hasHtmlHelp) htmlHelp = HtmlHelp::getInstance(); + //HtmlHelp *htmlHelp=0; + //bool hasHtmlHelp = Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_HTMLHELP"); + //if (hasHtmlHelp) htmlHelp = HtmlHelp::getInstance(); // search for the last anonymous scope in the member type ClassDef *annoClassDef=getClassDefOfAnonymousType(); @@ -1487,7 +1487,10 @@ bool MemberDef::isDetailedSectionLinkable() const //(initLines>0 && initLines<maxInitLines) || (hasMultiLineInitializer() && !hideUndocMembers) || // has one or more documented arguments - (m_impl->defArgList!=0 && m_impl->defArgList->hasDocumentation()); + (m_impl->defArgList!=0 && m_impl->defArgList->hasDocumentation()) || + // has user comments + Doxygen::userComments + ; // this is not a global static or global statics should be extracted bool staticFilter = getClassDef()!=0 || !isStatic() || extractStatic; @@ -1570,23 +1573,24 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, QCString cfname = getOutputFileBase(); QCString cfiname = container->getOutputFileBase(); - static bool hasHtmlHelp = Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_HTMLHELP"); - HtmlHelp *htmlHelp = HtmlHelp::getInstance(); - if (hasHtmlHelp) - { + //static bool hasHtmlHelp = Config_getBool("GENERATE_HTML") && Config_getBool("GENERATE_HTMLHELP"); + //HtmlHelp *htmlHelp = HtmlHelp::getInstance(); + //if (hasHtmlHelp) + //{ if (isEnumerate() && name().at(0)=='@') { // don't add to index } else { - htmlHelp->addIndexItem(ciname, // level1 + Doxygen::indexList.addIndexItem( + ciname, // level1 name(), // level2 separateMemPages ? cfname : cfiname, // contRef cfname, // memRef memAnchor); // anchor } - } + //} // get member name QCString doxyName=name(); @@ -1973,14 +1977,20 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ol.addIndexItem(fmd->name(),cname); ol.addIndexItem(cname,fmd->name()); - if (hasHtmlHelp) - { - htmlHelp->addIndexItem(ciname, // level1 - fmd->name(), // level2 - separateMemPages ? cfname : cfiname, // contRef - cfname, // memRef - fmd->anchor()); // anchor - } + //if (hasHtmlHelp) + //{ + // htmlHelp->addIndexItem(ciname, // level1 + // fmd->name(), // level2 + // separateMemPages ? cfname : cfiname, // contRef + // cfname, // memRef + // fmd->anchor()); // anchor + //} + Doxygen::indexList.addIndexItem( + ciname, // level1 + fmd->name(), // level2 + separateMemPages ? cfname : cfiname, // contRef + cfname, // memRef + fmd->anchor()); // anchor //ol.writeListItem(); ol.startDescTableTitle(); // this enables emphasis! ol.startDoxyAnchor(cfname,cname,fmd->anchor(),fmd->name(),fmd->argsString()); @@ -2209,6 +2219,17 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, } } + if (Doxygen::userComments) + { + ol.pushGeneratorState(); + ol.disableAllBut(OutputGenerator::Html); + QCString cmd = "<? $root=$_SERVER['DOCUMENT_ROOT']; " + "passthru(\"$root/doxynotes --lookup "+ + getOutputFileBase()+":"+anchor()+"\") ?>"; + ol.writeString(cmd); + ol.popGeneratorState(); + } + ol.endIndent(); // enable LaTeX again @@ -2689,7 +2710,7 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl, { if (isLinkableInProject() || hasDocumentedEnumValues()) { - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) + if (!Config_getString("GENERATE_TAGFILE").isEmpty() && !isReference()) { Doxygen::tagFile << " <member kind=\"enumeration\">" << endl; Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; @@ -2738,7 +2759,7 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl, if (fmd->hasDocumentation()) // enum value has docs { - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) + if (!Config_getString("GENERATE_TAGFILE").isEmpty() && !fmd->isReference()) { Doxygen::tagFile << " <member kind=\"enumvalue\">" << endl; Doxygen::tagFile << " <name>" << convertToXML(fmd->name()) << "</name>" << endl; diff --git a/src/membergroup.cpp b/src/membergroup.cpp index dc2f200..f7aaedb 100644 --- a/src/membergroup.cpp +++ b/src/membergroup.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/membergroup.h b/src/membergroup.h index 93f9184..64ac0af 100644 --- a/src/membergroup.h +++ b/src/membergroup.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/memberlist.cpp b/src/memberlist.cpp index 3f04712..846a37f 100644 --- a/src/memberlist.cpp +++ b/src/memberlist.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/memberlist.h b/src/memberlist.h index c032c21..1b6a5cf 100644 --- a/src/memberlist.h +++ b/src/memberlist.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/membername.cpp b/src/membername.cpp index 136d215..6a594c2 100644 --- a/src/membername.cpp +++ b/src/membername.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/membername.h b/src/membername.h index 8b7ac22..74f5891 100644 --- a/src/membername.h +++ b/src/membername.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/message.cpp b/src/message.cpp index 8b24e31..2fedd9a 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/message.h b/src/message.h index a5b3031..0cf2c49 100644 --- a/src/message.h +++ b/src/message.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/msc.cpp b/src/msc.cpp index afd3562..d519a50 100644 --- a/src/msc.cpp +++ b/src/msc.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp index d021764..7bc6221 100644 --- a/src/namespacedef.cpp +++ b/src/namespacedef.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -663,7 +663,7 @@ void NamespaceSDict::writeDeclaration(OutputList &ol,bool localName) name = nd->displayName(); } ol.writeObjectLink(nd->getReference(),nd->getOutputFileBase(),0,name); - if (!Config_getString("GENERATE_TAGFILE").isEmpty()) + if (!Config_getString("GENERATE_TAGFILE").isEmpty() && !nd->isReference()) { Doxygen::tagFile << " <namespace>" << convertToXML(nd->name()) << "</namespace>" << endl; } diff --git a/src/namespacedef.h b/src/namespacedef.h index f36e89c..5c54897 100644 --- a/src/namespacedef.h +++ b/src/namespacedef.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/objcache.cpp b/src/objcache.cpp index 05c62cf..c6761dc 100644 --- a/src/objcache.cpp +++ b/src/objcache.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/objcache.h b/src/objcache.h index 2795e34..5a9e16b 100644 --- a/src/objcache.h +++ b/src/objcache.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id:$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/outputgen.cpp b/src/outputgen.cpp index d085312..13f7186 100644 --- a/src/outputgen.cpp +++ b/src/outputgen.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/outputgen.h b/src/outputgen.h index 9118ef4..8a8d60d 100644 --- a/src/outputgen.h +++ b/src/outputgen.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -352,20 +352,18 @@ class OutputGenerator : public BaseOutputDocInterface virtual void endIndent() = 0; virtual void writeSynopsis() = 0; virtual void startClassDiagram() = 0; - virtual void endClassDiagram(ClassDiagram &,const char *,const char *) = 0; + virtual void endClassDiagram(const ClassDiagram &,const char *,const char *) = 0; virtual void startDotGraph() = 0; - virtual void endDotGraph(DotClassGraph &g) = 0; + virtual void endDotGraph(const DotClassGraph &g) = 0; virtual void startInclDepGraph() = 0; - virtual void endInclDepGraph(DotInclDepGraph &g) = 0; + virtual void endInclDepGraph(const DotInclDepGraph &g) = 0; virtual void startGroupCollaboration() = 0; - virtual void endGroupCollaboration(DotGroupCollaboration &g) = 0; + virtual void endGroupCollaboration(const DotGroupCollaboration &g) = 0; virtual void startCallGraph() = 0; - virtual void endCallGraph(DotCallGraph &g) = 0; + virtual void endCallGraph(const DotCallGraph &g) = 0; virtual void startDirDepGraph() = 0; - virtual void endDirDepGraph(DotDirDeps &g) = 0; - virtual void writeGraphicalHierarchy(DotGfxHierarchyTable &g) = 0; - //virtual void startQuickIndexItem(const char *s,const char *l) = 0; - //virtual void endQuickIndexItem() = 0; + virtual void endDirDepGraph(const DotDirDeps &g) = 0; + virtual void writeGraphicalHierarchy(const DotGfxHierarchyTable &g) = 0; virtual void writeQuickLinks(bool compact,HighlightedItem hli) = 0; virtual void startTextBlock(bool) = 0; virtual void endTextBlock(bool) = 0; diff --git a/src/outputlist.cpp b/src/outputlist.cpp index 27e1237..bbf321a 100644 --- a/src/outputlist.cpp +++ b/src/outputlist.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -278,12 +278,12 @@ void OutputList::forall(void (OutputGenerator::*func)(a1,a2,a3,a4,a5),a1,a2,a3,a FORALL1(const char *a1,a1) FORALL1(char a1,a1) FORALL1(int a1,a1) -FORALL1(DotClassGraph &a1,a1) -FORALL1(DotInclDepGraph &a1,a1) -FORALL1(DotCallGraph &a1,a1) -FORALL1(DotDirDeps &a1,a1) -FORALL1(DotGfxHierarchyTable &a1,a1) -FORALL1(DotGroupCollaboration &a1,a1) +FORALL1(const DotClassGraph &a1,a1) +FORALL1(const DotInclDepGraph &a1,a1) +FORALL1(const DotCallGraph &a1,a1) +FORALL1(const DotDirDeps &a1,a1) +FORALL1(const DotGfxHierarchyTable &a1,a1) +FORALL1(const DotGroupCollaboration &a1,a1) FORALL1(SectionTypes a1,a1) #if defined(HAS_BOOL_TYPE) || defined(Q_HAS_BOOL_TYPE) FORALL1(bool a1,a1) @@ -300,7 +300,7 @@ FORALL2(const char *a1,const char *a2,a1,a2) FORALL2(const char *a1,bool a2,a1,a2) FORALL2(const char *a1,SectionInfo::SectionType a2,a1,a2) FORALL3(bool a1,bool a2,bool a3,a1,a2,a3) -FORALL3(ClassDiagram &a1,const char *a2,const char *a3,a1,a2,a3) +FORALL3(const ClassDiagram &a1,const char *a2,const char *a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,const char *a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,bool a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,SectionInfo::SectionType a3,a1,a2,a3) diff --git a/src/outputlist.h b/src/outputlist.h index 30f8e64..b4416f3 100644 --- a/src/outputlist.h +++ b/src/outputlist.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -300,16 +300,12 @@ class OutputList : public OutputDocInterface { forall(&OutputGenerator::writeSynopsis); } void startClassDiagram() { forall(&OutputGenerator::startClassDiagram); } - void endClassDiagram(ClassDiagram &d,const char *f,const char *n) + void endClassDiagram(const ClassDiagram &d,const char *f,const char *n) { forall(&OutputGenerator::endClassDiagram,d,f,n); } void startPageRef() { forall(&OutputGenerator::startPageRef); } void endPageRef(const char *c,const char *a) { forall(&OutputGenerator::endPageRef,c,a); } - //void startQuickIndexItem(const char *s,const char *l) - //{ forall(&OutputGenerator::startQuickIndexItem,s,l); } - //void endQuickIndexItem() - //{ forall(&OutputGenerator::endQuickIndexItem); } void writeQuickLinks(bool compact,HighlightedItem hli) { forall(&OutputGenerator::writeQuickLinks,compact,hli); } void writeNonBreakableSpace(int num) @@ -328,25 +324,25 @@ class OutputList : public OutputDocInterface { forall(&OutputGenerator::endDescTableData); } void startDotGraph() { forall(&OutputGenerator::startDotGraph); } - void endDotGraph(DotClassGraph &g) + void endDotGraph(const DotClassGraph &g) { forall(&OutputGenerator::endDotGraph,g); } void startInclDepGraph() { forall(&OutputGenerator::startInclDepGraph); } - void endInclDepGraph(DotInclDepGraph &g) + void endInclDepGraph(const DotInclDepGraph &g) { forall(&OutputGenerator::endInclDepGraph,g); } void startCallGraph() { forall(&OutputGenerator::startCallGraph); } - void endCallGraph(DotCallGraph &g) + void endCallGraph(const DotCallGraph &g) { forall(&OutputGenerator::endCallGraph,g); } void startDirDepGraph() { forall(&OutputGenerator::startDirDepGraph); } - void endDirDepGraph(DotDirDeps &g) + void endDirDepGraph(const DotDirDeps &g) { forall(&OutputGenerator::endDirDepGraph,g); } void startGroupCollaboration() { forall(&OutputGenerator::startGroupCollaboration); } - void endGroupCollaboration(DotGroupCollaboration &g) + void endGroupCollaboration(const DotGroupCollaboration &g) { forall(&OutputGenerator::endGroupCollaboration,g); } - void writeGraphicalHierarchy(DotGfxHierarchyTable &g) + void writeGraphicalHierarchy(const DotGfxHierarchyTable &g) { forall(&OutputGenerator::writeGraphicalHierarchy,g); } void startTextBlock(bool dense=FALSE) { forall(&OutputGenerator::startTextBlock,dense); } @@ -391,8 +387,6 @@ class OutputList : public OutputDocInterface { forall(&OutputGenerator::endConstraintDocs); } void endConstraintList() { forall(&OutputGenerator::endConstraintList); } - - void startFontClass(const char *c) { forall(&OutputGenerator::startFontClass,c); } void endFontClass() @@ -430,12 +424,12 @@ class OutputList : public OutputDocInterface FORALLPROTO1(char); FORALLPROTO1(IndexSections); FORALLPROTO1(int); - FORALLPROTO1(DotClassGraph &); - FORALLPROTO1(DotInclDepGraph &); - FORALLPROTO1(DotCallGraph &); - FORALLPROTO1(DotGroupCollaboration &); - FORALLPROTO1(DotDirDeps &); - FORALLPROTO1(DotGfxHierarchyTable &); + FORALLPROTO1(const DotClassGraph &); + FORALLPROTO1(const DotInclDepGraph &); + FORALLPROTO1(const DotCallGraph &); + FORALLPROTO1(const DotGroupCollaboration &); + FORALLPROTO1(const DotDirDeps &); + FORALLPROTO1(const DotGfxHierarchyTable &); FORALLPROTO1(SectionTypes); #if defined(HAS_BOOL_TYPE) || defined(Q_HAS_BOOL_TYPE) FORALLPROTO1(bool); @@ -455,7 +449,7 @@ class OutputList : public OutputDocInterface FORALLPROTO3(const char *,const char *,SectionInfo::SectionType); FORALLPROTO3(uchar,uchar,uchar); FORALLPROTO3(const char *,const char *,const char *); - FORALLPROTO3(ClassDiagram &,const char *,const char *); + FORALLPROTO3(const ClassDiagram &,const char *,const char *); FORALLPROTO4(SectionTypes,const char *,const char *,const char *); FORALLPROTO4(const char *,const char *,const char *,const char *); FORALLPROTO4(const char *,const char *,const char *,bool); diff --git a/src/pagedef.h b/src/pagedef.h index a605aaf..347ce59 100644 --- a/src/pagedef.h +++ b/src/pagedef.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id:$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/parserintf.h b/src/parserintf.h index 6e45a96..941a10f 100644 --- a/src/parserintf.h +++ b/src/parserintf.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp index b6a2cd3..9e9f760 100644 --- a/src/perlmodgen.cpp +++ b/src/perlmodgen.cpp @@ -484,16 +484,24 @@ void PerlModDocVisitor::closeSubBlock() void PerlModDocVisitor::openOther() { + // Using a secondary text stream will corrupt the perl file. Instead of + // printing doc => [ data => [] ], it will print doc => [] data => []. + /* leaveText(); m_output.openSave(); + */ } void PerlModDocVisitor::closeOther() { + // Using a secondary text stream will corrupt the perl file. Instead of + // printing doc => [ data => [] ], it will print doc => [] data => []. + /* QString other; leaveText(); m_output.closeSave(other); m_other += other; + */ } void PerlModDocVisitor::visit(DocWord *w) @@ -1414,7 +1422,7 @@ void PerlModGenerator::generatePerlModForMember(MemberDef *md,Definition *) switch (md->memberType()) { case MemberDef::Define: memType="define"; break; - case MemberDef::EnumValue: ASSERT(0); break; + case MemberDef::EnumValue: memType="enumvalue"; break; case MemberDef::Property: memType="property"; break; case MemberDef::Variable: memType="variable"; break; case MemberDef::Typedef: memType="typedef"; break; diff --git a/src/pngenc.cpp b/src/pngenc.cpp index 0624c91..6a2582d 100644 --- a/src/pngenc.cpp +++ b/src/pngenc.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/pngenc.h b/src/pngenc.h index 88dfa25..ac1d1fa 100644 --- a/src/pngenc.h +++ b/src/pngenc.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -564,6 +564,7 @@ static bool replaceFunctionMacro(const QCString &expr,QCString *rest,int pos,int // substitution of all formal arguments QCString resExpr; const QCString d=def->definition.stripWhiteSpace(); + //printf("Macro definition: %s\n",d.data()); bool inString=FALSE; while (k<d.length()) { @@ -912,7 +913,10 @@ QCString removeMarkers(const char *s) { while (*p && !(pc=='*' && c=='/')) // search end of comment { - result+=c; + if (*p=='@' && *(p+1)=='@') + result+=c,p++; + else + result+=c; pc=c; c=*++p; } @@ -1190,6 +1194,37 @@ static void endCondSection() } } +static QCString escapeAt(const char *text) +{ + QCString result; + if (text) + { + char c; + const char *p=text; + while ((c=*p++)) + { + if (c=='@') result+="@@"; else result+=c; + } + } + return result; +} + +static char resolveTrigraph(char c) +{ + switch (c) + { + case '=': return '#'; + case '/': return '\\'; + case '\'': return '^'; + case '(': return '['; + case ')': return ']'; + case '!': return '|'; + case '<': return '{'; + case '>': return '}'; + case '-': return '~'; + } + return '?'; +} /* ----------------------------------------------------------------- */ @@ -1255,6 +1290,9 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) <*>\x06 <*>\x00 <*>\r +<*>"??"[=/'()!<>-] { // Trigraph + unput(resolveTrigraph(yytext[2])); + } <Start>^{B}*"#" { BEGIN(Command); } <Start>^{B}*/[^#] { outputArray(yytext,yyleng); @@ -1360,7 +1398,6 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) if (def->nargs==-1) // no function macro { QCString result = expandMacro(g_defArgsStr); - //printf("result=`%s'\n",result.data()); outputArray(result,result.length()); } else // zero or more arguments @@ -1585,8 +1622,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) <Guard>{ID} { g_guardExpr+=yytext; } <Guard>. { g_guardExpr+=*yytext; } <Guard>\n { - outputChar('\n'); - g_yyLineNr++; + unput(*yytext); //printf("Guard: `%s'\n", // g_guardExpr.data()); bool guard=computeExpression(g_guardExpr); @@ -1619,6 +1655,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) g_lastGuardName.resize(0); } <DefinedExpr1,DefinedExpr2>\n { // should not happen, handle anyway + g_yyLineNr++; g_ifcount=0; BEGIN(SkipCPPBlock); } @@ -1628,6 +1665,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) <DefinedExpr1,DefinedExpr2>. <SkipCPPBlock>^{B}*"#" { BEGIN(SkipCommand); } <SkipCPPBlock>^{B}*/[^#] { BEGIN(SkipLine); } +<SkipCPPBlock>\n { g_yyLineNr++; } <SkipCPPBlock>. <SkipCommand>"if"(("n")?("def"))?/[ \t(!] { incrLevel(); @@ -1899,6 +1937,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) <SkipCComment,SkipCPPComment>[\\@]"cond"[ \t\r]*\n | <CondLine>. { outputArray(yytext,yyleng); + g_yyLineNr+=QCString(yytext).contains('\n'); startCondSection(" "); if (YY_START==CondLine) BEGIN(g_condCtx); } @@ -1932,7 +1971,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } <CopyCComment>[^*]+ { g_defLitText+=yytext; - g_defText+=yytext; + g_defText+=escapeAt(yytext); } <CopyCComment>"*/" { g_defLitText+=yytext; diff --git a/src/printdocvisitor.h b/src/printdocvisitor.h index 27db658..c236a39 100644 --- a/src/printdocvisitor.h +++ b/src/printdocvisitor.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/pycode.h b/src/pycode.h index 04ca268..667d29c 100644 --- a/src/pycode.h +++ b/src/pycode.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/pycode.l b/src/pycode.l index 473d0f6..87c66cf 100644 --- a/src/pycode.l +++ b/src/pycode.l @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/pyscanner.h b/src/pyscanner.h index ebe9ab8..3434a55 100644 --- a/src/pyscanner.h +++ b/src/pyscanner.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/pyscanner.l b/src/pyscanner.l index 5b5f6cb..a4aafe3 100644 --- a/src/pyscanner.l +++ b/src/pyscanner.l @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/reflist.cpp b/src/reflist.cpp index edbf86a..9125f3e 100644 --- a/src/reflist.cpp +++ b/src/reflist.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/reflist.h b/src/reflist.h index 9e47505..8ef0b4c 100644 --- a/src/reflist.h +++ b/src/reflist.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp index e835811..65c5bb2 100644 --- a/src/rtfdocvisitor.cpp +++ b/src/rtfdocvisitor.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/rtfdocvisitor.h b/src/rtfdocvisitor.h index 02bc904..04f3bd6 100644 --- a/src/rtfdocvisitor.h +++ b/src/rtfdocvisitor.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index 37e2ddd..753d133 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Parker Waechter & Dimitri van Heesch. * @@ -1724,7 +1724,7 @@ void RTFGenerator::startClassDiagram() DBG_RTF(t <<"{\\comment startClassDiagram }" << endl) } -void RTFGenerator::endClassDiagram(ClassDiagram &d, +void RTFGenerator::endClassDiagram(const ClassDiagram &d, const char *fileName,const char *) { newParagraph(); @@ -2228,7 +2228,7 @@ void RTFGenerator::startDotGraph() DBG_RTF(t << "{\\comment (startDotGraph)}" << endl) } -void RTFGenerator::endDotGraph(DotClassGraph &g) +void RTFGenerator::endDotGraph(const DotClassGraph &g) { newParagraph(); @@ -2251,7 +2251,7 @@ void RTFGenerator::startInclDepGraph() DBG_RTF(t << "{\\comment (startInclDepGraph)}" << endl) } -void RTFGenerator::endInclDepGraph(DotInclDepGraph &g) +void RTFGenerator::endInclDepGraph(const DotInclDepGraph &g) { newParagraph(); @@ -2272,7 +2272,7 @@ void RTFGenerator::startGroupCollaboration() { } -void RTFGenerator::endGroupCollaboration(DotGroupCollaboration &) +void RTFGenerator::endGroupCollaboration(const DotGroupCollaboration &) { } @@ -2281,7 +2281,7 @@ void RTFGenerator::startCallGraph() DBG_RTF(t << "{\\comment (startCallGraph)}" << endl) } -void RTFGenerator::endCallGraph(DotCallGraph &g) +void RTFGenerator::endCallGraph(const DotCallGraph &g) { newParagraph(); @@ -2303,7 +2303,7 @@ void RTFGenerator::startDirDepGraph() DBG_RTF(t << "{\\comment (startDirDepGraph)}" << endl) } -void RTFGenerator::endDirDepGraph(DotDirDeps &g) +void RTFGenerator::endDirDepGraph(const DotDirDeps &g) { newParagraph(); diff --git a/src/rtfgen.h b/src/rtfgen.h index 577cc40..5e39945 100644 --- a/src/rtfgen.h +++ b/src/rtfgen.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Parker Waechter & Dimitri van Heesch. * @@ -31,9 +31,6 @@ class RTFGenerator : public OutputGenerator static void writeStyleSheetFile(QFile &f); static void writeExtensionsFile(QFile &file); - //OutputGenerator *copy(); - //OutputGenerator *clone() { return new RTFGenerator(*this); } - //void append(const OutputGenerator *o); void enable() { if (genStack->top()) active=*genStack->top(); else active=TRUE; } void disable() { active=FALSE; } @@ -51,8 +48,6 @@ class RTFGenerator : public OutputGenerator void clearBuffer(); void postProcess(QByteArray &); - //void writeIndex(); - void startIndexSection(IndexSections); void endIndexSection(IndexSections); void startProjectNumber(); @@ -110,8 +105,6 @@ class RTFGenerator : public OutputGenerator void endMemberItem(); void startMemberTemplateParams() {} void endMemberTemplateParams() {} - //void memberGroupSpacing(bool) {} - //void memberGroupSeparator() {} void insertMemberAlign(bool) {} void writeRuler() { rtfwriteRuler_thin(); } @@ -119,15 +112,9 @@ class RTFGenerator : public OutputGenerator void writeAnchor(const char *fileName,const char *name); void startCodeFragment(); void endCodeFragment(); - //void startPreFragment() { startCodeFragment(); } - //void endPreFragment() { endCodeFragment(); } - //void startVerbatimFragment() { startCodeFragment(); } - //void endVerbatimFragment() { endCodeFragment(); } void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; } void startCodeLine() { col=0; } void endCodeLine() { lineBreak(); } - //void writeBoldString(const char *text) - // { t << "{\\b "; docify(text); t << "}"; } void startEmphasis() { t << "{\\i "; } void endEmphasis() { t << "}"; } void startBold() { t << "{\\b "; } @@ -145,7 +132,6 @@ class RTFGenerator : public OutputGenerator void endCodeAnchor() {}; void writeChar(char c); void writeLatexSpacing() {};//{ t << "\\hspace{0.3cm}"; } - //void writeLatexLabel(const char *scope,const char *anchor); void writeStartAnnoItem(const char *type,const char *file, const char *path,const char *name); void writeEndAnnoItem(const char *name); @@ -157,64 +143,27 @@ class RTFGenerator : public OutputGenerator void endCenter() { t << "}"; } void startSmall() { t << "{\\sub "; } void endSmall() { t << "}"; } - //void startSubscript() { t << "{\\sub " << endl;} - //void endSubscript() { t << "}"; } - //void startSuperscript() { t << "{\\super " << endl;} - //void endSuperscript() { t << "}"; } - //void startTable(bool,int); - //void endTable(bool); - //void startCaption(); - //void endCaption(); - //void nextTableRow(); - //void endTableRow(); - //void nextTableColumn(); - //void endTableColumn(); - //void writeCopyright() { t << "\251"; } - //void writeQuote() { t << "\""; } - //void writeUmlaut(char c); - //void writeAcute(char c); - //void writeGrave(char c); - //void writeCirc(char c); - //void writeTilde(char c); - //void writeRing(char c); - //void writeSharpS() { t << "\337"; } - //void writeCCedil(char c); void startMemberDescription(); void endMemberDescription(); void startDescList(SectionTypes); - //void endDescList(); void startSimpleSect(SectionTypes,const char *,const char *,const char *); void endSimpleSect(); void startParamList(ParamListTypes,const char *); void endParamList(); - //void endDescTitle(); void writeDescItem(); void startSection(const char *,const char *,SectionInfo::SectionType); void endSection(const char *,SectionInfo::SectionType); - //void writeSectionRef(const char *,const char *,const char *,const char *); - //void writeSectionRefItem(const char *,const char *,const char *); - //void writeSectionRefAnchor(const char *,const char *,const char *); void addIndexItem(const char *,const char *); void startIndent(); void endIndent(); void writeSynopsis() {} - //void generateExternalIndex() {} void startClassDiagram(); - void endClassDiagram(ClassDiagram &,const char *filename,const char *name); - //void startColorFont(uchar,uchar,uchar) {} - //void endColorFont() {} + void endClassDiagram(const ClassDiagram &,const char *filename,const char *name); void startPageRef(); void endPageRef(const char *,const char *); - //void startQuickIndexItem(const char *,const char *) {} - //void endQuickIndexItem() {} void writeQuickLinks(bool,HighlightedItem) {} - //void writeFormula(const char *,const char *); void writeNonBreakableSpace(int); - //void startImage(const char *,const char *,bool); - //void endImage(bool); - //void startDotFile(const char *,bool); - //void endDotFile(bool); void startDescTable(); void endDescTable(); @@ -224,16 +173,16 @@ class RTFGenerator : public OutputGenerator void endDescTableData(); void startDotGraph(); - void endDotGraph(DotClassGraph &); + void endDotGraph(const DotClassGraph &); void startInclDepGraph(); - void endInclDepGraph(DotInclDepGraph &); + void endInclDepGraph(const DotInclDepGraph &); void startGroupCollaboration(); - void endGroupCollaboration(DotGroupCollaboration &g); + void endGroupCollaboration(const DotGroupCollaboration &g); void startCallGraph(); - void endCallGraph(DotCallGraph &); + void endCallGraph(const DotCallGraph &); void startDirDepGraph(); - void endDirDepGraph(DotDirDeps &g); - void writeGraphicalHierarchy(DotGfxHierarchyTable &) {} + void endDirDepGraph(const DotDirDeps &g); + void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {} void startMemberGroupHeader(bool); void endMemberGroupHeader(); @@ -270,14 +219,6 @@ class RTFGenerator : public OutputGenerator void startFontClass(const char *) {} void endFontClass() {} - //void startHtmlOnly() {} - //void endHtmlOnly() {} - //void startLatexOnly() {} - //void endLatexOnly() {} - - //void startSectionRefList() {} - //void endSectionRefList() {} - void writeCodeAnchor(const char *) {} void linkableSymbol(int,const char *,Definition *,Definition *) {} diff --git a/src/rtfstyle.cpp b/src/rtfstyle.cpp index ff3c2f1..aae7cef 100644 --- a/src/rtfstyle.cpp +++ b/src/rtfstyle.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/rtfstyle.h b/src/rtfstyle.h index 172e4fe..f6d6335 100644 --- a/src/rtfstyle.h +++ b/src/rtfstyle.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/scanner.h b/src/scanner.h index 891487a..33d9fb1 100644 --- a/src/scanner.h +++ b/src/scanner.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/scanner.l b/src/scanner.l index 8063c6e..b76b67d 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -1,6 +1,6 @@ /***************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -1325,6 +1325,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) current->bodyLine = yyLineNr; lineCount() ; if (yytext[yyleng-1]=='{') unput('{'); + if (insidePHP && current->spec&Entry::Abstract) + { + // convert Abstract to AbstractClass + current->spec=(current->spec&~Entry::Abstract)|Entry::AbstractClass; + } BEGIN( CompoundName ) ; } <FindMembers>{B}*"value class{" | // C++/CLI extension @@ -2928,6 +2933,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) } else { + current->doc.resize(0); + current->brief.resize(0); BEGIN( MemberSpec ) ; } } @@ -3059,10 +3066,10 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) //printf("msName=%s current->name=%s\n",msName.data(),current->name.data()); if (!msName.isEmpty() && msName!=current->name) // skip typedef T {} T; { - static bool optimizeForC = Config_getBool("OPTIMIZE_OUTPUT_FOR_C"); + static bool typedefHidesStruct = Config_getBool("TYPEDEF_HIDES_STRUCT"); // case 1: typedef struct _S { ... } S_t; // -> omit typedef and use S_t as the struct name - if (optimizeForC && + if (typedefHidesStruct && isTypedef && (current->spec&(Entry::Struct|Entry::Union)) && msType.stripWhiteSpace().isEmpty() && @@ -3086,7 +3093,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) varEntry->type.prepend("typedef "); // //printf("current->name = %s %s\n",current->name.data(),msName.data()); } - if (optimizeForC && + if (typedefHidesStruct && isTypedef && (current->spec&(Entry::Struct|Entry::Union)) && memspecEntry @@ -3139,6 +3146,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) initEntry(); BEGIN( FindMembers ); } + else + { + current->doc.resize(0); + current->brief.resize(0); + } } <MemberSpec>"=" { lastInitializerContext=YY_START; @@ -4907,6 +4919,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) <DocLine>[^\n]*"\n"[ \t]*"//"[/!] { // continuation of multiline C++-style comment docBlock+=yytext; docBlock.resize(docBlock.size() - 3); + yyLineNr++; } <DocLine>[^\n]*/"\n" { // whole line docBlock+=yytext; diff --git a/src/searchindex.cpp b/src/searchindex.cpp index acc6a58..4e9560e 100644 --- a/src/searchindex.cpp +++ b/src/searchindex.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/searchindex.h b/src/searchindex.h index 8a2bf08..2f80c2a 100644 --- a/src/searchindex.h +++ b/src/searchindex.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/section.h b/src/section.h index 2423a5f..48f5756 100644 --- a/src/section.h +++ b/src/section.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/sortdict.h b/src/sortdict.h index 790d796..e40e87d 100644 --- a/src/sortdict.h +++ b/src/sortdict.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/store.cpp b/src/store.cpp index 328b679..9b082aa 100644 --- a/src/store.cpp +++ b/src/store.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id:$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/store.h b/src/store.h index 4e0503e..85bb506 100644 --- a/src/store.h +++ b/src/store.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/tagreader.cpp b/src/tagreader.cpp index 22a0648..a257685 100644 --- a/src/tagreader.cpp +++ b/src/tagreader.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/tagreader.h b/src/tagreader.h index 6bc466e..8de56ea 100644 --- a/src/tagreader.h +++ b/src/tagreader.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/textdocvisitor.cpp b/src/textdocvisitor.cpp index 88afcb2..4904be2 100644 --- a/src/textdocvisitor.cpp +++ b/src/textdocvisitor.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/textdocvisitor.h b/src/textdocvisitor.h index 8e70da9..f8cf023 100644 --- a/src/textdocvisitor.h +++ b/src/textdocvisitor.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/translator_nl.h b/src/translator_nl.h index e2f1e1a..d27d6a1 100644 --- a/src/translator_nl.h +++ b/src/translator_nl.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/translator_pt.h b/src/translator_pt.h index 657460f..ffd6500 100644 --- a/src/translator_pt.h +++ b/src/translator_pt.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/translator_ro.h b/src/translator_ro.h index b2e5e46..7f0bc40 100644 --- a/src/translator_ro.h +++ b/src/translator_ro.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/translator_si.h b/src/translator_si.h index 0549d5e..e5fe55f 100644 --- a/src/translator_si.h +++ b/src/translator_si.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/util.cpp b/src/util.cpp index 8466b28..8e6e4eb 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1,6 +1,6 @@ /***************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * @@ -4825,7 +4825,6 @@ QCString insertTemplateSpecifierInScope(const QCString &scope,const QCString &te /*! Strips the scope from a name. Examples: A::B will return A * and A<T>::B<N::C<D> > will return A<T>. - * \todo deal with cases like A< s<<2 >::B */ QCString stripScope(const char *name) { @@ -4868,8 +4867,85 @@ QCString stripScope(const char *name) } //printf("stripScope(%s)=%s\n",name,name); return name; +} + +#if 0 // original version +// new version by Davide Cesari which also works for Fortran +QCString stripScope(const char *name) +{ + QCString result = name; + int l=result.length(); + int p; + bool done; + bool skipBracket=FALSE; // if brackets do not match properly, ignore them altogether + int count=0; + do + { + p=l-1; // start at the end of the string + while (p>=0 && count>=0) + { + char c=result.at(p); + switch (c) + { + case ':': + //printf("stripScope(%s)=%s\n",name,result.right(l-p-1).data()); + return result.right(l-p-1); + case '>': + if (skipBracket) // we don't care about brackets + { + p--; + } + else // count open/close brackets + { + if (p>0 && result.at(p-1)=='>') // skip >> operator + { + p-=2; + break; + } + count=1; + //printf("pos < = %d\n",p); + p--; + while (p>=0 && !done) + { + c=result.at(p--); + switch (c) + { + case '>': + count++; + break; + case '<': + if (p>0) + { + if (result.at(p-1) == '<') // skip << operator + { + p--; + break; + } + } + count--; + break; + default: + //printf("c=%c count=%d\n",c,count); + break; + } + } + } + //printf("pos > = %d\n",p+1); + break; + default: + p--; + } + } + done = count==0 || skipBracket; // reparse if brackets do not match + skipBracket=TRUE; + } + while (!done); // if < > unbalanced repeat ignoring them + //printf("stripScope(%s)=%s\n",name,name); + return name; } +#endif + /*! Converts a string to an XML-encoded string */ QCString convertToXML(const char *s) @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/version.h b/src/version.h index a040af7..9dfec1f 100644 --- a/src/version.h +++ b/src/version.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp index 2813d65..7e56b12 100644 --- a/src/xmldocvisitor.cpp +++ b/src/xmldocvisitor.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. @@ -108,7 +108,8 @@ void XmlDocVisitor::visit(DocURL *u) if (m_hide) return; m_t << "<ulink url=\""; if (u->isEmail()) m_t << "mailto:"; - m_t << u->url() << "\">"; + filter(u->url()); + m_t << "\">"; filter(u->url()); m_t << "</ulink>"; } diff --git a/src/xmldocvisitor.h b/src/xmldocvisitor.h index 695a72f..705dfc4 100644 --- a/src/xmldocvisitor.h +++ b/src/xmldocvisitor.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index 9b316c4..13f6408 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * * Copyright (C) 1997-2007 by Dimitri van Heesch. diff --git a/src/xmlgen.h b/src/xmlgen.h index b65689c..49ec0ca 100644 --- a/src/xmlgen.h +++ b/src/xmlgen.h @@ -1,6 +1,6 @@ /****************************************************************************** * - * + * $Id$ * * Copyright (C) 1997-2007 by Dimitri van Heesch. * |