summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2013-11-26 19:53:39 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2013-11-26 19:53:39 (GMT)
commiteed0c89f7534b387004da7badcbabdf66570c685 (patch)
treed1259f61bbceef54b55372c127470f199a296461 /src
parent727e5e1c179148fdc4123176ac2d9021c33e3eba (diff)
downloadDoxygen-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.xml7
-rw-r--r--src/memberdef.cpp42
-rw-r--r--src/memberdef.h1
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);