Commit eed0c89f authored by Dimitri van Heesch's avatar Dimitri van Heesch
Browse files

Bug 692004 - show includes for free functions

parent 727e5e1c
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -882,6 +882,13 @@ Go to the <a href="commands.html">next</a> section or return to the
]]>
      </docs>
    </option>
    <option type='bool' id='SHOW_GROUPED_MEMB_INC' defval='0'>
<![CDATA[
 If the SHOW_GROUPED_MEMB_INC tag is set to \c YES then Doxygen 
 will add for each grouped member an include statement to the documentation,
 telling the reader which file to include in order to use the member.
]]>
    </option>
    <option type='bool' id='FORCE_LOCAL_INCLUDES' defval='0'>
      <docs>
<![CDATA[
+42 −0
Original line number Diff line number Diff line
@@ -2382,6 +2382,46 @@ void MemberDef::_writeEnumValues(OutputList &ol,Definition *container,
  }
}

void MemberDef::_writeGroupInclude(OutputList &ol,bool inGroup)
{
  // only write out the include file if this is not part of a class or file
  // definition
  static bool showGroupedMembInc = Config_getBool("SHOW_GROUPED_MEMB_INC");
  FileDef *fd = getFileDef();
  QCString nm;
  if (fd) nm = getFileDef()->docName();
  if (inGroup && fd && showGroupedMembInc && !nm.isEmpty())
  {
    ol.startParagraph();
    ol.startTypewriter();
    SrcLangExt lang = getLanguage();
    bool isIDLorJava = lang==SrcLangExt_IDL || lang==SrcLangExt_Java;
    if (isIDLorJava)
    {
      ol.docify("import ");
    }
    else
    {
      ol.docify("#include ");
    }

    if (isIDLorJava) ol.docify("\""); else ol.docify("<");

    if (fd && fd->isLinkable())
    {
      ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),fd->anchor(),nm);
    }
    else
    {
      ol.docify(nm);
    }

    if (isIDLorJava) ol.docify("\""); else ol.docify(">");

    ol.endTypewriter();
    ol.endParagraph();
  }
}

/*! Writes the "detailed documentation" section of this member to
 *  all active output formats.
@@ -2711,6 +2751,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
  ol.endDoxyAnchor(cfname,memAnchor);
  ol.startIndent();

  _writeGroupInclude(ol,inGroup);

  /* write multi-line initializer (if any) */
  if (hasMultiLineInitializer()
      //initLines>0 && ((initLines<maxInitLines && userInitLines==-1) // implicitly enabled
+1 −0
Original line number Diff line number Diff line
@@ -385,6 +385,7 @@ class MemberDef : public Definition
    void _computeIsConstructor();
    void _computeIsDestructor();
    void _getLabels(QStrList &sl,Definition *container) const;
    void _writeGroupInclude(OutputList &ol,bool inGroup);
    void _writeCallGraph(OutputList &ol);
    void _writeCallerGraph(OutputList &ol);
    void _writeReimplements(OutputList &ol);