Commit 9434ecb1 authored by Dimitri van Heesch's avatar Dimitri van Heesch
Browse files

Add template context for annotated class index

parent ae3a22ba
Loading
Loading
Loading
Loading
+53 −4
Original line number Original line Diff line number Diff line
@@ -1990,6 +1990,7 @@ class NamespaceContext::Private : public DefinitionContext<NamespaceContext::Pri
      addProperty("highlight",this,&Private::highlight);
      addProperty("highlight",this,&Private::highlight);
      addProperty("subhighlight",this,&Private::subHighlight);
      addProperty("subhighlight",this,&Private::subHighlight);
      addProperty("compoundType",this,&Private::compoundType);
      addProperty("compoundType",this,&Private::compoundType);
      addProperty("hasDetails",this,&Private::hasDetails);
    }
    }
    TemplateVariant title() const
    TemplateVariant title() const
    {
    {
@@ -2007,6 +2008,10 @@ class NamespaceContext::Private : public DefinitionContext<NamespaceContext::Pri
    {
    {
      return m_namespaceDef->compoundTypeString();
      return m_namespaceDef->compoundTypeString();
    }
    }
    TemplateVariant hasDetails() const
    {
      return m_namespaceDef->hasDetailedDescription();
    }
  private:
  private:
    NamespaceDef *m_namespaceDef;
    NamespaceDef *m_namespaceDef;
};
};
@@ -4074,11 +4079,18 @@ class NestingNodeContext::Private : public PropertyMapper
      addProperty("class",this,&Private::getClass);
      addProperty("class",this,&Private::getClass);
      //%% [optional] Namespace namespace: namespace info (if this node represents a namespace)
      //%% [optional] Namespace namespace: namespace info (if this node represents a namespace)
      addProperty("namespace",this,&Private::getNamespace);
      addProperty("namespace",this,&Private::getNamespace);
      //%% [optional] file
      //%% int id
      //%% id
      addProperty("id",this,&Private::id);
      addProperty("id",this,&Private::id);
      //%% level
      //%% string level
      addProperty("level",this,&Private::level);
      addProperty("level",this,&Private::level);
      //%% string name
      addProperty("name",this,&Private::name);
      //%% string brief
      addProperty("brief",this,&Private::brief);
      //%% bool isLinkable
      addProperty("isLinkable",this,&Private::isLinkable);
      addProperty("anchor",this,&Private::anchor);
      addProperty("fileName",this,&Private::fileName);


      addNamespaces(addCls);
      addNamespaces(addCls);
      addClasses();
      addClasses();
@@ -4132,7 +4144,43 @@ class NestingNodeContext::Private : public PropertyMapper
      result+=QCString().setNum(m_index)+"_";
      result+=QCString().setNum(m_index)+"_";
      return result;
      return result;
    }
    }

    TemplateVariant name() const
    {
      return m_def->name();
    }
    QCString relPathAsString() const
    {
      static bool createSubdirs = Config_getBool("CREATE_SUBDIRS");
      return createSubdirs ? QCString("../../") : QCString("");
    }
    TemplateVariant brief() const
    {
      if (!m_cache.brief)
      {
        if (m_def->hasBriefDescription())
        {
          m_cache.brief.reset(new TemplateVariant(parseDoc(m_def,m_def->briefFile(),m_def->briefLine(),
                              "",m_def->briefDescription(),TRUE)));
        }
        else
        {
          m_cache.brief.reset(new TemplateVariant(""));
        }
      }
      return *m_cache.brief;
    }
    TemplateVariant isLinkable() const
    {
      return m_def->isLinkable();
    }
    TemplateVariant anchor() const
    {
      return m_def->anchor();
    }
    TemplateVariant fileName() const
    {
      return m_def->getOutputFileBase();
    }


    void addClasses()
    void addClasses()
    {
    {
@@ -4164,6 +4212,7 @@ class NestingNodeContext::Private : public PropertyMapper
    {
    {
      ScopedPtr<ClassContext>     classContext;
      ScopedPtr<ClassContext>     classContext;
      ScopedPtr<NamespaceContext> namespaceContext;
      ScopedPtr<NamespaceContext> namespaceContext;
      ScopedPtr<TemplateVariant>  brief;
    };
    };
    mutable Cachable m_cache;
    mutable Cachable m_cache;
};
};
+11 −7
Original line number Original line Diff line number Diff line
@@ -248,11 +248,17 @@ void NamespaceDef::computeAnchors()
  if (allMemberList) setAnchors(allMemberList);
  if (allMemberList) setAnchors(allMemberList);
}
}


bool NamespaceDef::hasDetailedDescription() const
{
  static bool repeatBrief = Config_getBool("REPEAT_BRIEF");
  return ((!briefDescription().isEmpty() && repeatBrief) ||
          !documentation().isEmpty());
}


void NamespaceDef::writeDetailedDescription(OutputList &ol,const QCString &title)
void NamespaceDef::writeDetailedDescription(OutputList &ol,const QCString &title)
{
{
  if ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) || 
  if (hasDetailedDescription())
      !documentation().isEmpty()
     )
  {
  {
    ol.pushGeneratorState();
    ol.pushGeneratorState();
      ol.disable(OutputGenerator::Html);
      ol.disable(OutputGenerator::Html);
@@ -294,7 +300,7 @@ void NamespaceDef::writeDetailedDescription(OutputList &ol,const QCString &title


void NamespaceDef::writeBriefDescription(OutputList &ol)
void NamespaceDef::writeBriefDescription(OutputList &ol)
{
{
  if (!briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
  if (hasBriefDescription())
  {
  {
    DocRoot *rootNode = validatingParseDoc(briefFile(),briefLine(),this,0,
    DocRoot *rootNode = validatingParseDoc(briefFile(),briefLine(),this,0,
                        briefDescription(),TRUE,FALSE,0,TRUE,FALSE);
                        briefDescription(),TRUE,FALSE,0,TRUE,FALSE);
@@ -307,9 +313,7 @@ void NamespaceDef::writeBriefDescription(OutputList &ol)
      ol.writeString(" \n");
      ol.writeString(" \n");
      ol.enable(OutputGenerator::RTF);
      ol.enable(OutputGenerator::RTF);


      if (Config_getBool("REPEAT_BRIEF") ||
      if (hasDetailedDescription())
          !documentation().isEmpty()
         )
      {
      {
        ol.disableAllBut(OutputGenerator::Html);
        ol.disableAllBut(OutputGenerator::Html);
        ol.startTextLink(0,"details");
        ol.startTextLink(0,"details");
+1 −0
Original line number Original line Diff line number Diff line
@@ -71,6 +71,7 @@ class NamespaceDef : public Definition


    bool isLinkableInProject() const;
    bool isLinkableInProject() const;
    bool isLinkable() const;
    bool isLinkable() const;
    bool hasDetailedDescription() const;
    void addMembersToMemberGroup();
    void addMembersToMemberGroup();
    void distributeMemberGroupDocumentation();
    void distributeMemberGroupDocumentation();
    void findSectionsInDocumentation();
    void findSectionsInDocumentation();