diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2013-11-26 19:53:39 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2013-11-26 19:53:39 (GMT) |
commit | eed0c89f7534b387004da7badcbabdf66570c685 (patch) | |
tree | d1259f61bbceef54b55372c127470f199a296461 /src | |
parent | 727e5e1c179148fdc4123176ac2d9021c33e3eba (diff) | |
download | Doxygen-eed0c89f7534b387004da7badcbabdf66570c685.zip Doxygen-eed0c89f7534b387004da7badcbabdf66570c685.tar.gz Doxygen-eed0c89f7534b387004da7badcbabdf66570c685.tar.bz2 |
Bug 692004 - show includes for free functions
Diffstat (limited to 'src')
-rw-r--r-- | src/config.xml | 7 | ||||
-rw-r--r-- | src/memberdef.cpp | 42 | ||||
-rw-r--r-- | src/memberdef.h | 1 |
3 files changed, 50 insertions, 0 deletions
diff --git a/src/config.xml b/src/config.xml index e9c9add..faad6b7 100644 --- a/src/config.xml +++ b/src/config.xml @@ -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[ diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 6b1300c..b95d399 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -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 diff --git a/src/memberdef.h b/src/memberdef.h index bb6fb0e..a7db78a 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -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); |