From 32dc0630c43c081c9af15b02b2366516ad78a868 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Thu, 20 May 2021 20:23:39 +0200 Subject: Make templated HTML output more similar to hardcoded output. --- src/classdef.cpp | 4 +- src/context.cpp | 146 ++++++++++++++++++++++++++++++------ src/context.h | 1 + src/dirdef.cpp | 8 +- src/htmlgen.cpp | 4 +- src/index.cpp | 42 ++++------- src/memberdef.cpp | 15 ++++ src/memberdef.h | 2 + src/searchindex.cpp | 1 + src/template.cpp | 18 +++++ templates/html/htmlallmembers.tpl | 3 +- templates/html/htmlannotated.tpl | 2 +- templates/html/htmlbase.tpl | 5 +- templates/html/htmlclasses.tpl | 1 + templates/html/htmldeclcomp.tpl | 3 +- templates/html/htmldirtree.tpl | 17 ++++- templates/html/htmlexamples.tpl | 2 +- templates/html/htmlfiles.tpl | 2 +- templates/html/htmlhierarchy.tpl | 2 +- templates/html/htmlindexpages.tpl | 2 +- templates/html/htmljsnavpage.tpl | 20 +++++ templates/html/htmljsnavtree.tpl | 16 +++- templates/html/htmllayout.tpl | 19 ++--- templates/html/htmlmemberindex.tpl | 13 ++-- templates/html/htmlmembersindex.tpl | 20 ++--- templates/html/htmlmodules.tpl | 2 +- templates/html/htmlnamespaces.tpl | 2 +- templates/html/htmlpages.tpl | 2 +- templates/html/nomatches.tpl | 13 ++++ 29 files changed, 286 insertions(+), 101 deletions(-) create mode 100644 templates/html/htmljsnavpage.tpl create mode 100644 templates/html/nomatches.tpl diff --git a/src/classdef.cpp b/src/classdef.cpp index 9f2fe12..c3a3160 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -2893,7 +2893,7 @@ void ClassDefImpl::writeMemberList(OutputList &ol) const first = false; } ol.writeString(" "); if (cd->isObjectiveC()) @@ -2951,7 +2951,7 @@ void ClassDefImpl::writeMemberList(OutputList &ol) const first = false; } ol.writeString(" "); if (cd->isObjectiveC()) diff --git a/src/context.cpp b/src/context.cpp index ff5815e..7d1c6a7 100644 --- a/src/context.cpp +++ b/src/context.cpp @@ -1044,6 +1044,10 @@ class TranslateContext::Private { return HtmlHelp::getLanguageString(); } + TemplateVariant code() const + { + return theTranslator->trCode(); + } Private() { static bool init=FALSE; @@ -1239,6 +1243,8 @@ class TranslateContext::Private s_inst.addProperty("examplesDescription",&Private::examplesDescription); //%% string langstring s_inst.addProperty("langString", &Private::langString); + //%% string code + s_inst.addProperty("code", &Private::code); init=TRUE; } @@ -6190,6 +6196,7 @@ class NestingNodeContext::Private : m_parent(parent), m_def(d), m_level(level), m_index(index) { m_children.reset(NestingContext::alloc(thisNode,level+1)); + m_members.reset(NestingContext::alloc(thisNode,level+1)); static bool init=FALSE; if (!init) { @@ -6197,6 +6204,8 @@ class NestingNodeContext::Private s_inst.addProperty("is_leaf_node",&Private::isLeafNode); //%% Nesting children: list of nested classes/namespaces s_inst.addProperty("children",&Private::children); + //%% Nesting children: list of nested classes/namespaces + s_inst.addProperty("members",&Private::members); //%% [optional] Class class: class info (if this node represents a class) s_inst.addProperty("class",&Private::getClass); //%% [optional] Namespace namespace: namespace info (if this node represents a namespace) @@ -6209,6 +6218,8 @@ class NestingNodeContext::Private s_inst.addProperty("page",&Private::getPage); //%% [optional] Module module: module info (if this node represents a module) s_inst.addProperty("module",&Private::getModule); + //%% [optional] Member member: member info (if this node represents a member) + s_inst.addProperty("member",&Private::getMember); //%% int id s_inst.addProperty("id",&Private::id); //%% string level @@ -6231,6 +6242,7 @@ class NestingNodeContext::Private addDirFiles(visitedClasses); addPages(visitedClasses); addModules(visitedClasses); + addMembers(visitedClasses); } TemplateVariant get(const QCString &n) const { @@ -6248,6 +6260,10 @@ class NestingNodeContext::Private { return m_children.get(); } + TemplateVariant members() const + { + return m_members.get(); + } TemplateVariant getClass() const { if (!m_cache.classContext && m_def->definitionType()==Definition::TypeClass) @@ -6338,6 +6354,21 @@ class NestingNodeContext::Private return TemplateVariant(FALSE); } } + TemplateVariant getMember() const + { + if (!m_cache.memberContext && m_def->definitionType()==Definition::TypeMember) + { + m_cache.memberContext.reset(MemberContext::alloc(toMemberDef(m_def))); + } + if (m_cache.memberContext) + { + return m_cache.memberContext.get(); + } + else + { + return TemplateVariant(FALSE); + } + } TemplateVariant level() const { return m_level; @@ -6400,26 +6431,26 @@ class NestingNodeContext::Private void addClasses(bool inherit, bool hideSuper,ClassDefSet &visitedClasses) { const ClassDef *cd = toClassDef(m_def); - if (cd && inherit) + if (cd) { - bool hasChildren = visitedClasses.find(cd)==visitedClasses.end() && - !hideSuper && classHasVisibleChildren(cd); - if (hasChildren) + if (inherit) { - visitedClasses.insert(cd); - if (cd->getLanguage()==SrcLangExt_VHDL) - { - m_children->addDerivedClasses(cd->baseClasses(),false,visitedClasses); - } - else + bool hasChildren = visitedClasses.find(cd)==visitedClasses.end() && + !hideSuper && classHasVisibleChildren(cd); + if (hasChildren) { - m_children->addDerivedClasses(cd->subClasses(),false,visitedClasses); + visitedClasses.insert(cd); + if (cd->getLanguage()==SrcLangExt_VHDL) + { + m_children->addDerivedClasses(cd->baseClasses(),false,visitedClasses); + } + else + { + m_children->addDerivedClasses(cd->subClasses(),false,visitedClasses); + } } } - } - else - { - if (cd) + else { m_children->addClasses(cd->getClasses(),FALSE,visitedClasses); } @@ -6428,13 +6459,16 @@ class NestingNodeContext::Private void addNamespaces(bool addClasses,ClassDefSet &visitedClasses) { const NamespaceDef *nd = toNamespaceDef(m_def); - if (nd && !nd->getNamespaces().empty()) + if (nd) { - m_children->addNamespaces(nd->getNamespaces(),FALSE,addClasses,visitedClasses); - } - if (addClasses && nd) - { - m_children->addClasses(nd->getClasses(),FALSE,visitedClasses); + if (!nd->getNamespaces().empty()) + { + m_children->addNamespaces(nd->getNamespaces(),FALSE,addClasses,visitedClasses); + } + if (addClasses) + { + m_children->addClasses(nd->getClasses(),FALSE,visitedClasses); + } } } void addDirFiles(ClassDefSet &visitedClasses) @@ -6462,10 +6496,53 @@ class NestingNodeContext::Private m_children->addModules(gd->getSubGroups(),visitedClasses); } } + void addMembers(ClassDefSet &visitedClasses) + { + if (m_def->definitionType()==Definition::TypeNamespace) + { + // add namespace members + for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Namespace)) + { + if (lde->kind()==LayoutDocEntry::MemberDef) + { + const LayoutDocEntryMemberDef *lmd = (const LayoutDocEntryMemberDef*)lde.get(); + const MemberList *ml = toNamespaceDef(m_def)->getMemberList(lmd->type); + m_members->addMembers(ml,visitedClasses); + } + } + } + else if (m_def->definitionType()==Definition::TypeClass) + { + // add class members + for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Class)) + { + if (lde->kind()==LayoutDocEntry::MemberDef) + { + const LayoutDocEntryMemberDef *lmd = (const LayoutDocEntryMemberDef*)lde.get(); + const MemberList *ml = toClassDef(m_def)->getMemberList(lmd->type); + m_members->addMembers(ml,visitedClasses); + } + } + } + else if (m_def->definitionType()==Definition::TypeFile) + { + // add class members + for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::File)) + { + if (lde->kind()==LayoutDocEntry::MemberDef) + { + const LayoutDocEntryMemberDef *lmd = (const LayoutDocEntryMemberDef*)lde.get(); + const MemberList *ml = toFileDef(m_def)->getMemberList(lmd->type); + m_members->addMembers(ml,visitedClasses); + } + } + } + } private: const NestingNodeContext *m_parent; const Definition *m_def; SharedPtr m_children; + SharedPtr m_members; int m_level; int m_index; struct Cachable @@ -6476,6 +6553,7 @@ class NestingNodeContext::Private SharedPtr fileContext; SharedPtr pageContext; SharedPtr moduleContext; + SharedPtr memberContext; ScopedPtr brief; }; mutable Cachable m_cache; @@ -6618,7 +6696,8 @@ class NestingContext::Private : public GenericNodeListContext { if (fd->getDirDef()==0) // top level file { - append(NestingNodeContext::alloc(m_parent,fd.get(),m_index,m_level,FALSE,FALSE,FALSE,visitedClasses)); + NestingNodeContext *nnc = NestingNodeContext::alloc(m_parent,fd.get(),m_index,m_level,FALSE,FALSE,FALSE,visitedClasses); + append(nnc); m_index++; } } @@ -6628,7 +6707,8 @@ class NestingContext::Private : public GenericNodeListContext { for (const auto &fd : fList) { - append(NestingNodeContext::alloc(m_parent,fd,m_index,m_level,FALSE,FALSE,FALSE,visitedClasses)); + NestingNodeContext *nnc=NestingNodeContext::alloc(m_parent,fd,m_index,m_level,FALSE,FALSE,FALSE,visitedClasses); + append(nnc); m_index++; } } @@ -6738,6 +6818,21 @@ class NestingContext::Private : public GenericNodeListContext } } } + void addMembers(const MemberList *ml,ClassDefSet &visitedClasses) + { + if (ml) + { + for (const auto &md : *ml) + { + if (md->visibleInIndex()) + { + NestingNodeContext *nnc = NestingNodeContext::alloc(m_parent,md,m_index,m_level+1,TRUE,TRUE,FALSE,visitedClasses); + append(nnc); + m_index++; + } + } + } + } private: const NestingNodeContext *m_parent; @@ -6841,6 +6936,11 @@ void NestingContext::addDerivedClasses(const BaseClassList &bcl,bool hideSuper,C p->addDerivedClasses(bcl,hideSuper,visitedClasses); } +void NestingContext::addMembers(const MemberList *ml,ClassDefSet &visitedClasses) +{ + p->addMembers(ml,visitedClasses); +} + //------------------------------------------------------------------------ //%% struct ClassTree: Class nesting relations diff --git a/src/context.h b/src/context.h index 42da981..bff4903 100644 --- a/src/context.h +++ b/src/context.h @@ -578,6 +578,7 @@ class NestingContext : public RefCountedContext, public TemplateListIntf void addModules(const GroupList &modules,ClassDefSet &visitedClasses); void addClassHierarchy(const ClassLinkedMap &clLinkedMap,ClassDefSet &visitedClasses); void addDerivedClasses(const BaseClassList &bcl,bool hideSuper,ClassDefSet &visitedClasses); + void addMembers(const MemberList *ml,ClassDefSet &visitedClasses); private: NestingContext(const NestingNodeContext *parent,int level); diff --git a/src/dirdef.cpp b/src/dirdef.cpp index 1814b51..f4354a4 100644 --- a/src/dirdef.cpp +++ b/src/dirdef.cpp @@ -341,7 +341,7 @@ void DirDefImpl::writeSubDirList(OutputList &ol) if (dd->hasDocumentation() || dd->getFiles().empty()) { ol.startMemberDeclaration(); - ol.startMemberItem(dd->getOutputFileBase(),0); + ol.startMemberItem(dd->anchor(),0); ol.parseText(theTranslator->trDir(FALSE,TRUE)+" "); ol.insertMemberAlign(); ol.writeObjectLink(dd->getReference(),dd->getOutputFileBase(),QCString(),dd->shortName()); @@ -359,7 +359,7 @@ void DirDefImpl::writeSubDirList(OutputList &ol) ); ol.endMemberDescription(); } - ol.endMemberDeclaration(QCString(),QCString()); + ol.endMemberDeclaration(dd->anchor(),QCString()); } } @@ -390,7 +390,7 @@ void DirDefImpl::writeFileList(OutputList &ol) if (fd->hasDocumentation()) { ol.startMemberDeclaration(); - ol.startMemberItem(fd->getOutputFileBase(),0); + ol.startMemberItem(fd->anchor(),0); ol.docify(theTranslator->trFile(FALSE,TRUE)+" "); ol.insertMemberAlign(); if (fd->isLinkable()) @@ -429,7 +429,7 @@ void DirDefImpl::writeFileList(OutputList &ol) ); ol.endMemberDescription(); } - ol.endMemberDeclaration(QCString(),QCString()); + ol.endMemberDeclaration(fd->anchor(),QCString()); } } ol.endMemberList(); diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index cde7ef2..ee9560a 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -2887,14 +2887,14 @@ void HtmlGenerator::startHeaderSection() void HtmlGenerator::startTitleHead(const QCString &) { - m_t << "
\n"; + m_t << "
"; startTitle(); } void HtmlGenerator::endTitleHead(const QCString &,const QCString &) { endTitle(); - m_t << "
\n"; + m_t << "
\n"; } void HtmlGenerator::endHeaderSection() diff --git a/src/index.cpp b/src/index.cpp index 99942f1..de50cc5 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -289,18 +289,6 @@ void endFileWithNavPath(const Definition *d,OutputList &ol) //---------------------------------------------------------------------- -static bool memberVisibleInIndex(const MemberDef *md) -{ - bool isAnonymous = md->isAnonymous(); - bool hideUndocMembers = Config_getBool(HIDE_UNDOC_MEMBERS); - bool extractStatic = Config_getBool(EXTRACT_STATIC); - return (!isAnonymous && - (!hideUndocMembers || md->hasDocumentation()) && - (!md->isStatic() || extractStatic) && - md->isLinkable() - ); -} - static void writeMemberToIndex(const Definition *def,const MemberDef *md,bool addToIndex) { bool isAnonymous = md->isAnonymous(); @@ -388,7 +376,7 @@ void addMembersToIndex(T *def,LayoutDocManager::LayoutPart part, { for (const auto &md : *ml) { - if (memberVisibleInIndex(md)) + if (md->visibleInIndex()) { writeMemberToIndex(def,md,addToIndex); } @@ -1611,7 +1599,7 @@ static int countVisibleMembers(const NamespaceDef *nd) { for (const auto &md : *ml) { - if (memberVisibleInIndex(md)) + if (md->visibleInIndex()) { count++; } @@ -1634,8 +1622,8 @@ static void writeNamespaceMembers(const NamespaceDef *nd,bool addToIndex) { for (const auto &md : *ml) { - //printf(" member %s visible=%d\n",qPrint(md->name()),memberVisibleInIndex(md)); - if (memberVisibleInIndex(md)) + //printf(" member %s visible=%d\n",qPrint(md->name()),md->visibleInIndex()); + if (md->visibleInIndex()) { writeMemberToIndex(nd,md,addToIndex); } @@ -2180,7 +2168,9 @@ static void writeAlphabeticalClassList(OutputList &ol, ClassDef::CompoundType ct // write character heading ol.writeString("
"); QCString s = letterToLabel(cl.first.c_str()); - ol.writeString(""); ol.writeString(cl.first.c_str()); @@ -2511,10 +2501,10 @@ static void writeClassLinkForMember(OutputList &ol,const MemberDef *md,const QCS const ClassDef *cd=md->getClassDef(); if ( cd && prevClassName!=cd->displayName()) { - ol.docify(separator); + ol.writeString(separator); ol.writeObjectLink(md->getReference(),md->getOutputFileBase(),md->anchor(), cd->displayName()); - ol.writeString("\n"); + //ol.writeString("\n"); prevClassName = cd->displayName(); } } @@ -2525,10 +2515,10 @@ static void writeFileLinkForMember(OutputList &ol,const MemberDef *md,const QCSt const FileDef *fd=md->getFileDef(); if (fd && prevFileName!=fd->name()) { - ol.docify(separator); + ol.writeString(separator); ol.writeObjectLink(md->getReference(),md->getOutputFileBase(),md->anchor(), fd->name()); - ol.writeString("\n"); + //ol.writeString("\n"); prevFileName = fd->name(); } } @@ -2539,10 +2529,10 @@ static void writeNamespaceLinkForMember(OutputList &ol,const MemberDef *md,const const NamespaceDef *nd=md->getNamespaceDef(); if (nd && prevNamespaceName!=nd->displayName()) { - ol.docify(separator); + ol.writeString(separator); ol.writeObjectLink(md->getReference(),md->getOutputFileBase(),md->anchor(), nd->displayName()); - ol.writeString("\n"); + //ol.writeString("\n"); prevNamespaceName = nd->displayName(); } } @@ -2625,11 +2615,11 @@ static void writeMemberList(OutputList &ol,bool useSections,const std::string &p firstItem=FALSE; ol.docify(name); if (isFunc) ol.docify("()"); - ol.writeString("\n"); + //ol.writeString("\n"); // link to class prevDefName=""; - sep = ": "; + sep = " : "; prevName = name.data()+startIndex; } else // same entry @@ -3512,7 +3502,7 @@ static void writeExampleIndex(OutputList &ol) } } ol.endItemListItem(); - ol.writeString("\n"); + //ol.writeString("\n"); } ol.endItemList(); diff --git a/src/memberdef.cpp b/src/memberdef.cpp index af05535..7133641 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -321,6 +321,7 @@ class MemberDefImpl : public DefinitionMixin virtual void writeTagFile(TextStream &) const; virtual void warnIfUndocumented() const; virtual void warnIfUndocumentedParams() const; + virtual bool visibleInIndex() const; virtual void detectUndocumentedParams(bool hasParamCommand,bool hasReturnCommand) const; virtual MemberDefMutable *createTemplateInstanceMember(const ArgumentList &formalArgs, const std::unique_ptr &actualArgs) const; @@ -744,6 +745,8 @@ class MemberDefAliasImpl : public DefinitionAliasMixin { return getMdAlias()->getDeclColumn(); } virtual QCString requiresClause() const { return getMdAlias()->requiresClause(); } + virtual bool visibleInIndex() const + { return getMdAlias()->visibleInIndex(); } virtual void warnIfUndocumented() const {} virtual void warnIfUndocumentedParams() const {} @@ -3844,6 +3847,18 @@ void MemberDefImpl::warnIfUndocumented() const warnIfUndocumentedParams(); } } + +bool MemberDefImpl::visibleInIndex() const +{ + bool hideUndocMembers = Config_getBool(HIDE_UNDOC_MEMBERS); + bool extractStatic = Config_getBool(EXTRACT_STATIC); + return (!isAnonymous() && + (!hideUndocMembers || hasDocumentation()) && + (!isStatic() || extractStatic) && + isLinkable() + ); +} + static QCString stripTrailingReturn(const QCString &trailRet) { QCString ret = trailRet; diff --git a/src/memberdef.h b/src/memberdef.h index 1d1e744..ca745a0 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -285,9 +285,11 @@ class MemberDef : public Definition virtual void detectUndocumentedParams(bool hasParamCommand,bool hasReturnCommand) const = 0; virtual void warnIfUndocumented() const = 0; virtual void warnIfUndocumentedParams() const = 0; + virtual bool visibleInIndex() const = 0; // TODO: this is not a getter, should be passed at construction virtual void setMemberGroup(MemberGroup *grp) = 0; + }; class MemberDefMutable : public DefinitionMutable, public MemberDef diff --git a/src/searchindex.cpp b/src/searchindex.cpp index cf09e67..f87cd33 100644 --- a/src/searchindex.cpp +++ b/src/searchindex.cpp @@ -1214,6 +1214,7 @@ void writeJavaScriptSearchIndex() t << "\n"; } } + Doxygen::indexList->addStyleSheetFile("search/search.js"); } diff --git a/src/template.cpp b/src/template.cpp index 86780be..e1d9c79 100755 --- a/src/template.cpp +++ b/src/template.cpp @@ -1327,6 +1327,23 @@ class FilterUpper //-------------------------------------------------------------------- +/** @brief The implementation of the "upper" filter */ +class FilterHex +{ + public: + static TemplateVariant apply(const TemplateVariant &v,const TemplateVariant &) + { + if (v.isValid()) + { + return QCString().sprintf("%x",v.toInt()); + } + return v; + } +}; + + +//-------------------------------------------------------------------- + /** @brief The implementation of the "e" filter */ class FilterEscape { @@ -1419,6 +1436,7 @@ class TemplateFilterFactory // register a handlers for each filter we support static TemplateFilterFactory::AutoRegister fAdd("add"); static TemplateFilterFactory::AutoRegister fGet("get"); +static TemplateFilterFactory::AutoRegister fHex("hex"); static TemplateFilterFactory::AutoRegister fRaw("raw"); static TemplateFilterFactory::AutoRegister fList("list"); static TemplateFilterFactory::AutoRegister fLower("lower"); diff --git a/templates/html/htmlallmembers.tpl b/templates/html/htmlallmembers.tpl index b44110d..ed34131 100644 --- a/templates/html/htmlallmembers.tpl +++ b/templates/html/htmlallmembers.tpl @@ -9,8 +9,7 @@

{{ tr.theListOfAllMembers }} {{ compound.name }}{{ tr.incInheritedMembers }}

{% for mi in compound.allMembersList %} - - {% spaceless %} + {% spaceless %} {% with member=mi.member %} {% if member.language=='objc' %} {# brief description #} {% if nc.brief %} @@ -25,7 +26,7 @@ {% endif %}
{% endif %} - + {% endfor %}
diff --git a/templates/html/htmlannotated.tpl b/templates/html/htmlannotated.tpl index 2e4d40d..e3b8442 100644 --- a/templates/html/htmlannotated.tpl +++ b/templates/html/htmlannotated.tpl @@ -4,7 +4,7 @@
{{ tr.classListDescription }}
-{% indexentry nav name=tr.classList file=page.fileName anchor='' isReference=False %} +{% indexentry nav name=tr.classList file=page.fileName anchor='' isReference=False separateIndex=True %} {% opensubindex nav %} {% with tree=classTree %} {% include 'htmldirtree.tpl' %} diff --git a/templates/html/htmlbase.tpl b/templates/html/htmlbase.tpl index 11cb054..6727da0 100644 --- a/templates/html/htmlbase.tpl +++ b/templates/html/htmlbase.tpl @@ -74,10 +74,7 @@ {% endif %}
{% if config.PROJECT_NAME %} -
{{ config.PROJECT_NAME }} - {% if config.PROJECT_NUMBER %} - {{ config.PROJECT_NUMBER }} - {% endif %} +
{{ config.PROJECT_NAME }}{% if config.PROJECT_NUMBER %} {{ config.PROJECT_NUMBER }}{% endif %}
{% endif %} {% if config.PROJECT_BRIEF %} diff --git a/templates/html/htmlclasses.tpl b/templates/html/htmlclasses.tpl index 372d72d..3e556a2 100644 --- a/templates/html/htmlclasses.tpl +++ b/templates/html/htmlclasses.tpl @@ -11,6 +11,7 @@ {% endif %} {% endfor %}
+ {% indexentry nav name=tr.classIndex file=page.fileName anchor='' isReference=False separateIndex=False %} {# multi column index #}
{% for section in index %} diff --git a/templates/html/htmldeclcomp.tpl b/templates/html/htmldeclcomp.tpl index 3ae90b8..5f6fe60 100644 --- a/templates/html/htmldeclcomp.tpl +++ b/templates/html/htmldeclcomp.tpl @@ -15,6 +15,7 @@ {% include 'htmlobjlink.tpl' %} {% endwith %} {% endif %} + {% if nc.sourceFileName and nc.isLinkable %}[{{ tr.code }}]{% endif %}
 
 
{% endif %} diff --git a/templates/html/htmldirtree.tpl b/templates/html/htmldirtree.tpl index a6b9b21..f1b4fcf 100644 --- a/templates/html/htmldirtree.tpl +++ b/templates/html/htmldirtree.tpl @@ -11,7 +11,12 @@ {# the table with entries #} {% recursetree tree.tree %} - {% indexentry nav name=node.name file=node.fileName anchor=node.anchor isReference=node.isReference externalReference=node.externalReference %} + {% if node.isLinkable %} + {% indexentry nav name=node.name file=node.fileName anchor=node.anchor isReference=node.isReference externalReference=node.externalReference separateIndex=True %} + {% else %} + {% indexentry nav name=node.name file='' anchor=node.anchor isReference=False separateIndex=False %} + {% endif %} + {% if not node.member %} {% spaceless %} tree.preferredDepth %} style="display:none;"{% endif %}>
@@ -47,6 +52,16 @@ {% opensubindex nav %} {{ children }} {% closesubindex nav %} + {% spaceless %} + {% if node.members %} + {% opensubindex nav %} + {% for member in node.members %} + {% indexentry nav name=member.name file=member.fileName anchor=member.anchor isReference=member.isReference externalReference=member.externalReference separateIndex=False %} + {% endfor %} + {% closesubindex nav %} + {% endif %} + {% endspaceless %} + {% endif %} {% endrecursetree %}
diff --git a/templates/html/htmlexamples.tpl b/templates/html/htmlexamples.tpl index 58392df..18384e2 100644 --- a/templates/html/htmlexamples.tpl +++ b/templates/html/htmlexamples.tpl @@ -4,7 +4,7 @@
{{ tr.examplesDescription }}
-{% indexentry nav name=tr.examples file=page.fileName anchor='' isReference=False %} +{% indexentry nav name=tr.examples file=page.fileName anchor='' isReference=False separateIndex=False %} {% opensubindex nav %} {% with tree=exampleTree %} {% include 'htmldirtree.tpl' %} diff --git a/templates/html/htmlfiles.tpl b/templates/html/htmlfiles.tpl index 55799ca..1c784dc 100644 --- a/templates/html/htmlfiles.tpl +++ b/templates/html/htmlfiles.tpl @@ -4,7 +4,7 @@
{{ tr.fileListDescription }}
-{% indexentry nav name=tr.fileList file=page.fileName anchor='' isReference=False %} +{% indexentry nav name=tr.fileList file=page.fileName anchor='' isReference=False separateIndex=True %} {% opensubindex nav %} {% with tree=fileTree %} {% include 'htmldirtree.tpl' %} diff --git a/templates/html/htmlhierarchy.tpl b/templates/html/htmlhierarchy.tpl index ff10172..df01709 100644 --- a/templates/html/htmlhierarchy.tpl +++ b/templates/html/htmlhierarchy.tpl @@ -7,7 +7,7 @@

{{ tr.gotoGraphicalHierarchy }}

{% endif %} -{% indexentry nav name=tr.classHierarchy file=page.fileName anchor='' isReference=False %} +{% indexentry nav name=tr.classHierarchy file=page.fileName anchor='' isReference=False separateIndex=True %} {% opensubindex nav %} {% with tree=classHierarchy %} {% include 'htmldirtree.tpl' %} diff --git a/templates/html/htmlindexpages.tpl b/templates/html/htmlindexpages.tpl index 2886a69..eacf122 100644 --- a/templates/html/htmlindexpages.tpl +++ b/templates/html/htmlindexpages.tpl @@ -9,7 +9,7 @@ {% for sect in index %} {% with letter=sect.letter %} {% set page_postfix=section|append:'_'|append:sect.label %} - {% indexentry nav name=letter file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=letter file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {# create index pages for all globals starting with a specific letter #} {% create page.fileName|append:page_postfix|append:config.HTML_FILE_EXTENSION from template %} {% endwith %} diff --git a/templates/html/htmljsnavpage.tpl b/templates/html/htmljsnavpage.tpl new file mode 100644 index 0000000..9d9881d --- /dev/null +++ b/templates/html/htmljsnavpage.tpl @@ -0,0 +1,20 @@ +var {{ varName }} = +[ +{% recursetree node.children %} + {% set varName=node.file %} + {% if node.anchor %} + {% update varName=varName|append:'_'|append:node.anchor %} + {% endif %} + {% if node.parent %} + {% if node.parent.file==node.file %} + {% update varName=varName|append:'_dup' %} + {% endif %} + {% endif %} +[ "{{ node.name }}",{% if node.file %}"{% if node.isReference %}{{ node.externalReference }}{% endif %}{{ node.file|decodeURL }}{{ config.HTML_FILE_EXTENSION }}{% if node.anchor %}#{{ node.anchor }}{% endif %}"{% else %}null{% endif %},{% if not node.is_leaf_node %}{% if node.separateIndex %}"{{ varName }}"{% else %} [ + {{ children }} + ]{% endif %}{% else %} null{% endif %} ]{% if not node.last %},{% endif %} + {% if node.separateIndex %} + {% create varName|append:'.js' from 'htmljsnavpage.tpl' %} + {% endif %} +{% endrecursetree %} +]; diff --git a/templates/html/htmljsnavtree.tpl b/templates/html/htmljsnavtree.tpl index 3d11175..fef1819 100644 --- a/templates/html/htmljsnavtree.tpl +++ b/templates/html/htmljsnavtree.tpl @@ -25,9 +25,21 @@ var NAVTREE = [ {% recursetree index.nav %} - [ "{{ node.name }}", {% if node.file %}"{% if node.isReference %}{{ node.externalReference }}{% endif %}{{ node.file|decodeURL }}{{ config.HTML_FILE_EXTENSION }}{% if node.anchor %}#{{ node.anchor }}{% endif %}"{% else %}null{% endif %},{% if not node.is_leaf_node %} [ + {% set varName=node.file %} + {% if node.anchor %} + {% update varName=varName|append:'_'|append:node.anchor %} + {% endif %} + {% if node.parent %} + {% if node.parent.file==node.file %} + {% update varName=varName|append:'_dup' %} + {% endif %} + {% endif %} +[ "{{ node.name }}",{% if node.file %}"{% if node.isReference %}{{ node.externalReference }}{% endif %}{{ node.file|decodeURL }}{{ config.HTML_FILE_EXTENSION }}{% if node.anchor %}#{{ node.anchor }}{% endif %}"{% else %}null{% endif %},{% if not node.is_leaf_node %}{% if node.separateIndex %}"{{ varName }}"{% else %} [ {{ children }} - ]{% else %} null{% endif %} ]{% if not node.last %},{% endif %} + ]{% endif %}{% else %} null{% endif %} ]{% if not node.last %},{% endif %} + {% if node.separateIndex %} + {% create varName|append:'.js' from 'htmljsnavpage.tpl' %} + {% endif %} {% endrecursetree %} ]; diff --git a/templates/html/htmllayout.tpl b/templates/html/htmllayout.tpl index a0bb6f0..0fbe458 100644 --- a/templates/html/htmllayout.tpl +++ b/templates/html/htmllayout.tpl @@ -57,6 +57,7 @@ {% endif %} {% endif %} {% resource 'search_common.css' append 'search/search.css' %} +{% create 'search/nomatches.html' from 'nomatches.tpl' %} {% if config.SERVER_BASED_SEARCH %} {# server side search resources #} @@ -87,9 +88,9 @@ {# open the global navigation index #} {% if config.PROJECT_NAME %} - {% indexentry nav name=config.PROJECT_NAME file='index' anchor='' isReference=False %} + {% indexentry nav name=config.PROJECT_NAME file='index' anchor='' isReference=False separateIndex=False %} {% else %} - {% indexentry nav name=tr.mainPage file='index' anchor='' isReference=False %} + {% indexentry nav name=tr.mainPage file='index' anchor='' isReference=False separateIndex=False %} {% endif %} {% opensubindex nav %} @@ -180,7 +181,7 @@ {# --- namespaces --- #} {% if namespaceList %} - {% indexentry nav name=tr.namespaces file='namespaces' anchor='' isReference=False %} + {% indexentry nav name=tr.namespaces file='namespaces' anchor='' isReference=False separateIndex=False %} {% opensubindex nav %} {% if namespaceTree.tree %} @@ -192,7 +193,7 @@ {# write symbol indices for namespace members #} {% if namespaceMembersIndex.all %} {% with page=namespaceMembersIndex scope='namespace' template='htmlnsmembers.tpl' %} - {% indexentry nav name=tr.namespaceMembers file=page.fileName anchor='' isReference=False %} + {% indexentry nav name=tr.namespaceMembers file=page.fileName anchor='' isReference=False separateIndex=False %} {% include 'htmlmembersindex.tpl' %} {% endwith %} {% endif %} @@ -202,7 +203,7 @@ {# --- classes --- #} {% if classList %} - {% indexentry nav name=tr.classes file='annotated'|append:config.HTML_FILE_EXTENSION anchor='' isReference=False %} + {% indexentry nav name=tr.classes file='annotated'|append:config.HTML_FILE_EXTENSION anchor='' isReference=False separateIndex=False %} {% opensubindex nav %} {# write the annotated class list #} @@ -234,7 +235,7 @@ {# write symbol indices for class members #} {% if classMembersIndex.all %} {% with page=classMembersIndex scope='class' template='htmlclmembers.tpl' %} - {% indexentry nav name=tr.classMembers file=page.fileName anchor='' isReference=False %} + {% indexentry nav name=tr.classMembers file=page.fileName anchor='' isReference=False separateIndex=False %} {% include 'htmlmembersindex.tpl' %} {% endwith %} {% endif %} @@ -244,7 +245,7 @@ {# --- files --- #} {% if fileList %} - {% indexentry nav name=tr.files file='files' anchor='' isReference=False %} + {% indexentry nav name=tr.files file='files' anchor='' isReference=False separateIndex=False %} {% opensubindex nav %} {# write the directory/file hierarchy #} @@ -257,7 +258,7 @@ {# write symbol indices for global namespace #} {% if globalsIndex.all %} {% with page=globalsIndex scope='file' template='htmlflmembers.tpl' %} - {% indexentry nav name=tr.fileMembers file=page.fileName anchor='' isReference=False %} + {% indexentry nav name=tr.fileMembers file=page.fileName anchor='' isReference=False separateIndex=False %} {% include 'htmlmembersindex.tpl' %} {% endwith %} {% endif %} @@ -281,7 +282,7 @@ {% set symbolCount=0 %} {% for idx in searchIndices %} {% for si in idx.symbolIndices %} - {% with baseName=si.name|append:'_'|append:forloop.counter0 %} + {% with hexCount=forloop.counter0|hex baseName=si.name|append:'_'|append:hexCount %} {% create baseName|prepend:'search/'|append:config.HTML_FILE_EXTENSION from 'htmlsearchresult.tpl' %} {% create baseName|prepend:'search/'|append:'.js' from 'htmljssearchindex.tpl' %} {% endwith %} diff --git a/templates/html/htmlmemberindex.tpl b/templates/html/htmlmemberindex.tpl index 7de92b9..504219c 100644 --- a/templates/html/htmlmemberindex.tpl +++ b/templates/html/htmlmemberindex.tpl @@ -7,22 +7,21 @@ {% for section in index %} {% if not singleList or letter=='' or section.letter==letter %} {% if not singleList %} -

- {{ section.letter }} -

+

- {{ section.letter|lower }} -

    {% endif %} {% for nameList in section.items|groupBy:'name' %} {% for item in nameList|listsort:'{{item.file.name}}' %} + {% spaceless %} {% if forloop.first %} -
  • {{ item.name }}{% if (item.isFunction or item.isSignal or item.isSlot) and not item.isObjCMethod %}(){% endif %} : - {% endif %} - {% spaceless %} +
  • {{ item.name }}{% if (item.isFunction or item.isSignal or item.isSlot) and not item.isObjCMethod %}(){% endif %} : {% endif %} {% with obj=item scope=item|get:scope text=scope.name %} {% include 'htmlobjlink.tpl' %} {% endwith %} - {% endspaceless %} {% if not forloop.last %}, - {% else %}
  • - {% endif %} + {% else %}{% endif %} + {% endspaceless %} + {% endfor %} {% endfor %} {% if not singleList %} diff --git a/templates/html/htmlmembersindex.tpl b/templates/html/htmlmembersindex.tpl index 700bce2..46a3cfd 100644 --- a/templates/html/htmlmembersindex.tpl +++ b/templates/html/htmlmembersindex.tpl @@ -2,13 +2,13 @@ {% opensubindex nav %} {# all members #} {% with list=page.all section='' %} - {% indexentry nav name=tr.all file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.all file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% include 'htmlindexpages.tpl' %} {% endwith %} {# functions #} {% if page.functions %} {% set page_postfix='_func' %} - {% indexentry nav name=tr.functions file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.functions file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% with list=page.functions section=page_postfix %} {% include 'htmlindexpages.tpl' %} {% endwith %} @@ -16,7 +16,7 @@ {# variables #} {% if page.variables %} {% set page_postfix='_vars' %} - {% indexentry nav name=tr.variables file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.variables file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% with list=page.variables section=page_postfix %} {% include 'htmlindexpages.tpl' %} {% endwith %} @@ -24,7 +24,7 @@ {# typedefs #} {% if page.typedefs %} {% set page_postfix='_type' %} - {% indexentry nav name=tr.typedefs file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.typedefs file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% with list=page.typedefs section=page_postfix %} {% include 'htmlindexpages.tpl' %} {% endwith %} @@ -32,7 +32,7 @@ {# enums #} {% if page.enums %} {% set page_postfix='_enum' %} - {% indexentry nav name=tr.enums file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.enums file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% with list=page.enums section=page_postfix %} {% include 'htmlindexpages.tpl' %} {% endwith %} @@ -40,7 +40,7 @@ {# enumValues #} {% if page.enumValues %} {% set page_postfix='_eval' %} - {% indexentry nav name=tr.enumValues file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.enumValues file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% with list=page.enumValues section=page_postfix %} {% include 'htmlindexpages.tpl' %} {% endwith %} @@ -48,7 +48,7 @@ {# macros #} {% if page.macros %} {% set page_postfix='_defs' %} - {% indexentry nav name=tr.macros file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.macros file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% with list=page.macros section=page_postfix %} {% include 'htmlindexpages.tpl' %} {% endwith %} @@ -56,7 +56,7 @@ {# properties #} {% if page.properties %} {% set page_postfix='_prop' %} - {% indexentry nav name=tr.properties file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.properties file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% with list=page.properties section=page_postfix %} {% include 'htmlindexpages.tpl' %} {% endwith %} @@ -64,7 +64,7 @@ {# events #} {% if page.events %} {% set page_postfix='_evnt' %} - {% indexentry nav name=tr.events file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.events file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% with list=page.events section=page_postfix %} {% include 'htmlindexpages.tpl' %} {% endwith %} @@ -72,7 +72,7 @@ {# related #} {% if page.related %} {% set page_postfix='_rela' %} - {% indexentry nav name=tr.related file=page.fileName|append:page_postfix anchor='' isReference=False %} + {% indexentry nav name=tr.related file=page.fileName|append:page_postfix anchor='' isReference=False separateIndex=False %} {% with list=page.related section=page_postfix %} {% include 'htmlindexpages.tpl' %} {% endwith %} diff --git a/templates/html/htmlmodules.tpl b/templates/html/htmlmodules.tpl index 5431032..c4e84fd 100644 --- a/templates/html/htmlmodules.tpl +++ b/templates/html/htmlmodules.tpl @@ -4,7 +4,7 @@
    {{ tr.modulesDescription }}
    -{% indexentry nav name=tr.modules file=page.fileName anchor='' isReference=False %} +{% indexentry nav name=tr.modules file=page.fileName anchor='' isReference=False separateIndex=False %} {% opensubindex nav %} {% with tree=moduleTree %} {% include 'htmldirtree.tpl' %} diff --git a/templates/html/htmlnamespaces.tpl b/templates/html/htmlnamespaces.tpl index b7e7b9d..c3b8b3b 100644 --- a/templates/html/htmlnamespaces.tpl +++ b/templates/html/htmlnamespaces.tpl @@ -4,7 +4,7 @@
    {{ tr.namespaceListDescription }}
    -{% indexentry nav name=tr.namespaceList file=page.fileName anchor='' isReference=False %} +{% indexentry nav name=tr.namespaceList file=page.fileName anchor='' isReference=False separateIndex=False %} {% opensubindex nav %} {% with tree=namespaceTree %} {% include 'htmldirtree.tpl' %} diff --git a/templates/html/htmlpages.tpl b/templates/html/htmlpages.tpl index 5e3778d..0f12603 100644 --- a/templates/html/htmlpages.tpl +++ b/templates/html/htmlpages.tpl @@ -4,7 +4,7 @@
    {{ tr.relatedPagesDesc }}
    -{% indexentry nav name=tr.pages file=page.fileName anchor='' isReference=False %} +{% indexentry nav name=tr.pages file=page.fileName anchor='' isReference=False separateIndex=False %} {% opensubindex nav %} {% with tree=pageTree %} {% include 'htmldirtree.tpl' %} diff --git a/templates/html/nomatches.tpl b/templates/html/nomatches.tpl new file mode 100644 index 0000000..94af265 --- /dev/null +++ b/templates/html/nomatches.tpl @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    {{ tr.noMatches }}
    +
    + + -- cgit v0.12