Loading src/context.cpp +99 −15 Original line number Original line Diff line number Diff line Loading @@ -13,6 +13,8 @@ * * */ */ #include <qdir.h> #include "context.h" #include "context.h" #include "config.h" #include "config.h" #include "index.h" #include "index.h" Loading Loading @@ -286,7 +288,7 @@ class ConfigContext::Private { { public: public: Private() { m_cachedLists.setAutoDelete(TRUE); } Private() { m_cachedLists.setAutoDelete(TRUE); } ~Private() { } virtual ~Private() { } TemplateVariant fetchList(const QCString &name,const QStrList *list) TemplateVariant fetchList(const QCString &name,const QStrList *list) { { TemplateVariant *v = m_cachedLists.find(name); TemplateVariant *v = m_cachedLists.find(name); Loading Loading @@ -663,6 +665,19 @@ class TranslateContext::Private : public PropertyMapper static bool extractAll = Config_getBool("EXTRACT_ALL"); static bool extractAll = Config_getBool("EXTRACT_ALL"); return theTranslator->trNamespaceMemberDescription(extractAll); return theTranslator->trNamespaceMemberDescription(extractAll); } } TemplateVariant classMembersDescription() const { static bool extractAll = Config_getBool("EXTRACT_ALL"); static bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN"); if (fortranOpt) { return theTranslator->trCompoundMembersDescriptionFortran(extractAll); } else { return theTranslator->trCompoundMembersDescription(extractAll); } } TemplateVariant relatedPagesDesc() const TemplateVariant relatedPagesDesc() const { { return theTranslator->trRelatedPagesDescription(); return theTranslator->trRelatedPagesDescription(); Loading Loading @@ -805,6 +820,11 @@ class TranslateContext::Private : public PropertyMapper bool extractAll = Config_getBool("EXTRACT_ALL"); bool extractAll = Config_getBool("EXTRACT_ALL"); return theTranslator->trModulesListDescription(extractAll); return theTranslator->trModulesListDescription(extractAll); } } TemplateVariant namespaceListDescription() const { bool extractAll = Config_getBool("EXTRACT_ALL"); return theTranslator->trNamespaceListDescription(extractAll); } TemplateVariant directories() const TemplateVariant directories() const { { return theTranslator->trDirectories(); return theTranslator->trDirectories(); Loading Loading @@ -871,6 +891,8 @@ class TranslateContext::Private : public PropertyMapper addProperty("classHierarchy", this,&Private::classHierarchy); addProperty("classHierarchy", this,&Private::classHierarchy); //%% string classMembers //%% string classMembers addProperty("classMembers", this,&Private::classMembers); addProperty("classMembers", this,&Private::classMembers); //%% string classMembersDescription addProperty("classMembersDescription",this,&Private::classMembersDescription); //%% string modules //%% string modules addProperty("modules", this,&Private::modules); addProperty("modules", this,&Private::modules); //%% string namespaces //%% string namespaces Loading Loading @@ -961,6 +983,8 @@ class TranslateContext::Private : public PropertyMapper addProperty("detailLevel", this,&Private::detailLevel); addProperty("detailLevel", this,&Private::detailLevel); //%% string fileListDescription //%% string fileListDescription addProperty("fileListDescription",this,&Private::fileListDescription); addProperty("fileListDescription",this,&Private::fileListDescription); //%% string namespaceListDescription addProperty("namespaceListDescription",this,&Private::namespaceListDescription); //%% string directories //%% string directories addProperty("directories", this,&Private::directories); addProperty("directories", this,&Private::directories); //%% string moduleDescript //%% string moduleDescript Loading Loading @@ -1177,7 +1201,7 @@ class DefinitionContext : public PropertyMapper static bool createSubdirs = Config_getBool("CREATE_SUBDIRS"); static bool createSubdirs = Config_getBool("CREATE_SUBDIRS"); return createSubdirs ? QCString("../../") : QCString(""); return createSubdirs ? QCString("../../") : QCString(""); } } TemplateVariant relPath() const virtual TemplateVariant relPath() const { { return relPathAsString(); return relPathAsString(); } } Loading Loading @@ -1499,6 +1523,7 @@ class ClassContext::Private : public DefinitionContext<ClassContext::Private> addProperty("memberGroups", this,&Private::memberGroups); addProperty("memberGroups", this,&Private::memberGroups); addProperty("additionalInheritedMembers",this,&Private::additionalInheritedMembers); addProperty("additionalInheritedMembers",this,&Private::additionalInheritedMembers); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return TemplateVariant(m_classDef->title()); return TemplateVariant(m_classDef->title()); Loading Loading @@ -2175,6 +2200,7 @@ class NamespaceContext::Private : public DefinitionContext<NamespaceContext::Pri addProperty("detailedVariables", this,&Private::detailedVariables); addProperty("detailedVariables", this,&Private::detailedVariables); addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("inlineClasses", this,&Private::inlineClasses); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return TemplateVariant(m_namespaceDef->title()); return TemplateVariant(m_namespaceDef->title()); Loading Loading @@ -2433,6 +2459,7 @@ class FileContext::Private : public DefinitionContext<FileContext::Private> addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("compoundType", this,&Private::compoundType); addProperty("compoundType", this,&Private::compoundType); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return m_fileDef->title(); return m_fileDef->title(); Loading Loading @@ -2789,6 +2816,7 @@ class DirContext::Private : public DefinitionContext<DirContext::Private> addProperty("hasDetails", this,&Private::hasDetails); addProperty("hasDetails", this,&Private::hasDetails); addProperty("compoundType", this,&Private::compoundType); addProperty("compoundType", this,&Private::compoundType); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return TemplateVariant(m_dirDef->shortTitle()); return TemplateVariant(m_dirDef->shortTitle()); Loading Loading @@ -2849,6 +2877,10 @@ class DirContext::Private : public DefinitionContext<DirContext::Private> { { return theTranslator->trDir(FALSE,TRUE); return theTranslator->trDir(FALSE,TRUE); } } TemplateVariant relPath() const { return ""; } private: private: DirDef *m_dirDef; DirDef *m_dirDef; Loading Loading @@ -2891,6 +2923,7 @@ class PageContext::Private : public DefinitionContext<PageContext::Private> addProperty("highlight",this,&Private::highlight); addProperty("highlight",this,&Private::highlight); addProperty("subhighlight",this,&Private::subHighlight); addProperty("subhighlight",this,&Private::subHighlight); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { if (m_isMainPage) if (m_isMainPage) Loading @@ -2909,10 +2942,28 @@ class PageContext::Private : public DefinitionContext<PageContext::Private> return m_pageDef->title(); return m_pageDef->title(); } } } } TemplateVariant relPath() const { if (m_pageDef==Doxygen::mainPage) { return ""; } else { return DefinitionContext<PageContext::Private>::relPath(); } } TemplateVariant highlight() const TemplateVariant highlight() const { if (m_pageDef==Doxygen::mainPage) { return "main"; } else { { return "pages"; return "pages"; } } } TemplateVariant subHighlight() const TemplateVariant subHighlight() const { { return ""; return ""; Loading Loading @@ -3186,6 +3237,7 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private> if (md->isRaisable()) m_cache.eventAttrs->append("raise"); if (md->isRaisable()) m_cache.eventAttrs->append("raise"); } } } } virtual ~Private() {} TemplateVariant fieldType() const TemplateVariant fieldType() const { { return createLinkedText(m_memberDef,relPathAsString(),m_memberDef->fieldType()); return createLinkedText(m_memberDef,relPathAsString(),m_memberDef->fieldType()); Loading Loading @@ -4161,6 +4213,7 @@ class ModuleContext::Private : public DefinitionContext<ModuleContext::Private> addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("compoundType", this,&Private::compoundType); addProperty("compoundType", this,&Private::compoundType); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return TemplateVariant(m_groupDef->groupTitle()); return TemplateVariant(m_groupDef->groupTitle()); Loading Loading @@ -5784,6 +5837,23 @@ TemplateListIntf::ConstIterator *NamespaceListContext::createIterator() const class NamespaceTreeContext::Private : public PropertyMapper class NamespaceTreeContext::Private : public PropertyMapper { { public: public: Private() { m_namespaceTree.reset(NestingContext::alloc(0,0)); if (Doxygen::namespaceSDict) { m_namespaceTree->addNamespaces(*Doxygen::namespaceSDict,TRUE,FALSE); } //%% Nesting tree addProperty("tree",this,&Private::tree); addProperty("fileName",this,&Private::fileName); addProperty("relPath",this,&Private::relPath); addProperty("highlight",this,&Private::highlight); addProperty("subhighlight",this,&Private::subhighlight); addProperty("title",this,&Private::title); addProperty("preferredDepth",this,&Private::preferredDepth); addProperty("maxDepth",this,&Private::maxDepth); } TemplateVariant tree() const TemplateVariant tree() const { { return m_namespaceTree.get(); return m_namespaceTree.get(); Loading Loading @@ -5822,23 +5892,35 @@ class NamespaceTreeContext::Private : public PropertyMapper return theTranslator->trNamespaceList(); return theTranslator->trNamespaceList(); } } } } Private() TemplateVariant maxDepth() const { { m_namespaceTree.reset(NestingContext::alloc(0,0)); if (!m_cache.maxDepthComputed) if (Doxygen::namespaceSDict) { { m_namespaceTree->addNamespaces(*Doxygen::namespaceSDict,TRUE,FALSE); m_cache.maxDepth = computeMaxDepth(m_namespaceTree.get()); m_cache.maxDepthComputed=TRUE; } } //%% Nesting tree return m_cache.maxDepth; addProperty("tree",this,&Private::tree); } addProperty("fileName",this,&Private::fileName); TemplateVariant preferredDepth() const addProperty("relPath",this,&Private::relPath); { addProperty("highlight",this,&Private::highlight); if (!m_cache.preferredDepthComputed) addProperty("subhighlight",this,&Private::subhighlight); { addProperty("title",this,&Private::title); m_cache.preferredDepth = computePreferredDepth(m_namespaceTree.get(),maxDepth().toInt()); m_cache.preferredDepthComputed=TRUE; } return m_cache.preferredDepth; } } private: private: SharedPtr<NestingContext> m_namespaceTree; SharedPtr<NestingContext> m_namespaceTree; struct Cachable { Cachable() : maxDepthComputed(FALSE), preferredDepthComputed(FALSE) {} int maxDepth; bool maxDepthComputed; int preferredDepth; bool preferredDepthComputed; }; mutable Cachable m_cache; }; }; //%% } //%% } Loading Loading @@ -7581,7 +7663,7 @@ class InheritedMemberInfoContext::Private : public PropertyMapper addProperty("id", this,&Private::id); addProperty("id", this,&Private::id); addProperty("inheritedFrom", this,&Private::inheritedFrom); addProperty("inheritedFrom", this,&Private::inheritedFrom); } } ~Private() virtual ~Private() { { delete m_memberList; delete m_memberList; } } Loading Loading @@ -8120,6 +8202,8 @@ void generateOutputViaTemplate() g_globals.outputFormat = ContextGlobals::Html; g_globals.outputFormat = ContextGlobals::Html; g_globals.dynSectionId = 0; g_globals.dynSectionId = 0; g_globals.outputDir = Config_getString("HTML_OUTPUT"); g_globals.outputDir = Config_getString("HTML_OUTPUT"); QDir dir(g_globals.outputDir); createSubDirs(dir); HtmlEscaper htmlEsc; HtmlEscaper htmlEsc; ctx->setEscapeIntf(Config_getString("HTML_FILE_EXTENSION"),&htmlEsc); ctx->setEscapeIntf(Config_getString("HTML_FILE_EXTENSION"),&htmlEsc); HtmlSpaceless spl; HtmlSpaceless spl; Loading src/context.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -66,7 +66,7 @@ class RefCountedContext m_className=className; m_className=className; m_insideRelease = FALSE; m_insideRelease = FALSE; } } virtual ~RefCountedContext() ~RefCountedContext() { { if (!m_insideRelease) abort(); if (!m_insideRelease) abort(); } } Loading src/definition.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1360,7 +1360,7 @@ QCString Definition::qualifiedName() const //printf("end %s::qualifiedName()=%s\n",name().data(),m_impl->qualifiedName.data()); //printf("end %s::qualifiedName()=%s\n",name().data(),m_impl->qualifiedName.data()); //count--; //count--; return m_impl->qualifiedName; return m_impl->qualifiedName; }; } void Definition::setOuterScope(Definition *d) void Definition::setOuterScope(Definition *d) { { Loading src/memberdef.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -5102,6 +5102,6 @@ bool MemberDef::isFunctionOrSignalSlot() const bool MemberDef::isRelatedOrFriend() const bool MemberDef::isRelatedOrFriend() const { { return isRelated() || isForeign() || isFriend() && !isFriendToHide(); return isRelated() || isForeign() || (isFriend() && !isFriendToHide()); } } src/template.cpp +21 −0 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <qfile.h> #include <qfile.h> #include <qregexp.h> #include <qregexp.h> #include <qcstring.h> #include <qcstring.h> #include <qdir.h> #include "sortdict.h" #include "sortdict.h" #include "ftextstream.h" #include "ftextstream.h" Loading Loading @@ -3465,6 +3466,25 @@ class TemplateNodeCreate : public TemplateNodeCreator<TemplateNodeCreate> delete m_templateExpr; delete m_templateExpr; delete m_fileExpr; delete m_fileExpr; } } void mkpath(TemplateContextImpl *ci,const QCString &fileName) { int i=fileName.find('/'); QCString outputDir = ci->outputDirectory(); QDir d(outputDir); int j=0; while (i!=-1) // fileName contains path part { if (d.exists()) { bool ok = d.mkdir(fileName.mid(j,i-j)); if (!ok) break; QCString dirName = outputDir+'/'+fileName.left(i); d = QDir(dirName); j = i+1; } i=fileName.find('/',i+1); } } void render(FTextStream &, TemplateContext *c) void render(FTextStream &, TemplateContext *c) { { TemplateContextImpl* ci = dynamic_cast<TemplateContextImpl*>(c); TemplateContextImpl* ci = dynamic_cast<TemplateContextImpl*>(c); Loading @@ -3490,6 +3510,7 @@ class TemplateNodeCreate : public TemplateNodeCreator<TemplateNodeCreate> TemplateImpl *createTemplate = ct ? dynamic_cast<TemplateImpl*>(ct) : 0; TemplateImpl *createTemplate = ct ? dynamic_cast<TemplateImpl*>(ct) : 0; if (createTemplate) if (createTemplate) { { //mkpath(ci,outputFile); QCString extension=outputFile; QCString extension=outputFile; int i=extension.findRev('.'); int i=extension.findRev('.'); if (i!=-1) if (i!=-1) Loading Loading
src/context.cpp +99 −15 Original line number Original line Diff line number Diff line Loading @@ -13,6 +13,8 @@ * * */ */ #include <qdir.h> #include "context.h" #include "context.h" #include "config.h" #include "config.h" #include "index.h" #include "index.h" Loading Loading @@ -286,7 +288,7 @@ class ConfigContext::Private { { public: public: Private() { m_cachedLists.setAutoDelete(TRUE); } Private() { m_cachedLists.setAutoDelete(TRUE); } ~Private() { } virtual ~Private() { } TemplateVariant fetchList(const QCString &name,const QStrList *list) TemplateVariant fetchList(const QCString &name,const QStrList *list) { { TemplateVariant *v = m_cachedLists.find(name); TemplateVariant *v = m_cachedLists.find(name); Loading Loading @@ -663,6 +665,19 @@ class TranslateContext::Private : public PropertyMapper static bool extractAll = Config_getBool("EXTRACT_ALL"); static bool extractAll = Config_getBool("EXTRACT_ALL"); return theTranslator->trNamespaceMemberDescription(extractAll); return theTranslator->trNamespaceMemberDescription(extractAll); } } TemplateVariant classMembersDescription() const { static bool extractAll = Config_getBool("EXTRACT_ALL"); static bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN"); if (fortranOpt) { return theTranslator->trCompoundMembersDescriptionFortran(extractAll); } else { return theTranslator->trCompoundMembersDescription(extractAll); } } TemplateVariant relatedPagesDesc() const TemplateVariant relatedPagesDesc() const { { return theTranslator->trRelatedPagesDescription(); return theTranslator->trRelatedPagesDescription(); Loading Loading @@ -805,6 +820,11 @@ class TranslateContext::Private : public PropertyMapper bool extractAll = Config_getBool("EXTRACT_ALL"); bool extractAll = Config_getBool("EXTRACT_ALL"); return theTranslator->trModulesListDescription(extractAll); return theTranslator->trModulesListDescription(extractAll); } } TemplateVariant namespaceListDescription() const { bool extractAll = Config_getBool("EXTRACT_ALL"); return theTranslator->trNamespaceListDescription(extractAll); } TemplateVariant directories() const TemplateVariant directories() const { { return theTranslator->trDirectories(); return theTranslator->trDirectories(); Loading Loading @@ -871,6 +891,8 @@ class TranslateContext::Private : public PropertyMapper addProperty("classHierarchy", this,&Private::classHierarchy); addProperty("classHierarchy", this,&Private::classHierarchy); //%% string classMembers //%% string classMembers addProperty("classMembers", this,&Private::classMembers); addProperty("classMembers", this,&Private::classMembers); //%% string classMembersDescription addProperty("classMembersDescription",this,&Private::classMembersDescription); //%% string modules //%% string modules addProperty("modules", this,&Private::modules); addProperty("modules", this,&Private::modules); //%% string namespaces //%% string namespaces Loading Loading @@ -961,6 +983,8 @@ class TranslateContext::Private : public PropertyMapper addProperty("detailLevel", this,&Private::detailLevel); addProperty("detailLevel", this,&Private::detailLevel); //%% string fileListDescription //%% string fileListDescription addProperty("fileListDescription",this,&Private::fileListDescription); addProperty("fileListDescription",this,&Private::fileListDescription); //%% string namespaceListDescription addProperty("namespaceListDescription",this,&Private::namespaceListDescription); //%% string directories //%% string directories addProperty("directories", this,&Private::directories); addProperty("directories", this,&Private::directories); //%% string moduleDescript //%% string moduleDescript Loading Loading @@ -1177,7 +1201,7 @@ class DefinitionContext : public PropertyMapper static bool createSubdirs = Config_getBool("CREATE_SUBDIRS"); static bool createSubdirs = Config_getBool("CREATE_SUBDIRS"); return createSubdirs ? QCString("../../") : QCString(""); return createSubdirs ? QCString("../../") : QCString(""); } } TemplateVariant relPath() const virtual TemplateVariant relPath() const { { return relPathAsString(); return relPathAsString(); } } Loading Loading @@ -1499,6 +1523,7 @@ class ClassContext::Private : public DefinitionContext<ClassContext::Private> addProperty("memberGroups", this,&Private::memberGroups); addProperty("memberGroups", this,&Private::memberGroups); addProperty("additionalInheritedMembers",this,&Private::additionalInheritedMembers); addProperty("additionalInheritedMembers",this,&Private::additionalInheritedMembers); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return TemplateVariant(m_classDef->title()); return TemplateVariant(m_classDef->title()); Loading Loading @@ -2175,6 +2200,7 @@ class NamespaceContext::Private : public DefinitionContext<NamespaceContext::Pri addProperty("detailedVariables", this,&Private::detailedVariables); addProperty("detailedVariables", this,&Private::detailedVariables); addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("inlineClasses", this,&Private::inlineClasses); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return TemplateVariant(m_namespaceDef->title()); return TemplateVariant(m_namespaceDef->title()); Loading Loading @@ -2433,6 +2459,7 @@ class FileContext::Private : public DefinitionContext<FileContext::Private> addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("compoundType", this,&Private::compoundType); addProperty("compoundType", this,&Private::compoundType); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return m_fileDef->title(); return m_fileDef->title(); Loading Loading @@ -2789,6 +2816,7 @@ class DirContext::Private : public DefinitionContext<DirContext::Private> addProperty("hasDetails", this,&Private::hasDetails); addProperty("hasDetails", this,&Private::hasDetails); addProperty("compoundType", this,&Private::compoundType); addProperty("compoundType", this,&Private::compoundType); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return TemplateVariant(m_dirDef->shortTitle()); return TemplateVariant(m_dirDef->shortTitle()); Loading Loading @@ -2849,6 +2877,10 @@ class DirContext::Private : public DefinitionContext<DirContext::Private> { { return theTranslator->trDir(FALSE,TRUE); return theTranslator->trDir(FALSE,TRUE); } } TemplateVariant relPath() const { return ""; } private: private: DirDef *m_dirDef; DirDef *m_dirDef; Loading Loading @@ -2891,6 +2923,7 @@ class PageContext::Private : public DefinitionContext<PageContext::Private> addProperty("highlight",this,&Private::highlight); addProperty("highlight",this,&Private::highlight); addProperty("subhighlight",this,&Private::subHighlight); addProperty("subhighlight",this,&Private::subHighlight); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { if (m_isMainPage) if (m_isMainPage) Loading @@ -2909,10 +2942,28 @@ class PageContext::Private : public DefinitionContext<PageContext::Private> return m_pageDef->title(); return m_pageDef->title(); } } } } TemplateVariant relPath() const { if (m_pageDef==Doxygen::mainPage) { return ""; } else { return DefinitionContext<PageContext::Private>::relPath(); } } TemplateVariant highlight() const TemplateVariant highlight() const { if (m_pageDef==Doxygen::mainPage) { return "main"; } else { { return "pages"; return "pages"; } } } TemplateVariant subHighlight() const TemplateVariant subHighlight() const { { return ""; return ""; Loading Loading @@ -3186,6 +3237,7 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private> if (md->isRaisable()) m_cache.eventAttrs->append("raise"); if (md->isRaisable()) m_cache.eventAttrs->append("raise"); } } } } virtual ~Private() {} TemplateVariant fieldType() const TemplateVariant fieldType() const { { return createLinkedText(m_memberDef,relPathAsString(),m_memberDef->fieldType()); return createLinkedText(m_memberDef,relPathAsString(),m_memberDef->fieldType()); Loading Loading @@ -4161,6 +4213,7 @@ class ModuleContext::Private : public DefinitionContext<ModuleContext::Private> addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("inlineClasses", this,&Private::inlineClasses); addProperty("compoundType", this,&Private::compoundType); addProperty("compoundType", this,&Private::compoundType); } } virtual ~Private() {} TemplateVariant title() const TemplateVariant title() const { { return TemplateVariant(m_groupDef->groupTitle()); return TemplateVariant(m_groupDef->groupTitle()); Loading Loading @@ -5784,6 +5837,23 @@ TemplateListIntf::ConstIterator *NamespaceListContext::createIterator() const class NamespaceTreeContext::Private : public PropertyMapper class NamespaceTreeContext::Private : public PropertyMapper { { public: public: Private() { m_namespaceTree.reset(NestingContext::alloc(0,0)); if (Doxygen::namespaceSDict) { m_namespaceTree->addNamespaces(*Doxygen::namespaceSDict,TRUE,FALSE); } //%% Nesting tree addProperty("tree",this,&Private::tree); addProperty("fileName",this,&Private::fileName); addProperty("relPath",this,&Private::relPath); addProperty("highlight",this,&Private::highlight); addProperty("subhighlight",this,&Private::subhighlight); addProperty("title",this,&Private::title); addProperty("preferredDepth",this,&Private::preferredDepth); addProperty("maxDepth",this,&Private::maxDepth); } TemplateVariant tree() const TemplateVariant tree() const { { return m_namespaceTree.get(); return m_namespaceTree.get(); Loading Loading @@ -5822,23 +5892,35 @@ class NamespaceTreeContext::Private : public PropertyMapper return theTranslator->trNamespaceList(); return theTranslator->trNamespaceList(); } } } } Private() TemplateVariant maxDepth() const { { m_namespaceTree.reset(NestingContext::alloc(0,0)); if (!m_cache.maxDepthComputed) if (Doxygen::namespaceSDict) { { m_namespaceTree->addNamespaces(*Doxygen::namespaceSDict,TRUE,FALSE); m_cache.maxDepth = computeMaxDepth(m_namespaceTree.get()); m_cache.maxDepthComputed=TRUE; } } //%% Nesting tree return m_cache.maxDepth; addProperty("tree",this,&Private::tree); } addProperty("fileName",this,&Private::fileName); TemplateVariant preferredDepth() const addProperty("relPath",this,&Private::relPath); { addProperty("highlight",this,&Private::highlight); if (!m_cache.preferredDepthComputed) addProperty("subhighlight",this,&Private::subhighlight); { addProperty("title",this,&Private::title); m_cache.preferredDepth = computePreferredDepth(m_namespaceTree.get(),maxDepth().toInt()); m_cache.preferredDepthComputed=TRUE; } return m_cache.preferredDepth; } } private: private: SharedPtr<NestingContext> m_namespaceTree; SharedPtr<NestingContext> m_namespaceTree; struct Cachable { Cachable() : maxDepthComputed(FALSE), preferredDepthComputed(FALSE) {} int maxDepth; bool maxDepthComputed; int preferredDepth; bool preferredDepthComputed; }; mutable Cachable m_cache; }; }; //%% } //%% } Loading Loading @@ -7581,7 +7663,7 @@ class InheritedMemberInfoContext::Private : public PropertyMapper addProperty("id", this,&Private::id); addProperty("id", this,&Private::id); addProperty("inheritedFrom", this,&Private::inheritedFrom); addProperty("inheritedFrom", this,&Private::inheritedFrom); } } ~Private() virtual ~Private() { { delete m_memberList; delete m_memberList; } } Loading Loading @@ -8120,6 +8202,8 @@ void generateOutputViaTemplate() g_globals.outputFormat = ContextGlobals::Html; g_globals.outputFormat = ContextGlobals::Html; g_globals.dynSectionId = 0; g_globals.dynSectionId = 0; g_globals.outputDir = Config_getString("HTML_OUTPUT"); g_globals.outputDir = Config_getString("HTML_OUTPUT"); QDir dir(g_globals.outputDir); createSubDirs(dir); HtmlEscaper htmlEsc; HtmlEscaper htmlEsc; ctx->setEscapeIntf(Config_getString("HTML_FILE_EXTENSION"),&htmlEsc); ctx->setEscapeIntf(Config_getString("HTML_FILE_EXTENSION"),&htmlEsc); HtmlSpaceless spl; HtmlSpaceless spl; Loading
src/context.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -66,7 +66,7 @@ class RefCountedContext m_className=className; m_className=className; m_insideRelease = FALSE; m_insideRelease = FALSE; } } virtual ~RefCountedContext() ~RefCountedContext() { { if (!m_insideRelease) abort(); if (!m_insideRelease) abort(); } } Loading
src/definition.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1360,7 +1360,7 @@ QCString Definition::qualifiedName() const //printf("end %s::qualifiedName()=%s\n",name().data(),m_impl->qualifiedName.data()); //printf("end %s::qualifiedName()=%s\n",name().data(),m_impl->qualifiedName.data()); //count--; //count--; return m_impl->qualifiedName; return m_impl->qualifiedName; }; } void Definition::setOuterScope(Definition *d) void Definition::setOuterScope(Definition *d) { { Loading
src/memberdef.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -5102,6 +5102,6 @@ bool MemberDef::isFunctionOrSignalSlot() const bool MemberDef::isRelatedOrFriend() const bool MemberDef::isRelatedOrFriend() const { { return isRelated() || isForeign() || isFriend() && !isFriendToHide(); return isRelated() || isForeign() || (isFriend() && !isFriendToHide()); } }
src/template.cpp +21 −0 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <qfile.h> #include <qfile.h> #include <qregexp.h> #include <qregexp.h> #include <qcstring.h> #include <qcstring.h> #include <qdir.h> #include "sortdict.h" #include "sortdict.h" #include "ftextstream.h" #include "ftextstream.h" Loading Loading @@ -3465,6 +3466,25 @@ class TemplateNodeCreate : public TemplateNodeCreator<TemplateNodeCreate> delete m_templateExpr; delete m_templateExpr; delete m_fileExpr; delete m_fileExpr; } } void mkpath(TemplateContextImpl *ci,const QCString &fileName) { int i=fileName.find('/'); QCString outputDir = ci->outputDirectory(); QDir d(outputDir); int j=0; while (i!=-1) // fileName contains path part { if (d.exists()) { bool ok = d.mkdir(fileName.mid(j,i-j)); if (!ok) break; QCString dirName = outputDir+'/'+fileName.left(i); d = QDir(dirName); j = i+1; } i=fileName.find('/',i+1); } } void render(FTextStream &, TemplateContext *c) void render(FTextStream &, TemplateContext *c) { { TemplateContextImpl* ci = dynamic_cast<TemplateContextImpl*>(c); TemplateContextImpl* ci = dynamic_cast<TemplateContextImpl*>(c); Loading @@ -3490,6 +3510,7 @@ class TemplateNodeCreate : public TemplateNodeCreator<TemplateNodeCreate> TemplateImpl *createTemplate = ct ? dynamic_cast<TemplateImpl*>(ct) : 0; TemplateImpl *createTemplate = ct ? dynamic_cast<TemplateImpl*>(ct) : 0; if (createTemplate) if (createTemplate) { { //mkpath(ci,outputFile); QCString extension=outputFile; QCString extension=outputFile; int i=extension.findRev('.'); int i=extension.findRev('.'); if (i!=-1) if (i!=-1) Loading