Commit 744d1ca5 authored by Dimitri van Heesch's avatar Dimitri van Heesch
Browse files

More work on the template and context mechanisms

parent 2912829c
Loading
Loading
Loading
Loading
+13 −9
Original line number Original line Diff line number Diff line
@@ -1767,20 +1767,24 @@ void ClassDef::writeMoreLink(OutputList &ol,const QCString &anchor)
  }
  }
}
}


bool ClassDef::visibleInParentsDeclList() const
{
  static bool extractPrivate      = Config_getBool("EXTRACT_PRIVATE");
  static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
  static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES");
  bool linkable = isLinkable();
  return (name().find('@')==-1 && !isExtension() &&
          (protection()!=::Private || extractPrivate) &&
          (linkable || (!hideUndocClasses && (!isLocal() || extractLocalClasses)))
         );
}


void ClassDef::writeDeclarationLink(OutputList &ol,bool &found,const char *header,bool localNames)
void ClassDef::writeDeclarationLink(OutputList &ol,bool &found,const char *header,bool localNames)
{
{
  //static bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN");
  //static bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN");
  //static bool vhdlOpt    = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
  //static bool vhdlOpt    = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
  static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
  static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES");
  bool isLink = isLinkable();
  SrcLangExt lang = getLanguage();
  SrcLangExt lang = getLanguage();
  if (isLink ||
  if (visibleInParentsDeclList())
      (!hideUndocClasses &&
       (!isLocal() || extractLocalClasses)
      )
     )
  {
  {
    if (!found) // first class
    if (!found) // first class
    {
    {
@@ -1820,7 +1824,7 @@ void ClassDef::writeDeclarationLink(OutputList &ol,bool &found,const char *heade
      ol.writeString(" ");
      ol.writeString(" ");
      ol.insertMemberAlign();
      ol.insertMemberAlign();
    }
    }
    if (isLink)
    if (isLinkable())
    {
    {
      ol.writeObjectLink(getReference(),
      ol.writeObjectLink(getReference(),
          getOutputFileBase(),
          getOutputFileBase(),
+6 −2
Original line number Original line Diff line number Diff line
@@ -168,6 +168,9 @@ class ClassDef : public Definition
    /** the class is visible in a class diagram, or class hierarchy */
    /** the class is visible in a class diagram, or class hierarchy */
    bool isVisibleInHierarchy();
    bool isVisibleInHierarchy();
    
    
    /** show this class in the declaration section of its parent? */
    bool visibleInParentsDeclList() const;

    /** Returns the template arguments of this class 
    /** Returns the template arguments of this class 
     *  Will return 0 if not applicable.
     *  Will return 0 if not applicable.
     */
     */
@@ -310,14 +313,13 @@ class ClassDef : public Definition
    QCString generatedFromFiles() const;
    QCString generatedFromFiles() const;
    const FileList &usedFiles() const;
    const FileList &usedFiles() const;


    QCString includeStatement() const;

    const ArgumentList *typeConstraints() const;
    const ArgumentList *typeConstraints() const;
    const ExampleSDict *exampleList() const;
    const ExampleSDict *exampleList() const;
    bool hasExamples() const;
    bool hasExamples() const;
    QCString getMemberListFileName() const;
    QCString getMemberListFileName() const;
    bool subGrouping() const;
    bool subGrouping() const;



    //-----------------------------------------------------------------------------------
    //-----------------------------------------------------------------------------------
    // --- setters ----
    // --- setters ----
    //-----------------------------------------------------------------------------------
    //-----------------------------------------------------------------------------------
@@ -432,6 +434,8 @@ class ClassDef : public Definition
                                 QPtrDict<void> *visitedClasses);
                                 QPtrDict<void> *visitedClasses);
    void getTitleForMemberListType(MemberListType type,
    void getTitleForMemberListType(MemberListType type,
               QCString &title,QCString &subtitle);
               QCString &title,QCString &subtitle);
    QCString includeStatement() const;

    
    
    ClassDefImpl *m_impl;
    ClassDefImpl *m_impl;


+832 −96

File changed.

Preview size limit exceeded, changes collapsed.

+41 −1
Original line number Original line Diff line number Diff line
@@ -3,6 +3,7 @@


#include "types.h"
#include "types.h"
#include "template.h"
#include "template.h"
#include <qlist.h>


class Definition;
class Definition;
class ClassDef;
class ClassDef;
@@ -108,7 +109,7 @@ class UsedFilesContext : public TemplateListIntf
class IncludeInfoContext : public TemplateStructIntf
class IncludeInfoContext : public TemplateStructIntf
{
{
  public:
  public:
    IncludeInfoContext(IncludeInfo *,SrcLangExt lang);
    IncludeInfoContext(const IncludeInfo *,SrcLangExt lang);
   ~IncludeInfoContext();
   ~IncludeInfoContext();


    // TemplateStructIntf methods
    // TemplateStructIntf methods
@@ -119,6 +120,25 @@ class IncludeInfoContext : public TemplateStructIntf
    Private *p;
    Private *p;
};
};


//----------------------------------------------------

class IncludeInfoListContext : public TemplateListIntf
{
  public:
    IncludeInfoListContext(const QList<IncludeInfo> &list,SrcLangExt lang);
   ~IncludeInfoListContext();

    // TemplateListIntf
    virtual int count() const;
    virtual TemplateVariant at(int index) const;
    virtual TemplateListIntf::ConstIterator *createIterator() const;

  private:
    class Private;
    Private *p;
};


//----------------------------------------------------
//----------------------------------------------------


class ClassContext : public TemplateStructIntf
class ClassContext : public TemplateStructIntf
@@ -254,6 +274,26 @@ class NestedClassListContext : public TemplateListIntf


//----------------------------------------------------
//----------------------------------------------------


class NestedNamespaceListContext : public TemplateListIntf
{
  public:
    NestedNamespaceListContext();
   ~NestedNamespaceListContext();

    // TemplateListIntf
    virtual int  count() const;
    virtual TemplateVariant at(int index) const;
    virtual TemplateListIntf::ConstIterator *createIterator() const;

    void append(NamespaceDef *cd);

  private:
    class Private;
    Private *p;
};

//----------------------------------------------------

class ClassListContext : public TemplateListIntf
class ClassListContext : public TemplateListIntf
{
{
  public:
  public:
+15 −5
Original line number Original line Diff line number Diff line
@@ -170,12 +170,18 @@ void FileDef::findSectionsInDocumentation()
  }
  }
}
}


void FileDef::writeDetailedDescription(OutputList &ol,const QCString &title)
bool FileDef::hasDetailedDescription() const
{
{
  if ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) || 
  static bool sourceBrowser = Config_getBool("SOURCE_BROWSER");
  return ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) || 
          !documentation().stripWhiteSpace().isEmpty() || // avail empty section
          !documentation().stripWhiteSpace().isEmpty() || // avail empty section
      (Config_getBool("SOURCE_BROWSER") && getStartBodyLine()!=-1 && getBodyDef())
          (sourceBrowser && getStartBodyLine()!=-1 && getBodyDef())
     )
         );
}

void FileDef::writeDetailedDescription(OutputList &ol,const QCString &title)
{
  if (hasDetailedDescription())
  {
  {
    ol.pushGeneratorState();
    ol.pushGeneratorState();
      ol.disable(OutputGenerator::Html);
      ol.disable(OutputGenerator::Html);
@@ -379,7 +385,7 @@ void FileDef::writeIncludedByGraph(OutputList &ol)
    {
    {
       warn_uncond("Included by graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",name().data());
       warn_uncond("Included by graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",name().data());
    }
    }
    if (!incDepGraph.isTrivial())
    else if (!incDepGraph.isTrivial())
    {
    {
      ol.startTextBlock(); 
      ol.startTextBlock(); 
      ol.disable(OutputGenerator::Man);
      ol.disable(OutputGenerator::Man);
@@ -1800,3 +1806,7 @@ QCString FileDef::title() const
  return theTranslator->trFileReference(name());
  return theTranslator->trFileReference(name());
}
}


QCString FileDef::fileVersion() const
{
  return m_fileVersion;
}
Loading