Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
doxverilog
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
doxverilog
Commits
e04496cb
Commit
e04496cb
authored
Dec 15, 1999
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mods for doxygen-0.49-990522
parent
322885a8
Changes
52
Hide whitespace changes
Inline
Side-by-side
Showing
52 changed files
with
2325 additions
and
887 deletions
+2325
-887
INSTALL
INSTALL
+13
-4
Makefile.config
Makefile.config
+1
-1
README
README
+2
-2
autolink.doc
doc/autolink.doc
+2
-15
commands.doc
doc/commands.doc
+122
-89
config.doc
doc/config.doc
+7
-2
index.doc
doc/index.doc
+3
-2
trouble.doc
doc/trouble.doc
+5
-0
classdef.cpp
src/classdef.cpp
+177
-69
classdef.h
src/classdef.h
+6
-5
code.l
src/code.l
+19
-9
config.h
src/config.h
+2
-0
config.l
src/config.l
+54
-26
definition.cpp
src/definition.cpp
+30
-0
definition.h
src/definition.h
+9
-3
diagram.cpp
src/diagram.cpp
+2
-2
doxygen.cpp
src/doxygen.cpp
+219
-40
doxygen.h
src/doxygen.h
+3
-11
doxygen.pro
src/doxygen.pro
+1
-1
doxytag.l
src/doxytag.l
+2
-1
entry.cpp
src/entry.cpp
+19
-0
entry.h
src/entry.h
+1
-0
filedef.cpp
src/filedef.cpp
+22
-16
filedef.h
src/filedef.h
+2
-1
groupdef.cpp
src/groupdef.cpp
+11
-8
groupdef.h
src/groupdef.h
+2
-1
htmlgen.cpp
src/htmlgen.cpp
+140
-160
htmlgen.h
src/htmlgen.h
+15
-9
index.cpp
src/index.cpp
+174
-56
index.h
src/index.h
+10
-6
latexgen.cpp
src/latexgen.cpp
+67
-11
latexgen.h
src/latexgen.h
+9
-4
mangen.cpp
src/mangen.cpp
+1
-1
mangen.h
src/mangen.h
+5
-0
memberdef.cpp
src/memberdef.cpp
+25
-1
memberdef.h
src/memberdef.h
+4
-1
memberlist.cpp
src/memberlist.cpp
+4
-1
namespacedef.cpp
src/namespacedef.cpp
+38
-21
namespacedef.h
src/namespacedef.h
+6
-2
outputgen.h
src/outputgen.h
+5
-0
outputlist.h
src/outputlist.h
+10
-0
pre.l
src/pre.l
+2
-2
scanner.h
src/scanner.h
+1
-0
scanner.l
src/scanner.l
+138
-29
section.h
src/section.h
+49
-0
tag.l
src/tag.l
+43
-9
translator.h
src/translator.h
+296
-21
translator_fr.h
src/translator_fr.h
+6
-1
translator_nl.h
src/translator_nl.h
+140
-18
translator_se.h
src/translator_se.h
+52
-44
util.cpp
src/util.cpp
+344
-181
util.h
src/util.h
+5
-1
No files found.
INSTALL
View file @
e04496cb
DOXYGEN Version 0.49-990
425
DOXYGEN Version 0.49-990
522
INSTALLATION INSTRUCTIONS FOR UNIX:
INSTALLATION INSTRUCTIONS FOR UNIX:
-----------------------------------
-----------------------------------
1. Unpack the archive, unless you already have:
1. Unpack the archive, unless you already have:
gunzip doxygen-0.49-990
425
.src.tar.gz # uncompress the archive
gunzip doxygen-0.49-990
522
.src.tar.gz # uncompress the archive
tar xf doxygen-0.49-990
425
.src.tar # unpack it
tar xf doxygen-0.49-990
522
.src.tar # unpack it
2. Make sure Qt is installed properly (check the environment variable $QTDIR)
2. Make sure Qt is installed properly (check the environment variable $QTDIR)
...
@@ -80,6 +80,10 @@ You will need to install the windows/dos versions of following tools:
...
@@ -80,6 +80,10 @@ You will need to install the windows/dos versions of following tools:
X-windows version as well!)
X-windows version as well!)
- Microsoft Visual C++ version 5.0, use the vcvars32.bat to set the environment
- Microsoft Visual C++ version 5.0, use the vcvars32.bat to set the environment
variables.
variables.
- If you used WinZip to extract the tar archive it will (apparently) not
create empty folders, so you have to add the folders
`objects' and `bin' manually in the root of the distribution before
compiling.
Make sure all tools are accessible from the command-line.
Make sure all tools are accessible from the command-line.
...
@@ -97,6 +101,11 @@ nmake -f Makefile.windows examples
...
@@ -97,6 +101,11 @@ nmake -f Makefile.windows examples
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
KNOWN CONFIGURATION PROBLEMS
KNOWN CONFIGURATION PROBLEMS
HTML RELATED PROBLEMS:
- the indent continuously increases.
This seems to be a problem that can be observed with Netscape 4.01.
It is not present in many later and earlier versions.
LATEX RELATED PROBLEMS:
LATEX RELATED PROBLEMS:
- the LaTeX translation of HTML tables doesn't seem to work for all
- the LaTeX translation of HTML tables doesn't seem to work for all
...
@@ -129,4 +138,4 @@ The latest version of doxygen can be obtained at
...
@@ -129,4 +138,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Enjoy,
Dimitri van Heesch (2
5 April
1999)
Dimitri van Heesch (2
2 May
1999)
Makefile.config
View file @
e04496cb
...
@@ -9,4 +9,4 @@ PERL = perl
...
@@ -9,4 +9,4 @@ PERL = perl
# The values below should probably be left unmodified
# The values below should probably be left unmodified
TAR
=
tar
# name of the GNU tar tool
TAR
=
tar
# name of the GNU tar tool
TMAKE
= ../
tmake
/
bin
/
tmake
TMAKE
= ../
tmake
/
bin
/
tmake
VERSION
=
0
.
49
-
990
425
VERSION
=
0
.
49
-
990
522
README
View file @
e04496cb
DOXYGEN Version 0.49-990
425
DOXYGEN Version 0.49-990
522
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Enjoy,
Dimitri van Heesch (2
5 April
1999)
Dimitri van Heesch (2
2 May
1999)
doc/autolink.doc
View file @
e04496cb
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
Most documentation systems have special `see also' sections where links
Most documentation systems have special `see also' sections where links
to other pieces of documentation can be inserted.
to other pieces of documentation can be inserted.
Although doxygen also has a command to start such a section (See section
Although doxygen also has a command to start such a section (See section
\ref cmdsa), it does allow you to put these kind of links anywhere in the
\ref cmdsa
"\\sa"
), it does allow you to put these kind of links anywhere in the
documentation.
documentation.
For \f$\mbox{\LaTeX}\f$ documentation a reference to the page number
For \f$\mbox{\LaTeX}\f$ documentation a reference to the page number
is written instead of a link. Furthermore, the index at the end of the
is written instead of a link. Furthermore, the index at the end of the
...
@@ -93,20 +93,7 @@
...
@@ -93,20 +93,7 @@
for the corresponding HTML documentation that is generated by Doxygen.
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
\endhtmlonly
\subsection resolving Resolving of defines and typedefs.
\subsection resolving typedefs.
Macro definitions of the form:
\verbatim
#define TypeName ClassName
\endverbatim
will be resolved inside documentation blocks.
\par Example:
\verbinclude resdefine.cpp
\htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/resdefine/html/exportedname.html">here</a>
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
Typedefs that involve classes, structs and unions, like
Typedefs that involve classes, structs and unions, like
\verbatim
\verbatim
...
...
doc/commands.doc
View file @
e04496cb
...
@@ -42,6 +42,7 @@ documentation:
...
@@ -42,6 +42,7 @@ documentation:
\endlatexonly
\endlatexonly
<li> \refitem cmda \a
<li> \refitem cmda \a
<li> \refitem cmdaddindex \addindex
<li> \refitem cmdaddindex \addindex
<li> \refitem cmdanchor \anchor
<li> \refitem cmdarg \arg
<li> \refitem cmdarg \arg
<li> \refitem cmdauthor \author
<li> \refitem cmdauthor \author
<li> \refitem cmdb \b
<li> \refitem cmdb \b
...
@@ -148,7 +149,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -148,7 +149,7 @@ Doxygen. Unrecognized commands are treated as normal text.
classes and members that are documented are automatically replaced by
classes and members that are documented are automatically replaced by
links to the documentation.
links to the documentation.
\sa section \ref cmdendcode
, section \ref cmdverbatim
\sa section \ref cmdendcode
"\\endcode", section \ref cmdverbatim "\\verbatim"
<hr>
<hr>
\subsection cmddef \def <name>
\subsection cmddef \def <name>
...
@@ -172,14 +173,14 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -172,14 +173,14 @@ Doxygen. Unrecognized commands are treated as normal text.
group of classes, files or namespaces. This can be used to
group of classes, files or namespaces. This can be used to
categorize classes, files or namespaces, and document those
categorize classes, files or namespaces, and document those
categories.
categories.
\sa section \ref cmdingroup
\sa section \ref cmdingroup
"\\ingroup"
<hr>
<hr>
\subsection cmdendcode \endcode
\subsection cmdendcode \endcode
\addindex \endcode
\addindex \endcode
Ends a block of code.
Ends a block of code.
\sa section \ref cmdcode
\sa section \ref cmdcode
"\\code"
<hr>
<hr>
\subsection cmdenum \enum <name>
\subsection cmdenum \enum <name>
...
@@ -226,7 +227,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -226,7 +227,7 @@ Doxygen. Unrecognized commands are treated as normal text.
for the corresponding HTML documentation that is generated by Doxygen.
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
\endhtmlonly
\sa section \ref cmdinclude.
\sa section \ref cmdinclude
"\\include"
.
<hr>
<hr>
\subsection cmdfile \file [<name>]
\subsection cmdfile \file [<name>]
...
@@ -266,7 +267,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -266,7 +267,7 @@ Doxygen. Unrecognized commands are treated as normal text.
for the corresponding HTML documentation that is generated by Doxygen.
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
\endhtmlonly
\sa section \ref cmdvar
and \ref cmdtypedef
\sa section \ref cmdvar
"\\var" and \ref cmdtypedef "\\typedef".
<hr>
<hr>
\subsection cmdingroup \ingroup <groupname>
\subsection cmdingroup \ingroup <groupname>
...
@@ -275,7 +276,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -275,7 +276,7 @@ Doxygen. Unrecognized commands are treated as normal text.
If the \\ingroup command is placed in a comment block of a
If the \\ingroup command is placed in a comment block of a
class, file or namespace, then it will be added to the group.
class, file or namespace, then it will be added to the group.
\sa section \ref cmddefgroup
\sa section \ref cmddefgroup
"\\defgroup".
<hr>
<hr>
\subsection cmdinternal \internal
\subsection cmdinternal \internal
...
@@ -337,8 +338,9 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -337,8 +338,9 @@ Doxygen. Unrecognized commands are treated as normal text.
for the corresponding HTML documentation that is generated by Doxygen.
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
\endhtmlonly
\sa section \ref cmdsection, section \ref cmdsubsection, and
\sa section \ref cmdsection "\\section", section
section \ref cmdref
\ref cmdsubsection "\\subsection", and section
\ref cmdref "\\ref".
<hr>
<hr>
\subsection cmdrelates \relates <name>
\subsection cmdrelates \relates <name>
...
@@ -366,7 +368,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -366,7 +368,7 @@ Doxygen. Unrecognized commands are treated as normal text.
struct with name \<name\>. The arguments are equal to the \\class
struct with name \<name\>. The arguments are equal to the \\class
command.
command.
\sa section \ref cmdclass.
\sa section \ref cmdclass
"\\class"
.
<hr>
<hr>
\subsection cmdtypedef \typedef (typedef declaration)
\subsection cmdtypedef \typedef (typedef declaration)
...
@@ -376,7 +378,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -376,7 +378,7 @@ Doxygen. Unrecognized commands are treated as normal text.
typedef (either global or as a member of a class).
typedef (either global or as a member of a class).
This command is equivalent to \\var and \\fn.
This command is equivalent to \\var and \\fn.
\sa section \ref cmdfn
and \ref cmdvar
\sa section \ref cmdfn
"\\fn" and \ref cmdvar "\\var".
<hr>
<hr>
\subsection cmdunion \union <name> [<header-file>] [<header-name>]
\subsection cmdunion \union <name> [<header-file>] [<header-name>]
...
@@ -386,7 +388,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -386,7 +388,7 @@ Doxygen. Unrecognized commands are treated as normal text.
union with name \<name\>. The arguments are equal to the \\class
union with name \<name\>. The arguments are equal to the \\class
command.
command.
\sa section \ref cmdclass.
\sa section \ref cmdclass
"\\class"
.
<hr>
<hr>
\subsection cmdvar \var (variable declaration)
\subsection cmdvar \var (variable declaration)
...
@@ -396,7 +398,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -396,7 +398,7 @@ Doxygen. Unrecognized commands are treated as normal text.
enum value (either global or as a member of a class).
enum value (either global or as a member of a class).
This command is equivalent to \\typedef and \\fn.
This command is equivalent to \\typedef and \\fn.
\sa section \ref cmdfn
and \cmdtypedef
\sa section \ref cmdfn
"\\fn" and \ref cmdtypedef "\\typedef".
<hr>
<hr>
...
@@ -423,7 +425,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -423,7 +425,7 @@ Doxygen. Unrecognized commands are treated as normal text.
for the corresponding HTML documentation that is generated by Doxygen.
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
\endhtmlonly
\sa Section \ref cmdjdauthor.
\sa Section \ref cmdjdauthor
"@author"
.
<hr>
<hr>
\subsection cmdbrief \brief {brief description}
\subsection cmdbrief \brief {brief description}
...
@@ -437,9 +439,9 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -437,9 +439,9 @@ Doxygen. Unrecognized commands are treated as normal text.
it is advised to keep it brief!). A brief description ends when a
it is advised to keep it brief!). A brief description ends when a
blank line or another sectioning command is encountered. If multiple
blank line or another sectioning command is encountered. If multiple
\\brief commands are present they will be joined. See section
\\brief commands are present they will be joined. See section
\ref cmdauthor for an example.
\ref cmdauthor
"\\author"
for an example.
\sa Section \ref cmdjdshort
\sa Section \ref cmdjdshort
"@short".
<hr>
<hr>
\subsection cmdbug \bug { bug description }
\subsection cmdbug \bug { bug description }
...
@@ -453,8 +455,8 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -453,8 +455,8 @@ Doxygen. Unrecognized commands are treated as normal text.
Each bug description will start on a new line.
Each bug description will start on a new line.
Alternatively, one \\bug command may mention
Alternatively, one \\bug command may mention
several bugs. The \\bug command ends when a blank line or some other
several bugs. The \\bug command ends when a blank line or some other
sectioning command is encountered. See section \ref cmdauthor
for an
sectioning command is encountered. See section \ref cmdauthor
"\\author"
example.
for an
example.
<hr>
<hr>
\subsection cmddate \date { date description }
\subsection cmddate \date { date description }
...
@@ -468,10 +470,10 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -468,10 +470,10 @@ Doxygen. Unrecognized commands are treated as normal text.
Each date description will start on a new line.
Each date description will start on a new line.
Alternatively, one \\date command may mention
Alternatively, one \\date command may mention
several dates. The \\date command ends when a blank line or some other
several dates. The \\date command ends when a blank line or some other
sectioning command is encountered. See section \ref cmdauthor
for an
sectioning command is encountered. See section \ref cmdauthor
"\\author"
example.
for an
example.
\sa Section \ref cmdjddate.
\sa Section \ref cmdjddate
"@date"
.
<hr>
<hr>
\subsection cmdpar \par (paragraph title) { paragraph }
\subsection cmdpar \par (paragraph title) { paragraph }
...
@@ -504,10 +506,10 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -504,10 +506,10 @@ Doxygen. Unrecognized commands are treated as normal text.
Multiple adjacent \\param commands will be joined into a single paragraph.
Multiple adjacent \\param commands will be joined into a single paragraph.
Each parameter description will start on a new line.
Each parameter description will start on a new line.
The \\param description ends when a blank line or some other
The \\param description ends when a blank line or some other
sectioning command is encountered. See section \ref cmdfn for an
sectioning command is encountered. See section \ref cmdfn
"\\fn"
for an
example.
example.
\sa Section \ref cmdjdparam.
\sa Section \ref cmdjdparam
"@param"
.
<hr>
<hr>
\subsection cmdexception \exception <exception-object> { exception description }
\subsection cmdexception \exception <exception-object> { exception description }
...
@@ -521,10 +523,10 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -521,10 +523,10 @@ Doxygen. Unrecognized commands are treated as normal text.
Multiple adjacent \\exception commands will be joined into a single paragraph.
Multiple adjacent \\exception commands will be joined into a single paragraph.
Each parameter description will start on a new line.
Each parameter description will start on a new line.
The \\exception description ends when a blank line or some other
The \\exception description ends when a blank line or some other
sectioning command is encountered. See section \ref cmdfn for an
sectioning command is encountered. See section \ref cmdfn
"\\fn"
for an
example.
example.
\sa Section \ref cmdjdexception.
\sa Section \ref cmdjdexception
"@exception"
.
<hr>
<hr>
\subsection cmdreturn \return { description of the return value }
\subsection cmdreturn \return { description of the return value }
...
@@ -535,10 +537,10 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -535,10 +537,10 @@ Doxygen. Unrecognized commands are treated as normal text.
enhancement commands may be used inside the paragraph.
enhancement commands may be used inside the paragraph.
Multiple adjacent \\return commands will be joined into a single paragraph.
Multiple adjacent \\return commands will be joined into a single paragraph.
The \\return description ends when a blank line or some other
The \\return description ends when a blank line or some other
sectioning command is encountered. See section \ref cmdfn for an
sectioning command is encountered. See section \ref cmdfn
"\\fn"
for an
example.
example.
\sa Section \ref cmdjdreturn.
\sa Section \ref cmdjdreturn
"@return"
.
<hr>
<hr>
\subsection cmdsa \sa { references }
\subsection cmdsa \sa { references }
...
@@ -551,8 +553,8 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -551,8 +553,8 @@ Doxygen. Unrecognized commands are treated as normal text.
may be selected by including a parenthesized list of argument types after
may be selected by including a parenthesized list of argument types after
the method.
the method.
\sa section \ref autolink for information on how to create links to objects
\sa section \ref autolink
"\\autolink"
for information on how to create links to objects
and section \ref cmdjdsee for the JavaDoc version of this command.
and section \ref cmdjdsee
"@see"
for the JavaDoc version of this command.
<hr>
<hr>
\subsection cmdversion \version { version number }
\subsection cmdversion \version { version number }
...
@@ -566,10 +568,10 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -566,10 +568,10 @@ Doxygen. Unrecognized commands are treated as normal text.
Each version description will start on a new line.
Each version description will start on a new line.
Alternatively, one \\version command may mention
Alternatively, one \\version command may mention
several dates. The \\version command ends when a blank line or some other
several dates. The \\version command ends when a blank line or some other
sectioning command is encountered. See section \ref cmdauthor
for an
sectioning command is encountered. See section \ref cmdauthor
"\\author"
example.
for an
example.
\sa Section \ref cmdjdversion.
\sa Section \ref cmdjdversion
"@version"
.
<hr>
<hr>
\subsection cmdwarning \warning { warning message }
\subsection cmdwarning \warning { warning message }
...
@@ -583,25 +585,35 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -583,25 +585,35 @@ Doxygen. Unrecognized commands are treated as normal text.
Each warning description will start on a new line.
Each warning description will start on a new line.
Alternatively, one \\warning command may mention
Alternatively, one \\warning command may mention
several warnings. The \\warning command ends when a blank line or some other
several warnings. The \\warning command ends when a blank line or some other
sectioning command is encountered. See section \ref cmdauthor
for an
sectioning command is encountered. See section \ref cmdauthor
"\\author"
example.
for an
example.
<hr>
<h2>\htmlonly <center> --- \endhtmlonly
<h2>\htmlonly <center> --- \endhtmlonly
Commands to create links
Commands to create links
\htmlonly --- </center>\endhtmlonly</h2>
\htmlonly --- </center>\endhtmlonly</h2>
\subsection cmdaddindex \addindex
<word>
\subsection cmdaddindex \addindex
(text)
\addindex \addindex
\addindex \addindex
This command adds \<word\> to the \htmlonly LaTeX\endhtmlonly
This command adds (text) to the \f$\mbox{\LaTeX}\f$ index.
\latexonly\LaTeX\ \endlatexonly index.
<hr>
\subsection cmdanchor \anchor <word>
\addindex \anchor
This command places an invisble, named anchor into to documentation
to which you can refer with the \\ref command.
\sa section \ref cmdref "\\ref".
<hr>
\subsection cmdendlink \endlink
\subsection cmdendlink \endlink
\addindex \endlink
\addindex \endlink
This command ends a link that is started with the \\link command.
This command ends a link that is started with the \\link command.
\sa section \ref cmdlink.
\sa section \ref cmdlink
"\\link"
.
<hr>
<hr>
\subsection cmdlink \link <link-object>
\subsection cmdlink \link <link-object>
...
@@ -616,25 +628,28 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -616,25 +628,28 @@ Doxygen. Unrecognized commands are treated as normal text.
the \\link and \\endlink commands serves as text for a link to
the \\link and \\endlink commands serves as text for a link to
the \<link-object\> specified as the first argument of \\link.
the \<link-object\> specified as the first argument of \\link.
See section \ref autolink for more information on automatically
See section \ref autolink
"\\autolink"
for more information on automatically
generated links and valid link-objects.
generated links and valid link-objects.
\b Notice:
\b Notice:
Keep in mind that links are only meaningful in HTML text;
Keep in mind that links are only meaningful in HTML text;
in \htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly
in \f$\mbox{\LaTeX}\f$ text, the link text is just written to the output.
text, the link text is just written to the output.
<hr>
<hr>
\subsection cmdref \ref <
section-name>
\subsection cmdref \ref <
name> ["(text)"]
\addindex \ref
\addindex \ref
Creates a reference to a named section, subsection,
or page
.
Creates a reference to a named section, subsection,
page or anchor
.
For HTML documentation the reference command will generate a link to
For HTML documentation the reference command will generate a link to
the section, the title of the section will be used as the link text.
the section. For a sections or subsections the title of the section will be
For \htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly documentation the reference command will generate a section
used as the text of the link. For anchor the optional text between quotes
number.
will be used or \<name\> if no text is specified.
For \f$\mbox{\LaTeX}\f$ documentation the reference command will
generate a section number for sections or the text followed by a
page number if \<name\> refers to an anchor.
See section \ref cmdpage for an example of the \\ref command.
\sa
Section \ref cmdpage "\\page" for an example of the \\ref command.
<hr>
<hr>
\subsection cmdsection \section <section-name> (section title)
\subsection cmdsection \section <section-name> (section title)
...
@@ -644,7 +659,11 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -644,7 +659,11 @@ Doxygen. Unrecognized commands are treated as normal text.
section should be specified as the second argument of the \\section
section should be specified as the second argument of the \\section
command.
command.
See section \ref cmdpage for an example of the \\cmdsection command.
\warning This command only works inside related page documentation and
\e not in other documentation blocks!
\sa
Section \ref cmdpage "\\page" for an example of the \\cmdsection command.
<hr>
<hr>
\subsection cmdsubsection \subsection <subsection-name> (subsection title)
\subsection cmdsubsection \subsection <subsection-name> (subsection title)
...
@@ -653,7 +672,11 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -653,7 +672,11 @@ Doxygen. Unrecognized commands are treated as normal text.
subsection should be specified as the second argument of the \\subsection
subsection should be specified as the second argument of the \\subsection
command.
command.
See section \ref cmdpage for an example of the \\cmdsubsection command.
\warning This command only works inside related page documentation and
\e not in other documentation blocks!
\sa
Section \ref cmdpage "\\page" for an example of the \\cmdsubsection command.
<hr>
<hr>
<h2>\htmlonly <center> --- \endhtmlonly
<h2>\htmlonly <center> --- \endhtmlonly
...
@@ -682,7 +705,8 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -682,7 +705,8 @@ Doxygen. Unrecognized commands are treated as normal text.
for the corresponding HTML documentation that is generated by Doxygen.
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
\endhtmlonly
\sa sections \ref cmdline, \ref cmdskip, \ref cmdskipline, and \ref cmduntil.
\sa sections \ref cmdline "\\line", \ref cmdskip "\\skip",
\ref cmdskipline "\\skipline", and \ref cmduntil "\\until".
<hr>
<hr>
\subsection cmdinclude \include <file-name>
\subsection cmdinclude \include <file-name>
...
@@ -706,7 +730,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -706,7 +730,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\\until commands. An internal pointer is used for these command. The
\\until commands. An internal pointer is used for these command. The
\\include command sets the pointer to the first line of the example.
\\include command sets the pointer to the first line of the example.
\sa section \ref cmdexample
and \ref cmddontinclude
.
\sa section \ref cmdexample
"\\example" and \ref cmddontinclude "\\dontinclude"
.
<hr>
<hr>
\subsection cmdline \line ( pattern )
\subsection cmdline \line ( pattern )
...
@@ -722,7 +746,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -722,7 +746,7 @@ Doxygen. Unrecognized commands are treated as normal text.
line that was found (or to the end of the example if no such line could
line that was found (or to the end of the example if no such line could
be found).
be found).
See section \ref cmddontinclude for an example.
See section \ref cmddontinclude
"\\dontinclude"
for an example.
<hr>
<hr>
\subsection cmdskip \skip ( pattern )
\subsection cmdskip \skip ( pattern )
...
@@ -736,7 +760,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -736,7 +760,7 @@ Doxygen. Unrecognized commands are treated as normal text.
the example, is set to the start of the line that contains the specified
the example, is set to the start of the line that contains the specified
pattern (or to the end of the example if the pattern could not be found).
pattern (or to the end of the example if the pattern could not be found).
See section \ref cmddontinclude for an example.
See section \ref cmddontinclude
"\\dontinclude"
for an example.
<hr>
<hr>
\subsection cmdskipline \skipline ( pattern )
\subsection cmdskipline \skipline ( pattern )
...
@@ -758,7 +782,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -758,7 +782,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\skip pattern
\skip pattern
\line pattern\endverbatim
\line pattern\endverbatim
See section \ref cmddontinclude for an example.
See section \ref cmddontinclude
"\\dontinclude"
for an example.
<hr>
<hr>
\subsection cmduntil \until ( pattern )
\subsection cmduntil \until ( pattern )
...
@@ -773,7 +797,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -773,7 +797,7 @@ Doxygen. Unrecognized commands are treated as normal text.
the example, is set to the start of the line following last written
the example, is set to the start of the line following last written
line (or to the end of the example if the pattern could not be found).
line (or to the end of the example if the pattern could not be found).
See section \ref cmddontinclude for an example.
See section \ref cmddontinclude
"\\dontinclude"
for an example.
<hr>
<hr>
\subsection cmdverbinclude \verbinclude <file-name>
\subsection cmdverbinclude \verbinclude <file-name>
...
@@ -875,7 +899,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -875,7 +899,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\addindex \endhtmlonly
\addindex \endhtmlonly
Ends a block of text that was started with a \\htmlonly command.
Ends a block of text that was started with a \\htmlonly command.
\sa section \ref cmdhtmlonly.
\sa section \ref cmdhtmlonly
"\\htmlonly"
.
<hr>
<hr>
\subsection cmdendlatexonly \endlatexonly
\subsection cmdendlatexonly \endlatexonly
...
@@ -883,7 +907,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -883,7 +907,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\addindex \endlatexonly
\addindex \endlatexonly
Ends a block of text that was started with a \\latexonly command.
Ends a block of text that was started with a \\latexonly command.
\sa section \ref cmdlatexonly.
\sa section \ref cmdlatexonly
"\\latexonly"
.
<hr>
<hr>
\subsection cmdendverbatim \endverbatim
\subsection cmdendverbatim \endverbatim
...
@@ -891,7 +915,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -891,7 +915,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\addindex \endverbatim
\addindex \endverbatim
Ends a block of text that was started with a \\verbatim command.
Ends a block of text that was started with a \\verbatim command.
\sa section \ref cmdverbatim.
\sa section \ref cmdverbatim
"\\verbatim"
.
<hr>
<hr>
\subsection cmdfdollar \f$
\subsection cmdfdollar \f$
...
@@ -899,7 +923,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -899,7 +923,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\addindex \\f$
\addindex \\f$
Marks the start and end of an in-text formula.
Marks the start and end of an in-text formula.
\sa section \ref formulas for an example.
\sa section \ref formulas
"formulas"
for an example.
<hr>
<hr>
\subsection cmdfbropen \f[
\subsection cmdfbropen \f[
...
@@ -908,7 +932,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -908,7 +932,7 @@ Doxygen. Unrecognized commands are treated as normal text.
Marks the start of a long formula that is displayed
Marks the start of a long formula that is displayed
centered on a separate line.
centered on a separate line.
\sa section \ref cmdfbrclose
and section \ref formulas
.
\sa section \ref cmdfbrclose
"\\f]" and section \ref formulas "formulas"
.
<hr>
<hr>
\subsection cmdfbrclose \f]
\subsection cmdfbrclose \f]
...
@@ -917,7 +941,7 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -917,7 +941,7 @@ Doxygen. Unrecognized commands are treated as normal text.
Marks the end of a long formula that is displayed
Marks the end of a long formula that is displayed
centered on a separate line.
centered on a separate line.
\sa section \ref cmdfbropen
and section \ref formulas
.
\sa section \ref cmdfbropen
""\\f[" and section \ref formulas "formulas"
.
<hr>
<hr>
\subsection cmdhtmlonly \htmlonly
\subsection cmdhtmlonly \htmlonly
...
@@ -930,38 +954,42 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -930,38 +954,42 @@ Doxygen. Unrecognized commands are treated as normal text.
This command can be used to include HTML code that is too complex
This command can be used to include HTML code that is too complex
for Doxygen (i.e. images, applets, java-scripts, and HTML tags that
for Doxygen (i.e. images, applets, java-scripts, and HTML tags that
require attributes). You can use the \\latexonly and \\endlatexonly
require attributes). You can use the \\latexonly and \\endlatexonly
pair to provide a proper \
htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly
alternative.
pair to provide a proper \
f$\mbox{\LaTeX}\f$
alternative.
\b Notice:
\b Notice:
environment variables (like \$(HOME) ) are resolved inside a
environment variables (like \$(HOME) ) are resolved inside a
HTML-only block.
HTML-only block.
\sa section \ref cmdhtmlonly and section \ref cmdlatexonly.
\sa section \ref cmdhtmlonly "\\htmlonly" and section
\ref cmdlatexonly "\\latexonly".
<hr>
<hr>
\subsection cmdlatexonly \latexonly
\subsection cmdlatexonly \latexonly
\addindex \latexonly
\addindex \latexonly
Starts a block of text that will be verbatim included in the
Starts a block of text that will be verbatim included in the
generated \
htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly
documentation only. The block ends with a
generated \
f$\mbox{\LaTeX}\f$
documentation only. The block ends with a
endlatexonly command.
endlatexonly command.
This command can be used to include \htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly code that is too complex
This command can be used to include \f$\mbox{\LaTeX}\f$ code that is too
for Doxygen (i.e. images, formulas, special characters). You can use the
complex for Doxygen (i.e. images, formulas, special characters). You can
\\htmlonly and \\endhtmlonly pair to provide a proper HTML alternative.
use the \\htmlonly and \\endhtmlonly pair to provide a proper HTML
alternative.
\b Notice:
\b Notice:
environment variables (like \$(HOME) ) are resolved inside a
environment variables (like \$(HOME) ) are resolved inside a
\
htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\endlatexonly
-only block.
\
f$\mbox{\LaTeX}\f$
-only block.
\sa section \ref cmdlatexonly and section \ref cmdhtmlonly.
\sa section \ref cmdlatexonly "\\latexonly"
and section \ref cmdhtmlonly "\\htmlonly".
<hr>
<hr>
\subsection cmdverbatim \verbatim
\subsection cmdverbatim \verbatim
\addindex \verbatim
\addindex \verbatim
Starts a block of text that will be verbatim included in both the
Starts a block of text that will be verbatim included in both the
HTML and the \htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly documentation. The block should end with a
HTML and the
\f$\mbox{\LaTeX}\f$ documentation. The block should end with a
\\endverbatim block. All commands are disabled in a verbatim block.
\\endverbatim block. All commands are disabled in a verbatim block.
\warning Make sure you include a \\endverbatim command for each
\warning Make sure you include a \\endverbatim command for each
...
@@ -971,30 +999,32 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -971,30 +999,32 @@ Doxygen. Unrecognized commands are treated as normal text.
\subsection cmdbackslash \\
\subsection cmdbackslash \\
\addindex \\
\addindex \\
This command writes a backslash character (\\) to the HTML and
\htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly output.
This command writes a backslash character (\\) to the HTML and
The backslash has to be escaped in some cases because Doxygen uses it to
\f$\mbox{\LaTeX}\f$ output. The backslash has to be escaped in some
detect commands.
cases because Doxygen uses it to
detect commands.
<hr>
<hr>
\subsection cmdat \@
\subsection cmdat \@
\addindex \@
\addindex \@
This command writes an at-sign (@) to the HTML and
\htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly output.
This command writes an at-sign (@) to the HTML and
The at-sign has to be escaped in some cases because Doxygen uses it to
\f$\mbox{\LaTeX}\f$ output. The at-sign has to be escaped in some cases
detect JavaDoc commands.
because Doxygen uses it to
detect JavaDoc commands.
<hr>
<hr>
\subsection cmdamp \&
\subsection cmdamp \&
\addindex \&
\addindex \&
This command writes the \& character to the HTML and \htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly output. This
This command writes the \& character to the HTML and
character has to be escaped because it has a special meaning in HTML.
\f$\mbox{\LaTeX}\f$ output. This character has to be escaped because
it has a special meaning in HTML.
<hr>
<hr>
\subsection cmddollar \$
\subsection cmddollar \$
\addindex \$
\addindex \$
This command writes the \$ character to the HTML and \htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly output. This
This command writes the \$ character to the HTML and
\f$\mbox{\LaTeX}\f$ output. This
character has to be escaped in some cases, because it is used to expand
character has to be escaped in some cases, because it is used to expand
environment variables.
environment variables.
...
@@ -1002,7 +1032,8 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -1002,7 +1032,8 @@ Doxygen. Unrecognized commands are treated as normal text.
\subsection cmdhash \#
\subsection cmdhash \#
\addindex \#
\addindex \#
This command writes the \# character to the HTML and \htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly output. This
This command writes the \# character to the HTML and
\f$\mbox{\LaTeX}\f$ output. This
character has to be escaped in some cases, because it is used to refer
character has to be escaped in some cases, because it is used to refer
to documented entities.
to documented entities.
...
@@ -1010,14 +1041,16 @@ Doxygen. Unrecognized commands are treated as normal text.
...
@@ -1010,14 +1041,16 @@ Doxygen. Unrecognized commands are treated as normal text.
\subsection cmdlt \\<
\subsection cmdlt \\<
\addindex \\<
\addindex \\<
This command writes the \< character to the HTML and \htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly output. This
This command writes the \< character to the HTML and
\f$\mbox{\LaTeX}\f$ output. This
character has to be escaped because it has a special meaning in HTML.
character has to be escaped because it has a special meaning in HTML.
<hr>
<hr>
\subsection cmdgt \\>
\subsection cmdgt \\>
\addindex \\>
\addindex \\>
This command writes the \> character to the HTML and \htmlonly LaTeX\endhtmlonly\latexonly\LaTeX\ \endlatexonly output. This
This command writes the \> character to the HTML and
\f$\mbox{\LaTeX}\f$ output. This
character has to be escaped because it has a special meaning in HTML.
character has to be escaped because it has a special meaning in HTML.
<hr>
<hr>
...
@@ -1030,28 +1063,28 @@ The following command JavaDoc command are support.
...
@@ -1030,28 +1063,28 @@ The following command JavaDoc command are support.
\subsection cmdjdauthor @author { list of authors }
\subsection cmdjdauthor @author { list of authors }
\addindex @author
\addindex @author
Equivalent to \\author (see section \ref cmdauthor).
Equivalent to \\author (see section \ref cmdauthor
"\\author"
).
\subsection cmdjddate @date { date description }
\subsection cmdjddate @date { date description }
\addindex @date
\addindex @date
Equivalent to \\date (see section \ref cmddate).
Equivalent to \\date (see section \ref cmddate
"\\date"
).
\subsection cmdjdparam @param <parameter-name> { parameter-description }
\subsection cmdjdparam @param <parameter-name> { parameter-description }
\addindex @param
\addindex @param
Equivalent to \\param (see section \ref cmdparam).
Equivalent to \\param (see section \ref cmdparam
"\\param"
).
\subsection cmdjdexception @exception <exception-object> { exception-description }
\subsection cmdjdexception @exception <exception-object> { exception-description }
\addindex @exception
\addindex @exception
Equivalent to \\exception (see section \ref cmdexception).
Equivalent to \\exception (see section \ref cmdexception
"\\exception"
).
\subsection cmdjdreturn @return { description of the return value }
\subsection cmdjdreturn @return { description of the return value }
\addindex @return
\addindex @return
Equivalent to \\return (see section \ref cmdreturn).
Equivalent to \\return (see section \ref cmdreturn
"\\return"
).
\subsection cmdjdsee @see { references }
\subsection cmdjdsee @see { references }
\addindex @see
\addindex @see
Equivalent to \\sa (see section \ref cmdsa).
Equivalent to \\sa (see section \ref cmdsa
"\\sa"
).
\subsection cmdjdshort @short { brief description }
\subsection cmdjdshort @short { brief description }
\addindex @short
\addindex @short
Equivalent to \\brief (see section \ref cmdbrief).
Equivalent to \\brief (see section \ref cmdbrief
"\\brief"
).
\subsection cmdjdversion @version { version number }
\subsection cmdjdversion @version { version number }
\addindex @version
\addindex @version
Equivalent to \\version (see section \ref cmdversion).
Equivalent to \\version (see section \ref cmdversion
"\\version"
).
<h2>\htmlonly <center> --- \endhtmlonly
<h2>\htmlonly <center> --- \endhtmlonly
Commands included for Qt compatibility
Commands included for Qt compatibility
...
...
doc/config.doc
View file @
e04496cb
...
@@ -169,7 +169,7 @@ Below is a list of tags that are recognized for each category.
...
@@ -169,7 +169,7 @@ Below is a list of tags that are recognized for each category.
If
the
VERBATIM_HEADERS
tag
is
set
the
YES
(
the
default
)
then
Doxygen
\
n
";
If
the
VERBATIM_HEADERS
tag
is
set
the
YES
(
the
default
)
then
Doxygen
\
n
";
will generate a verbatim copy of the header file for each class for
\n
"
;
will generate a verbatim copy of the header file for each class for
\n
"
;
which
an
include
is
specified
.
Set
to
NO
to
disable
this
.\
n
";
which
an
include
is
specified
.
Set
to
NO
to
disable
this
.\
n
";
\sa Section
\r
ef cmdclass.
\sa Section
\r
ef cmdclass
"
\\
class
"
.
</dl>
</dl>
...
@@ -216,7 +216,7 @@ Below is a list of tags that are recognized for each category.
...
@@ -216,7 +216,7 @@ Below is a list of tags that are recognized for each category.
\a
ddindex EXAMPLE_PATH
\a
ddindex EXAMPLE_PATH
The \c EXAMPLE_PATH tag can be used to specify one or more files or
The \c EXAMPLE_PATH tag can be used to specify one or more files or
directories that contain example code fragments that are included (see
directories that contain example code fragments that are included (see
the
\\
include command in section
\r
ef cmdinclude).
the
\\
include command in section
\r
ef cmdinclude
"
\\
include
"
).
<dt>\c INCLUDE_PATH <dd>
<dt>\c INCLUDE_PATH <dd>
\a
ddindex INCLUDE_PATH
\a
ddindex INCLUDE_PATH
...
@@ -262,6 +262,7 @@ Below is a list of tags that are recognized for each category.
...
@@ -262,6 +262,7 @@ Below is a list of tags that are recognized for each category.
<HTML>
<HTML>
<HEAD>
<HEAD>
<TITLE>My title</TITLE>
<TITLE>My title</TITLE>
<LINK HREF="
doxygen
.
css
" REL="
stylesheet
" TYPE="
text
/
css
">
</HEAD>
</HEAD>
<BODY BGCOLOR="
#
FFFFFF
">
<BODY BGCOLOR="
#
FFFFFF
">
\endverbatim
\endverbatim
...
@@ -341,6 +342,10 @@ EXTRA_PACKAGES = times
...
@@ -341,6 +342,10 @@ EXTRA_PACKAGES = times
A directory man3 will be created inside the directory specified by
A directory man3 will be created inside the directory specified by
\c MAN_OUTPUT.
\c MAN_OUTPUT.
<dt>\c MAN_EXTENSION <dd>
\a
ddindex MAX_EXTENSION
The MAN_EXTENSION tag determines the extension that is added to
the generated man pages (default is the subroutine's section .3)
</dl>
</dl>
\subsection config_prepro Preprocessor related options
\subsection config_prepro Preprocessor related options
...
...
doc/index.doc
View file @
e04496cb
...
@@ -155,8 +155,9 @@ Ole Gerden,
...
@@ -155,8 +155,9 @@ Ole Gerden,
Olaf Meeuwissen,
Olaf Meeuwissen,
Feiyi Wang,
Feiyi Wang,
Robert J. Clark,
Robert J. Clark,
Matthias Baas and
Matthias Baas,
Walter Mueller
Walter Mueller, and
William van Dieten
for suggestions, patches and bug reports.
for suggestions, patches and bug reports.
</ul>
</ul>
*/
*/
...
...
doc/trouble.doc
View file @
e04496cb
...
@@ -62,6 +62,11 @@ Furthermore, I would appreciate a mail if you have found
...
@@ -62,6 +62,11 @@ Furthermore, I would appreciate a mail if you have found
a bug, or if you have ideas (or even better some code or a patch)
a bug, or if you have ideas (or even better some code or a patch)
how to fix existing bugs and limitations.
how to fix existing bugs and limitations.
The easiest way for me to solve bugs is if you can send me a small example
demonstrating the problem you have (make sure the example compiles!). It is
usually a good idea to send along the configuation file as well, but please
use doxygen with the <code>-s</code> flag while generating it.
My email address: <a href="mailto:dimitri@stack.nl">dimitri@stack.nl</a>
My email address: <a href="mailto:dimitri@stack.nl">dimitri@stack.nl</a>
*/
*/
src/classdef.cpp
View file @
e04496cb
...
@@ -37,7 +37,7 @@ static QString stripExtension(const char *fName)
...
@@ -37,7 +37,7 @@ static QString stripExtension(const char *fName)
}
}
// constructs a new class definition
// constructs a new class definition
ClassDef
::
ClassDef
(
const
char
*
nm
,
int
ct
,
const
char
*
ref
,
const
char
*
fName
)
ClassDef
::
ClassDef
(
const
char
*
nm
,
CompoundType
ct
,
const
char
*
ref
,
const
char
*
fName
)
:
Definition
(
removeRedundantWhiteSpace
(
nm
))
:
Definition
(
removeRedundantWhiteSpace
(
nm
))
{
{
//name=n;
//name=n;
...
@@ -155,7 +155,7 @@ void ClassDef::insertMember(const MemberDef *md)
...
@@ -155,7 +155,7 @@ void ClassDef::insertMember(const MemberDef *md)
if
(
md
->
isFriend
()
||
md
->
protection
()
!=
Private
||
extractPrivateFlag
)
if
(
md
->
isFriend
()
||
md
->
protection
()
!=
Private
||
extractPrivateFlag
)
{
{
MemberInfo
*
mi
=
new
MemberInfo
((
MemberDef
*
)
md
,
Public
,
Normal
);
MemberInfo
*
mi
=
new
MemberInfo
((
MemberDef
*
)
md
,
Public
,
Normal
);
MemberNameInfo
*
mni
;
MemberNameInfo
*
mni
=
0
;
if
((
mni
=
(
*
allMemberNameInfoDict
)[
md
->
name
()]))
if
((
mni
=
(
*
allMemberNameInfoDict
)[
md
->
name
()]))
{
{
mni
->
append
(
mi
);
mni
->
append
(
mi
);
...
@@ -232,8 +232,9 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -232,8 +232,9 @@ void ClassDef::writeDocumentation(OutputList &ol)
pageTitle
+=
pageType
+
" Reference"
;
pageTitle
+=
pageType
+
" Reference"
;
startFile
(
ol
,
fileName
,
pageTitle
);
startFile
(
ol
,
fileName
,
pageTitle
);
startTitle
(
ol
);
startTitle
(
ol
);
ol
.
docify
(
name
()
+
" "
+
pageType
.
right
(
pageType
.
length
()
-
1
)
+
" "
);
//ol.docify(name()+" "+pageType.right(pageType.length()-1)+" ");
parseDoc
(
ol
,
0
,
0
,
theTranslator
->
trReference
());
//parseText(ol,theTranslator->trReference());
parseText
(
ol
,
theTranslator
->
trCompoundReference
(
name
(),
compType
));
endTitle
(
ol
,
name
());
endTitle
(
ol
,
name
());
// write brief description
// write brief description
...
@@ -244,8 +245,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -244,8 +245,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol
+=
briefOutput
;
ol
+=
briefOutput
;
ol
.
writeString
(
"
\n
"
);
ol
.
writeString
(
"
\n
"
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
startTextLink
(
0
,
"details"
);
ol
.
startTextLink
(
0
,
"
_
details"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMore
());
parse
Text
(
ol
,
theTranslator
->
trMore
());
ol
.
endTextLink
();
ol
.
endTextLink
();
ol
.
enableAll
();
ol
.
enableAll
();
}
}
...
@@ -286,7 +287,41 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -286,7 +287,41 @@ void ClassDef::writeDocumentation(OutputList &ol)
int
count
;
int
count
;
if
((
count
=
inherits
->
count
())
>
0
)
if
((
count
=
inherits
->
count
())
>
0
)
{
{
parseDoc
(
ol
,
0
,
0
,
theTranslator
->
trInherits
()
+
" "
);
//parseText(ol,theTranslator->trInherits()+" ");
QString
inheritLine
=
theTranslator
->
trInheritsList
(
inherits
->
count
());
QRegExp
marker
(
"@[0-9]+"
);
int
index
=
0
,
newIndex
,
matchLen
;
// now replace all markers in inheritLine with links to the classes
while
((
newIndex
=
marker
.
match
(
inheritLine
,
index
,
&
matchLen
))
!=-
1
)
{
parseText
(
ol
,
inheritLine
.
mid
(
index
,
newIndex
-
index
));
bool
ok
;
uint
entryIndex
=
inheritLine
.
mid
(
newIndex
+
1
,
matchLen
-
1
).
toUInt
(
&
ok
);
BaseClassDef
*
bcd
=
inherits
->
at
(
entryIndex
);
if
(
ok
&&
bcd
)
{
ClassDef
*
cd
=
bcd
->
classDef
;
if
(
cd
->
hasDocumentation
()
||
cd
->
isReference
())
{
if
(
genTagFile
.
length
()
>
0
)
tagFile
<<
cd
->
getOutputFileBase
()
<<
"?"
;
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
,
cd
->
name
()
+
bcd
->
templSpecifiers
);
}
else
{
ol
.
docify
(
cd
->
name
());
}
}
else
{
err
(
"Error: invalid marker %d in inherits list!
\n
"
,
entryIndex
);
}
index
=
newIndex
+
matchLen
;
}
parseText
(
ol
,
inheritLine
.
right
(
inheritLine
.
length
()
-
index
));
ol
.
newParagraph
();
#if 0
BaseClassDef *bcd=inherits->first();
BaseClassDef *bcd=inherits->first();
while (bcd)
while (bcd)
{
{
...
@@ -305,13 +340,13 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -305,13 +340,13 @@ void ClassDef::writeDocumentation(OutputList &ol)
if (bcd)
if (bcd)
{
{
if (inherits->at()==count-1)
if (inherits->at()==count-1)
parse
Doc
(
ol
,
0
,
0
,
" "
+
theTranslator
->
trAnd
()
+
" "
);
parse
Text(ol
," "+theTranslator->trAnd()+" ");
else
else
ol.writeString(", ");
ol.writeString(", ");
}
}
}
}
ol.writeString(".");
ol.writeString(".");
ol
.
newParagraph
();
#endif
}
}
if
(
genTagFile
.
length
()
>
0
)
tagFile
<<
"
\"
"
<<
fileName
<<
".html
\"\n
"
;
if
(
genTagFile
.
length
()
>
0
)
tagFile
<<
"
\"
"
<<
fileName
<<
".html
\"\n
"
;
...
@@ -319,7 +354,36 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -319,7 +354,36 @@ void ClassDef::writeDocumentation(OutputList &ol)
// write subclasses
// write subclasses
if
((
count
=
inheritedBy
->
count
())
>
0
)
if
((
count
=
inheritedBy
->
count
())
>
0
)
{
{
parseDoc
(
ol
,
0
,
0
,
theTranslator
->
trInheritedBy
()
+
" "
);
QString
inheritLine
=
theTranslator
->
trInheritedByList
(
inheritedBy
->
count
());
QRegExp
marker
(
"@[0-9]+"
);
int
index
=
0
,
newIndex
,
matchLen
;
// now replace all markers in inheritLine with links to the classes
while
((
newIndex
=
marker
.
match
(
inheritLine
,
index
,
&
matchLen
))
!=-
1
)
{
parseText
(
ol
,
inheritLine
.
mid
(
index
,
newIndex
-
index
));
bool
ok
;
uint
entryIndex
=
inheritLine
.
mid
(
newIndex
+
1
,
matchLen
-
1
).
toUInt
(
&
ok
);
BaseClassDef
*
bcd
=
inheritedBy
->
at
(
entryIndex
);
if
(
ok
&&
bcd
)
{
ClassDef
*
cd
=
bcd
->
classDef
;
if
(
cd
->
hasDocumentation
()
||
cd
->
isReference
())
{
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
,
cd
->
name
());
}
else
{
ol
.
docify
(
cd
->
name
());
}
writeInheritanceSpecifier
(
ol
,
bcd
);
}
index
=
newIndex
+
matchLen
;
}
parseText
(
ol
,
inheritLine
.
right
(
inheritLine
.
length
()
-
index
));
ol
.
newParagraph
();
#if 0
parseText(ol,theTranslator->trInheritedBy()+" ");
BaseClassDef *bcd=inheritedBy->first();
BaseClassDef *bcd=inheritedBy->first();
while (bcd)
while (bcd)
{
{
...
@@ -337,13 +401,14 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -337,13 +401,14 @@ void ClassDef::writeDocumentation(OutputList &ol)
if (bcd)
if (bcd)
{
{
if (inheritedBy->at()==count-1)
if (inheritedBy->at()==count-1)
parse
Doc
(
ol
,
0
,
0
,
" "
+
theTranslator
->
trAnd
()
+
" "
);
parse
Text(ol
," "+theTranslator->trAnd()+" ");
else
else
ol.writeString(", ");
ol.writeString(", ");
}
}
}
}
ol.writeString(".");
ol.writeString(".");
ol.newParagraph();
ol.newParagraph();
#endif
}
}
if
(
classDiagramFlag
)
ol
.
enableAll
();
if
(
classDiagramFlag
)
ol
.
enableAll
();
...
@@ -376,7 +441,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -376,7 +441,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ClassDiagram
diagram
(
this
);
// create a diagram of this class.
ClassDiagram
diagram
(
this
);
// create a diagram of this class.
ol
.
startClassDiagram
();
ol
.
startClassDiagram
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
parse
Doc
(
ol
,
name
(),
0
,
theTranslator
->
trClassDiagram
(
name
()));
parse
Text
(
ol
,
theTranslator
->
trClassDiagram
(
name
()));
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
endClassDiagram
(
diagram
,
fileName
,
name
());
ol
.
endClassDiagram
(
diagram
,
fileName
,
name
());
}
}
...
@@ -386,40 +451,45 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -386,40 +451,45 @@ void ClassDef::writeDocumentation(OutputList &ol)
{
{
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
startTextLink
(
memListFileName
,
0
);
ol
.
startTextLink
(
memListFileName
,
0
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trListOfAllMembers
());
parse
Text
(
ol
,
theTranslator
->
trListOfAllMembers
());
ol
.
endTextLink
();
ol
.
endTextLink
();
ol
.
enableAll
();
ol
.
enableAll
();
}
}
// write member groups
// write member groups
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Public Members"
,
0
,
&
pubMembers
);
ol
.
startMemberSections
();
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Public Slots"
,
0
,
&
pubSlots
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trPublicMembers
(),
0
,
&
pubMembers
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Signals"
,
0
,
&
signals
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trPublicSlots
(),
0
,
&
pubSlots
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Static Public Members"
,
0
,
&
pubStaticMembers
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trSignals
(),
0
,
&
signals
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Protected Members"
,
0
,
&
proMembers
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trStaticPublicMembers
(),
0
,
&
pubStaticMembers
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Protected Slots"
,
0
,
&
proSlots
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trProtectedMembers
(),
0
,
&
proMembers
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Static Protected Members"
,
0
,
&
proStaticMembers
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trProtectedSlots
(),
0
,
&
proSlots
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trStaticProtectedMembers
(),
0
,
&
proStaticMembers
);
if
(
extractPrivateFlag
)
if
(
extractPrivateFlag
)
{
{
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Private Members"
,
0
,
&
priMembers
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trPrivateMembers
()
,
0
,
&
priMembers
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Private Slots"
,
0
,
&
priSlots
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trPrivateSlots
()
,
0
,
&
priSlots
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Static Private Members"
,
0
,
&
priStaticMembers
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trStaticPrivateMembers
()
,
0
,
&
priStaticMembers
);
}
}
writeMemberDecs
(
ol
,
this
,
0
,
0
,
"Friends"
,
0
,
&
friends
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trFriends
()
,
0
,
&
friends
);
writeMemberDecs
(
ol
,
this
,
0
,
0
,
writeMemberDecs
(
ol
,
this
,
0
,
0
,
theTranslator
->
trRelatedFunctions
(),
theTranslator
->
trRelatedFunctions
(),
theTranslator
->
trRelatedSubscript
(),
theTranslator
->
trRelatedSubscript
(),
&
related
&
related
);
);
ol
.
endMemberSections
();
// write detailed description
// write detailed description
bool
exampleFlag
=
hasExamples
();
bool
exampleFlag
=
hasExamples
();
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
()
||
exampleFlag
)
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
()
||
exampleFlag
)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
writeAnchor
(
"details"
);
bool
latexOn
=
ol
.
isEnabled
(
OutputGenerator
::
Latex
);
if
(
latexOn
)
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
writeAnchor
(
"_details"
);
if
(
latexOn
)
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trDetailedDescription
());
parse
Text
(
ol
,
theTranslator
->
trDetailedDescription
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
if
(
tempArgs
)
// class is a template
if
(
tempArgs
)
// class is a template
{
{
...
@@ -460,11 +530,11 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -460,11 +530,11 @@ void ClassDef::writeDocumentation(OutputList &ol)
{
{
ol
.
startDescList
();
ol
.
startDescList
();
ol
.
startBold
();
ol
.
startBold
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trExamples
()
+
": "
);
parse
Text
(
ol
,
theTranslator
->
trExamples
()
+
": "
);
ol
.
endBold
();
ol
.
endBold
();
ol
.
endDescTitle
();
ol
.
endDescTitle
();
ol
.
writeDescItem
();
ol
.
writeDescItem
();
writeExample
(
ol
);
writeExample
(
ol
,
exampleList
);
//ol.endDescItem();
//ol.endDescItem();
ol
.
endDescList
();
ol
.
endDescList
();
}
}
...
@@ -489,7 +559,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -489,7 +559,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMemberTypedefDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trMemberTypedefDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
Typedef
);
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
Typedef
);
...
@@ -507,7 +577,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -507,7 +577,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMemberEnumerationDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trMemberEnumerationDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
Enumeration
);
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
Enumeration
);
...
@@ -525,7 +595,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -525,7 +595,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trEnumerationValueDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trEnumerationValueDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
EnumValue
);
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
EnumValue
);
...
@@ -548,7 +618,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -548,7 +618,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMemberFunctionDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trMemberFunctionDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
Function
);
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
Function
);
...
@@ -570,7 +640,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -570,7 +640,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trRelatedFunctionDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trRelatedFunctionDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
&
friends
,
name
(),
MemberDef
::
Friend
);
writeMemberDocs
(
ol
,
&
friends
,
name
(),
MemberDef
::
Friend
);
writeMemberDocs
(
ol
,
&
related
,
name
(),
MemberDef
::
Function
);
writeMemberDocs
(
ol
,
&
related
,
name
(),
MemberDef
::
Function
);
...
@@ -586,7 +656,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -586,7 +656,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMemberDataDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trMemberDataDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
Variable
);
writeMemberDocs
(
ol
,
&
pubMembers
,
name
(),
MemberDef
::
Variable
);
...
@@ -603,41 +673,57 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -603,41 +673,57 @@ void ClassDef::writeDocumentation(OutputList &ol)
// write the list of used files (Html and LaTeX only)
// write the list of used files (Html and LaTeX only)
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
writeRuler
();
ol
.
writeRuler
();
parseDoc
(
ol
,
0
,
0
,
parseText
(
ol
,
theTranslator
->
trGeneratedFrom
(
pageType
.
lower
(),
theTranslator
->
trGeneratedFrom
(
pageType
.
lower
(),
files
.
count
()
==
1
));
files
.
count
()
==
1
));
ol
.
startItemList
();
bool
first
=
TRUE
;
const
char
*
file
=
files
.
first
();
const
char
*
file
=
files
.
first
();
while
(
file
)
while
(
file
)
{
{
QFileInfo
fi
(
file
);
ol
.
writeListItem
();
FileDef
*
fd
;
bool
ambig
;
bool
ambig
;
if
((
fd
=
findFileDef
(
&
inputNameDict
,
fi
.
absFilePath
(),
ambig
))
FileDef
*
fd
=
findFileDef
(
&
inputNameDict
,
file
,
ambig
);
&&
fd
->
hasDocumentation
())
if
(
fd
)
{
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
diskName
(),
0
,
fi
.
fileName
());
}
else
{
{
ol
.
docify
(
fi
.
fileName
());
if
(
first
)
{
first
=
FALSE
;
ol
.
startItemList
();
}
ol
.
writeListItem
();
QString
path
=
fd
->
getPath
().
copy
();
if
(
fullPathNameFlag
)
{
// strip part of the path
if
(
path
.
left
(
stripFromPath
.
length
())
==
stripFromPath
)
{
path
=
path
.
right
(
path
.
length
()
-
stripFromPath
.
length
());
}
ol
.
docify
(
path
);
}
if
(
fd
->
hasDocumentation
())
{
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
getOutputFileBase
(),
0
,
fd
->
name
());
}
else
{
ol
.
docify
(
fd
->
name
());
}
}
}
file
=
files
.
next
();
file
=
files
.
next
();
}
}
if
(
!
first
)
ol
.
endItemList
();
ol
.
endItemList
();
ol
.
enable
(
OutputGenerator
::
Man
);
// write Author section (Man only)
// write Author section (Man only)
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
writeString
(
"
\n
"
);
ol
.
writeString
(
"
\n
"
);
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trAuthor
());
parse
Text
(
ol
,
theTranslator
->
trAuthor
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trGeneratedAutomatically
(
projectName
));
parse
Text
(
ol
,
theTranslator
->
trGeneratedAutomatically
(
projectName
));
ol
.
enableAll
();
ol
.
enableAll
();
endFile
(
ol
);
endFile
(
ol
);
...
@@ -651,13 +737,11 @@ void ClassDef::writeMemberList(OutputList &ol)
...
@@ -651,13 +737,11 @@ void ClassDef::writeMemberList(OutputList &ol)
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
startFile
(
ol
,
memListFileName
,
theTranslator
->
trMemberList
());
startFile
(
ol
,
memListFileName
,
theTranslator
->
trMemberList
());
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
name
(),
0
,
name
()
+
" "
+
theTranslator
->
trMemberList
());
parse
Text
(
ol
,
name
()
+
" "
+
theTranslator
->
trMemberList
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parseDoc
(
ol
,
0
,
0
,
theTranslator
->
trThisIsTheListOfAllMembers
());
parseText
(
ol
,
theTranslator
->
trThisIsTheListOfAllMembers
());
ol
.
writeString
(
" "
);
ol
.
writeObjectLink
(
reference
,
fileName
,
0
,
name
());
ol
.
writeObjectLink
(
reference
,
fileName
,
0
,
name
());
ol
.
writeString
(
", "
);
parseText
(
ol
,
theTranslator
->
trIncludingInheritedMembers
());
parseDoc
(
ol
,
0
,
0
,
theTranslator
->
trIncludingInheritedMembers
());
ol
.
startItemList
();
ol
.
startItemList
();
...
@@ -702,14 +786,14 @@ void ClassDef::writeMemberList(OutputList &ol)
...
@@ -702,14 +786,14 @@ void ClassDef::writeMemberList(OutputList &ol)
{
{
QString
name
=
mi
->
ambiguityResolutionScope
+
md
->
name
();
QString
name
=
mi
->
ambiguityResolutionScope
+
md
->
name
();
ol
.
writeListItem
();
ol
.
writeListItem
();
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFil
e
(),
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBas
e
(),
md
->
anchor
(),
name
);
md
->
anchor
(),
name
);
if
(
md
->
isFunction
()
||
md
->
isSignal
()
||
md
->
isSlot
()
)
if
(
md
->
isFunction
()
||
md
->
isSignal
()
||
md
->
isSlot
()
)
ol
.
docify
(
md
->
argsString
());
ol
.
docify
(
md
->
argsString
());
else
if
(
md
->
isEnumerate
())
else
if
(
md
->
isEnumerate
())
parse
Doc
(
ol
,
0
,
0
,
" "
+
theTranslator
->
trEnumName
());
parse
Text
(
ol
,
" "
+
theTranslator
->
trEnumName
());
else
if
(
md
->
isEnumValue
())
else
if
(
md
->
isEnumValue
())
parse
Doc
(
ol
,
0
,
0
,
" "
+
theTranslator
->
trEnumValue
());
parse
Text
(
ol
,
" "
+
theTranslator
->
trEnumValue
());
else
if
(
md
->
isTypedef
())
else
if
(
md
->
isTypedef
())
ol
.
docify
(
" typedef"
);
ol
.
docify
(
" typedef"
);
else
if
(
md
->
isFriend
()
&&
!
strcmp
(
md
->
typeString
(),
"friend class"
))
else
if
(
md
->
isFriend
()
&&
!
strcmp
(
md
->
typeString
(),
"friend class"
))
...
@@ -725,16 +809,16 @@ void ClassDef::writeMemberList(OutputList &ol)
...
@@ -725,16 +809,16 @@ void ClassDef::writeMemberList(OutputList &ol)
if
(
md
->
isFunction
()
||
md
->
isSignal
()
||
md
->
isSlot
()
)
if
(
md
->
isFunction
()
||
md
->
isSignal
()
||
md
->
isSlot
()
)
ol
.
docify
(
md
->
argsString
());
ol
.
docify
(
md
->
argsString
());
else
if
(
md
->
isEnumerate
())
else
if
(
md
->
isEnumerate
())
parse
Doc
(
ol
,
0
,
0
,
" "
+
theTranslator
->
trEnumName
());
parse
Text
(
ol
,
" "
+
theTranslator
->
trEnumName
());
else
if
(
md
->
isEnumValue
())
else
if
(
md
->
isEnumValue
())
parse
Doc
(
ol
,
0
,
0
,
" "
+
theTranslator
->
trEnumValue
());
parse
Text
(
ol
,
" "
+
theTranslator
->
trEnumValue
());
else
if
(
md
->
isTypedef
())
else
if
(
md
->
isTypedef
())
ol
.
docify
(
" typedef"
);
ol
.
docify
(
" typedef"
);
ol
.
writeString
(
" ("
);
ol
.
writeString
(
" ("
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trDefinedIn
()
+
" "
);
parse
Text
(
ol
,
theTranslator
->
trDefinedIn
()
+
" "
);
if
(
cd
->
isVisible
())
if
(
cd
->
isVisible
())
{
{
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFil
e
(),
0
,
cd
->
name
());
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBas
e
(),
0
,
cd
->
name
());
}
}
else
else
{
{
...
@@ -792,9 +876,9 @@ void ClassDef::writeIncludeFile(OutputList &ol)
...
@@ -792,9 +876,9 @@ void ClassDef::writeIncludeFile(OutputList &ol)
startTitle
(
ol
);
startTitle
(
ol
);
QString
n
=
incName
.
copy
();
QString
n
=
incName
.
copy
();
if
(
incName
.
isNull
())
n
=
incFile
->
name
();
if
(
incName
.
isNull
())
n
=
incFile
->
name
();
parse
Doc
(
ol
,
0
,
0
,
n
);
parse
Text
(
ol
,
n
);
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trVerbatimText
(
incFile
->
name
()));
parse
Text
(
ol
,
theTranslator
->
trVerbatimText
(
incFile
->
name
()));
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startCodeFragment
();
ol
.
startCodeFragment
();
parseCode
(
ol
,
n
,
fileToString
(
incFile
->
absFilePath
()),
FALSE
,
0
);
parseCode
(
ol
,
n
,
fileToString
(
incFile
->
absFilePath
()),
FALSE
,
0
);
...
@@ -829,9 +913,31 @@ bool ClassDef::hasExamples()
...
@@ -829,9 +913,31 @@ bool ClassDef::hasExamples()
return
exampleList
->
count
()
>
0
;
return
exampleList
->
count
()
>
0
;
}
}
#if 0
// write the list of all examples that are use this class.
// write the list of all examples that are use this class.
void ClassDef::writeExample(OutputList &ol)
void ClassDef::writeExample(OutputList &ol)
{
{
QString exampleLine=theTranslator->trWriteList(exampleList->count());
QRegExp marker("@[0-9]+");
int index=0,newIndex,matchLen;
// now replace all markers in inheritLine with links to the classes
while ((newIndex=marker.match(exampleLine,index,&matchLen))!=-1)
{
bool ok;
parseText(ol,exampleLine.mid(index,newIndex-index));
uint entryIndex = exampleLine.mid(newIndex+1,matchLen-1).toUInt(&ok);
Example *e=exampleList->at(entryIndex);
if (ok && e)
{
ol.writeObjectLink(0,e->file,e->anchor,e->name);
}
index=newIndex+matchLen;
}
parseText(ol,exampleLine.right(exampleLine.length()-index));
ol.writeString(".");
#if 0
Example *e=exampleList->first();
Example *e=exampleList->first();
while (e)
while (e)
{
{
...
@@ -840,13 +946,15 @@ void ClassDef::writeExample(OutputList &ol)
...
@@ -840,13 +946,15 @@ void ClassDef::writeExample(OutputList &ol)
if (e)
if (e)
{
{
if (exampleList->at()==(int)exampleList->count()-1)
if (exampleList->at()==(int)exampleList->count()-1)
parse
Doc
(
ol
,
0
,
0
,
" "
+
theTranslator
->
trAnd
()
+
" "
);
parse
Text(ol
," "+theTranslator->trAnd()+" ");
else
else
ol.writeString(", ");
ol.writeString(", ");
}
}
}
}
ol.writeString(".");
ol.writeString(".");
#endif
}
}
#endif
void
ClassDef
::
setTemplateArguments
(
ArgumentList
*
al
)
void
ClassDef
::
setTemplateArguments
(
ArgumentList
*
al
)
{
{
...
...
src/classdef.h
View file @
e04496cb
...
@@ -49,10 +49,11 @@ class ClassDef : public Definition
...
@@ -49,10 +49,11 @@ class ClassDef : public Definition
Union
=
Entry
::
UNION_SEC
Union
=
Entry
::
UNION_SEC
};
};
ClassDef
(
const
char
*
name
,
int
ct
,
const
char
*
ref
=
0
,
const
char
*
fName
=
0
);
ClassDef
(
const
char
*
name
,
CompoundType
ct
,
const
char
*
ref
=
0
,
const
char
*
fName
=
0
);
~
ClassDef
();
~
ClassDef
();
QString
classFile
()
const
{
return
fileName
;
}
//QString classFile() const { return fileName; }
int
compoundType
()
const
{
return
compType
;
}
QString
getOutputFileBase
()
const
{
return
fileName
;
}
CompoundType
compoundType
()
const
{
return
compType
;
}
const
char
*
memberListFileName
()
const
{
return
memListFileName
;
}
const
char
*
memberListFileName
()
const
{
return
memListFileName
;
}
void
insertBaseClass
(
ClassDef
*
,
Protection
p
,
Specifier
s
,
const
char
*
t
=
0
);
void
insertBaseClass
(
ClassDef
*
,
Protection
p
,
Specifier
s
,
const
char
*
t
=
0
);
BaseClassList
*
baseClasses
()
{
return
inherits
;
}
BaseClassList
*
baseClasses
()
{
return
inherits
;
}
...
@@ -75,7 +76,7 @@ class ClassDef : public Definition
...
@@ -75,7 +76,7 @@ class ClassDef : public Definition
void
writeIncludeFile
(
OutputList
&
ol
);
void
writeIncludeFile
(
OutputList
&
ol
);
bool
addExample
(
const
char
*
anchor
,
const
char
*
name
,
const
char
*
file
);
bool
addExample
(
const
char
*
anchor
,
const
char
*
name
,
const
char
*
file
);
bool
hasExamples
();
bool
hasExamples
();
void
writeExample
(
OutputList
&
ol
);
//
void writeExample(OutputList &ol);
void
setProtection
(
Protection
p
)
{
prot
=
p
;
}
void
setProtection
(
Protection
p
)
{
prot
=
p
;
}
Protection
protection
()
const
{
return
prot
;
}
Protection
protection
()
const
{
return
prot
;
}
bool
isVisible
()
bool
isVisible
()
...
@@ -130,7 +131,7 @@ class ClassDef : public Definition
...
@@ -130,7 +131,7 @@ class ClassDef : public Definition
QString
reference
;
QString
reference
;
ExampleList
*
exampleList
;
ExampleList
*
exampleList
;
ExampleDict
*
exampleDict
;
ExampleDict
*
exampleDict
;
int
compType
;
CompoundType
compType
;
Protection
prot
;
Protection
prot
;
};
};
...
...
src/code.l
View file @
e04496cb
...
@@ -173,16 +173,19 @@ static void generateClassLink(OutputList &ol,const char *clName)
...
@@ -173,16 +173,19 @@ static void generateClassLink(OutputList &ol,const char *clName)
if (exampleBlock)
if (exampleBlock)
{
{
QString anchor;
QString anchor;
anchor.sprintf("a%d",anchorCount);
anchor.sprintf("
_
a%d",anchorCount);
//printf("addExampleClass(%s,%s,%s)\n",anchor.data(),exampleName.data(),
//printf("addExampleClass(%s,%s,%s)\n",anchor.data(),exampleName.data(),
// exampleFile.data());
// exampleFile.data());
if (cd->addExample(anchor,exampleName,exampleFile))
if (cd->addExample(anchor,exampleName,exampleFile))
{
{
bool latexOn = ol.isEnabled(OutputGenerator::Latex);
if (latexOn) ol.disable(OutputGenerator::Latex);
ol.writeAnchor(anchor);
ol.writeAnchor(anchor);
if (latexOn) ol.enable(OutputGenerator::Latex);
anchorCount++;
anchorCount++;
}
}
}
}
ol.writeCodeLink(cd->getReference(),cd->
classFil
e(),0,className);
ol.writeCodeLink(cd->getReference(),cd->
getOutputFileBas
e(),0,className);
}
}
else
else
{
{
...
@@ -193,13 +196,14 @@ static void generateClassLink(OutputList &ol,const char *clName)
...
@@ -193,13 +196,14 @@ static void generateClassLink(OutputList &ol,const char *clName)
static bool getLink(const char *className,
static bool getLink(const char *className,
const char *memberName,OutputList &result)
const char *memberName,OutputList &result)
{
{
MemberDef *md;
MemberDef *md;
ClassDef *cd;
ClassDef *cd;
FileDef *fd;
FileDef *fd;
NamespaceDef *nd;
QString m=memberName;
QString m=memberName;
QString c=className;
QString c=className;
//printf("Trying `%s'::`%s'\n",c.data(),m.data());
//printf("Trying `%s'::`%s'\n",c.data(),m.data());
if (getDefs(m,c,"()",md,cd,fd) &&
if (getDefs(m,c,"()",md,cd,fd
,nd
) &&
(md->hasDocumentation() || md->isReference()))
(md->hasDocumentation() || md->isReference()))
{
{
//printf("Found!\n");
//printf("Found!\n");
...
@@ -217,13 +221,19 @@ static bool getLink(const char *className,
...
@@ -217,13 +221,19 @@ static bool getLink(const char *className,
}
}
if (cd)
if (cd)
{
{
result.writeCodeLink(cd->getReference(),cd->classFile(),
result.writeCodeLink(cd->getReference(),cd->getOutputFileBase(),
md->anchor(),memberName);
return TRUE;
}
else if (nd)
{
result.writeCodeLink(nd->getReference(),nd->getOutputFileBase(),
md->anchor(),memberName);
md->anchor(),memberName);
return TRUE;
return TRUE;
}
}
else if (fd)
else if (fd)
{
{
result.writeCodeLink(fd->getReference(),fd->
diskNam
e(),
result.writeCodeLink(fd->getReference(),fd->
getOutputFileBas
e(),
md->anchor(),memberName);
md->anchor(),memberName);
return TRUE;
return TRUE;
}
}
...
@@ -363,7 +373,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
...
@@ -363,7 +373,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
if ((fd=findFileDef(&inputNameDict,yytext,ambig)) &&
if ((fd=findFileDef(&inputNameDict,yytext,ambig)) &&
fd->hasDocumentation())
fd->hasDocumentation())
{
{
code->writeCodeLink(0,fd->
diskNam
e(),0,yytext);
code->writeCodeLink(0,fd->
getOutputFileBas
e(),0,yytext);
}
}
else
else
{
{
...
...
src/config.h
View file @
e04496cb
...
@@ -41,6 +41,7 @@ extern QString genTagFile; // the tag file to generate
...
@@ -41,6 +41,7 @@ extern QString genTagFile; // the tag file to generate
extern
QString
inputFilter
;
// a filter command that is applied to input files
extern
QString
inputFilter
;
// a filter command that is applied to input files
extern
QString
paperType
;
// the page type to generate docs for
extern
QString
paperType
;
// the page type to generate docs for
extern
QString
stripFromPath
;
// the string to strip from the file path
extern
QString
stripFromPath
;
// the string to strip from the file path
extern
QString
manExtension
;
// extension the man page files
extern
QStrList
includePath
;
// list of include paths
extern
QStrList
includePath
;
// list of include paths
extern
QStrList
examplePath
;
// list of example paths
extern
QStrList
examplePath
;
// list of example paths
extern
QStrList
inputSources
;
// list of input files
extern
QStrList
inputSources
;
// list of input files
...
@@ -76,5 +77,6 @@ extern bool repeatBriefFlag; // repeat brief descriptions.
...
@@ -76,5 +77,6 @@ extern bool repeatBriefFlag; // repeat brief descriptions.
extern
bool
internalDocsFlag
;
// determines what happens to internal docs.
extern
bool
internalDocsFlag
;
// determines what happens to internal docs.
extern
bool
caseSensitiveNames
;
// determines if output can be mixed case.
extern
bool
caseSensitiveNames
;
// determines if output can be mixed case.
extern
bool
verbatimHeaderFlag
;
// enable/disable generation of verb headers.
extern
bool
verbatimHeaderFlag
;
// enable/disable generation of verb headers.
extern
bool
htmlAlignMemberFlag
;
// align members in HTML using tables.
#endif
#endif
src/config.l
View file @
e04496cb
...
@@ -62,6 +62,7 @@ QString inputFilter;
...
@@ -62,6 +62,7 @@ QString inputFilter;
QString paperType;
QString paperType;
QString outputLanguage;
QString outputLanguage;
QString stripFromPath;
QString stripFromPath;
QString manExtension;
QStrList includePath;
QStrList includePath;
QStrList examplePath;
QStrList examplePath;
QStrList inputSources;
QStrList inputSources;
...
@@ -72,31 +73,32 @@ QStrList tagFileList;
...
@@ -72,31 +73,32 @@ QStrList tagFileList;
QStrList extDocPathList;
QStrList extDocPathList;
QStrList predefined;
QStrList predefined;
QStrList extraPackageList;
QStrList extraPackageList;
bool quietFlag = FALSE;
bool quietFlag = FALSE;
bool warningFlag = FALSE;
bool warningFlag = FALSE;
bool recursiveFlag = FALSE;
bool recursiveFlag = FALSE;
bool allExtFlag = FALSE;
bool allExtFlag = FALSE;
bool searchEngineFlag = FALSE;
bool searchEngineFlag = FALSE;
bool extractAllFlag = FALSE;
bool extractAllFlag = FALSE;
bool extractPrivateFlag = FALSE;
bool extractPrivateFlag = FALSE;
bool noIndexFlag = FALSE;
bool noIndexFlag = FALSE;
bool hideMemberFlag = FALSE;
bool hideMemberFlag = FALSE;
bool hideClassFlag = FALSE;
bool hideClassFlag = FALSE;
bool macroExpansionFlag = FALSE;
bool macroExpansionFlag = FALSE;
bool onlyPredefinedFlag = FALSE;
bool onlyPredefinedFlag = FALSE;
bool fullPathNameFlag = FALSE;
bool fullPathNameFlag = FALSE;
bool compactLatexFlag = FALSE;
bool compactLatexFlag = FALSE;
bool internalDocsFlag = FALSE;
bool internalDocsFlag = FALSE;
bool caseSensitiveNames = FALSE;
bool caseSensitiveNames = FALSE;
bool generateHtml = TRUE;
bool generateHtml = TRUE;
bool generateLatex = TRUE;
bool generateLatex = TRUE;
bool generateMan = TRUE;
bool generateMan = TRUE;
bool preprocessingFlag = TRUE;
bool preprocessingFlag = TRUE;
bool briefMemDescFlag = TRUE;
bool briefMemDescFlag = TRUE;
bool searchIncludeFlag = TRUE;
bool searchIncludeFlag = TRUE;
bool classDiagramFlag = TRUE;
bool classDiagramFlag = TRUE;
bool repeatBriefFlag = TRUE;
bool repeatBriefFlag = TRUE;
bool verbatimHeaderFlag = TRUE;
bool verbatimHeaderFlag = TRUE;
bool htmlAlignMemberFlag = TRUE;
/* -----------------------------------------------------------------
/* -----------------------------------------------------------------
*
*
...
@@ -162,7 +164,8 @@ static int yyread(char *buf,int max_size)
...
@@ -162,7 +164,8 @@ static int yyread(char *buf,int max_size)
<Start>"INPUT_FILTER"[ \t]*"=" { BEGIN(GetString); s=&inputFilter; }
<Start>"INPUT_FILTER"[ \t]*"=" { BEGIN(GetString); s=&inputFilter; }
<Start>"PAPER_TYPE"[ \t]*"=" { BEGIN(GetString); s=&paperType; }
<Start>"PAPER_TYPE"[ \t]*"=" { BEGIN(GetString); s=&paperType; }
<Start>"OUTPUT_LANGUAGE"[ \t]*"=" { BEGIN(GetString); s=&outputLanguage; }
<Start>"OUTPUT_LANGUAGE"[ \t]*"=" { BEGIN(GetString); s=&outputLanguage; }
<Start>"STRIP_FROM_PATH"[ \t]*"=" { BEGIN(GetString); s=&stripFromPath; }
<Start>"STRIP_FROM_PATH"[ \t]*"=" { BEGIN(GetString); s=&stripFromPath; }
<Start>"MAN_EXTENSION"[ \t]*"=" { BEGIN(GetString); s=&manExtension; }
<Start>"INCLUDE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&includePath; elemStr=""; }
<Start>"INCLUDE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&includePath; elemStr=""; }
<Start>"EXAMPLE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&examplePath; elemStr=""; }
<Start>"EXAMPLE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&examplePath; elemStr=""; }
<Start>"INPUT"[ \t]*"=" { BEGIN(GetStrList); l=&inputSources; elemStr=""; }
<Start>"INPUT"[ \t]*"=" { BEGIN(GetStrList); l=&inputSources; elemStr=""; }
...
@@ -198,6 +201,7 @@ static int yyread(char *buf,int max_size)
...
@@ -198,6 +201,7 @@ static int yyread(char *buf,int max_size)
<Start>"INTERNAL_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&internalDocsFlag; }
<Start>"INTERNAL_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&internalDocsFlag; }
<Start>"CASE_SENSE_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&caseSensitiveNames; }
<Start>"CASE_SENSE_NAMES"[ \t]*"=" { BEGIN(GetBool); b=&caseSensitiveNames; }
<Start>"VERBATIM_HEADERS"[ \t]*"=" { BEGIN(GetBool); b=&verbatimHeaderFlag; }
<Start>"VERBATIM_HEADERS"[ \t]*"=" { BEGIN(GetBool); b=&verbatimHeaderFlag; }
<Start>"HTML_ALIGN_MEMBERS"[ \t]*"=" { BEGIN(GetBool); b=&htmlAlignMemberFlag; }
<Start>[a-z_A-Z0-9]+ { err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); }
<Start>[a-z_A-Z0-9]+ { err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); }
<GetString,GetBool>\n { yyLineNr++; BEGIN(Start); }
<GetString,GetBool>\n { yyLineNr++; BEGIN(Start); }
<GetStrList>\n {
<GetStrList>\n {
...
@@ -634,6 +638,15 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -634,6 +638,15 @@ void writeTemplateConfig(QFile *f,bool sl)
}
}
t << "HTML_FOOTER =\n";
t << "HTML_FOOTER =\n";
if (!sl)
if (!sl)
{
t << "\n";
t << "# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,\n";
t << "# files or namespaces will be aligned in HTML using tables. If set to\n";
t << "# NO a bullet list will be used.\n";
t << "\n";
}
t << "HTML_ALIGN_MEMBERS = YES\n";
if (!sl)
{
{
t << "\n";
t << "\n";
t << "#---------------------------------------------------------------------------\n";
t << "#---------------------------------------------------------------------------\n";
...
@@ -701,6 +714,15 @@ void writeTemplateConfig(QFile *f,bool sl)
...
@@ -701,6 +714,15 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "\n";
t << "\n";
}
}
t << "MAN_OUTPUT =\n";
t << "MAN_OUTPUT =\n";
if (!sl)
{
t << "\n";
t << "# The MAN_EXTENSION tag determines the extension that is added to\n";
t << "# the generated man pages (default is the subroutine's section .3)\n";
t << "\n";
}
t << "MAN_EXTENSION = .3\n";
if (!sl)
if (!sl)
{
{
t << "\n";
t << "\n";
...
@@ -870,6 +892,12 @@ void checkConfig()
...
@@ -870,6 +892,12 @@ void checkConfig()
// projectName[0]=toupper(projectName[0]);
// projectName[0]=toupper(projectName[0]);
//}
//}
// set default man page extension if non is given by the user
if (manExtension.isEmpty())
{
manExtension=".3";
}
paperType = paperType.lower().stripWhiteSpace();
paperType = paperType.lower().stripWhiteSpace();
if (paperType.isEmpty())
if (paperType.isEmpty())
{
{
...
...
src/definition.cpp
View file @
e04496cb
...
@@ -16,6 +16,17 @@
...
@@ -16,6 +16,17 @@
#include <ctype.h>
#include <ctype.h>
#include "definition.h"
#include "definition.h"
#include "doxygen.h"
Definition
::
Definition
(
const
char
*
name
,
const
char
*
b
,
const
char
*
d
)
{
n
=
name
;
brief
=
b
;
doc
=
d
;
sectionList
=
0
;
}
Definition
::~
Definition
()
{
delete
sectionList
;
}
QString
Definition
::
nameToFile
(
const
char
*
name
)
QString
Definition
::
nameToFile
(
const
char
*
name
)
{
{
...
@@ -42,3 +53,22 @@ QString Definition::nameToFile(const char *name)
...
@@ -42,3 +53,22 @@ QString Definition::nameToFile(const char *name)
}
}
return
result
;
return
result
;
}
}
void
Definition
::
addSectionsToDefinition
(
QList
<
QString
>
*
anchorList
)
{
if
(
!
anchorList
)
return
;
QString
*
s
=
anchorList
->
first
();
while
(
s
)
{
SectionInfo
*
si
=
0
;
if
(
!
s
->
isEmpty
()
&&
(
si
=
sectionDict
[
*
s
]))
{
//printf("Add section `%s' to definition `%s'\n",
// si->label.data(),n.data());
if
(
sectionList
==
0
)
sectionList
=
new
SectionList
;
sectionList
->
append
(
si
);
si
->
definition
=
this
;
}
s
=
anchorList
->
next
();
}
}
src/definition.h
View file @
e04496cb
...
@@ -18,19 +18,22 @@
...
@@ -18,19 +18,22 @@
#define DEFINITION_H
#define DEFINITION_H
#include <qstring.h>
#include <qstring.h>
#include <qlist.h>
#include "config.h"
#include "config.h"
#include "section.h"
/*! The common base class of all definitions. */
/*! The common base class of all definitions. */
class
Definition
class
Definition
{
{
public
:
public
:
//! create a new definition
//! create a new definition
Definition
(
const
char
*
name
,
const
char
*
b
=
0
,
const
char
*
d
=
0
)
Definition
(
const
char
*
name
,
const
char
*
b
=
0
,
const
char
*
d
=
0
);
{
n
=
name
;
brief
=
b
;
doc
=
d
;
}
//! destroys the definition
//! destroys the definition
virtual
~
Definition
()
{}
virtual
~
Definition
()
;
//! returns the name of the definition
//! returns the name of the definition
QString
name
()
const
{
return
n
;
}
QString
name
()
const
{
return
n
;
}
//! returns the base name of the output file that contains this definition.
virtual
QString
getOutputFileBase
()
const
=
0
;
//! returns the detailed description of this definition
//! returns the detailed description of this definition
QString
documentation
()
const
{
return
doc
;
}
QString
documentation
()
const
{
return
doc
;
}
//! returns the brief description of this definition
//! returns the brief description of this definition
...
@@ -55,10 +58,13 @@ class Definition
...
@@ -55,10 +58,13 @@ class Definition
{
return
!
doc
.
isNull
()
||
!
brief
.
isNull
()
||
extractAllFlag
;
}
{
return
!
doc
.
isNull
()
||
!
brief
.
isNull
()
||
extractAllFlag
;
}
QString
nameToFile
(
const
char
*
name
);
QString
nameToFile
(
const
char
*
name
);
void
addSectionsToDefinition
(
QList
<
QString
>
*
anchorList
);
private
:
private
:
QString
n
;
// name of the definition
QString
n
;
// name of the definition
QString
brief
;
// brief description
QString
brief
;
// brief description
QString
doc
;
// detailed description
QString
doc
;
// detailed description
SectionList
*
sectionList
;
// list of all sections
};
};
#endif
#endif
src/diagram.cpp
View file @
e04496cb
...
@@ -152,7 +152,7 @@ static void writeMapArea(QTextStream &t,ClassDef *cd,int x,int y,int w,int h)
...
@@ -152,7 +152,7 @@ static void writeMapArea(QTextStream &t,ClassDef *cd,int x,int y,int w,int h)
{
{
t
<<
"<area "
;
t
<<
"<area "
;
if
(
cd
->
getReference
())
t
<<
"doxygen=
\"
"
<<
cd
->
getReference
()
<<
":
\"
"
;
if
(
cd
->
getReference
())
t
<<
"doxygen=
\"
"
<<
cd
->
getReference
()
<<
":
\"
"
;
t
<<
"href=
\"
"
<<
cd
->
classFil
e
()
<<
".html
\"
"
;
t
<<
"href=
\"
"
<<
cd
->
getOutputFileBas
e
()
<<
".html
\"
"
;
t
<<
"ALT=
\"
"
<<
cd
->
name
();
t
<<
"ALT=
\"
"
<<
cd
->
name
();
t
<<
"
\"
shape=
\"
rect
\"
coords=
\"
"
<<
x
<<
","
<<
y
<<
","
;
t
<<
"
\"
shape=
\"
rect
\"
coords=
\"
"
<<
x
<<
","
<<
y
<<
","
;
t
<<
x
+
w
<<
","
<<
y
+
h
<<
"
\"
>"
<<
endl
;
t
<<
x
+
w
<<
","
<<
y
+
h
<<
"
\"
>"
<<
endl
;
...
@@ -187,7 +187,7 @@ QString DiagramItem::label() const
...
@@ -187,7 +187,7 @@ QString DiagramItem::label() const
QString
DiagramItem
::
fileName
()
const
QString
DiagramItem
::
fileName
()
const
{
{
return
classDef
->
classFil
e
();
return
classDef
->
getOutputFileBas
e
();
}
}
int
DiagramItem
::
avgChildPos
()
const
int
DiagramItem
::
avgChildPos
()
const
...
...
src/doxygen.cpp
View file @
e04496cb
...
@@ -60,6 +60,7 @@ PageList exampleList; // list of all example files
...
@@ -60,6 +60,7 @@ PageList exampleList; // list of all example files
PageList
pageList
;
// list of all related documentation pages
PageList
pageList
;
// list of all related documentation pages
MemberNameList
memberNameList
;
// list of class member + related functions
MemberNameList
memberNameList
;
// list of class member + related functions
MemberNameList
functionNameList
;
// list of all unrelated functions
MemberNameList
functionNameList
;
// list of all unrelated functions
//MemberNameList namespaceNameList; // list of namespace members;
FileNameList
inputNameList
;
// list of all input files
FileNameList
inputNameList
;
// list of all input files
StringList
inputFiles
;
StringList
inputFiles
;
FileList
includeFiles
;
FileList
includeFiles
;
...
@@ -71,8 +72,9 @@ PageDict pageDict(1009); // dictionary of all doc pages
...
@@ -71,8 +72,9 @@ PageDict pageDict(1009); // dictionary of all doc pages
PageDict
exampleDict
(
1009
);
// dictionary of all examples
PageDict
exampleDict
(
1009
);
// dictionary of all examples
ClassDict
classDict
(
1009
);
// dictionary of all documented classes
ClassDict
classDict
(
1009
);
// dictionary of all documented classes
NamespaceDict
namespaceDict
(
257
);
// dictionary of all documented namespaces
NamespaceDict
namespaceDict
(
257
);
// dictionary of all documented namespaces
MemberNameDict
memberNameDict
(
10007
);
// dictionary of all member names
MemberNameDict
memberNameDict
(
10007
);
// dictionary of all
class
member names
MemberNameDict
functionNameDict
(
10007
);
// dictionary of all functions
MemberNameDict
functionNameDict
(
10007
);
// dictionary of all functions
//MemberNameDict namespaceNameDict(10007);// dictionaty of all namespace member names
StringDict
substituteDict
(
1009
);
// dictionary of class name substitutes
StringDict
substituteDict
(
1009
);
// dictionary of class name substitutes
SectionDict
sectionDict
(
257
);
// dictionary of all page sections
SectionDict
sectionDict
(
257
);
// dictionary of all page sections
FileNameDict
inputNameDict
(
1009
);
// dictionary of sections
FileNameDict
inputNameDict
(
1009
);
// dictionary of sections
...
@@ -100,6 +102,7 @@ int documentedMembers;
...
@@ -100,6 +102,7 @@ int documentedMembers;
int
documentedFiles
;
int
documentedFiles
;
int
documentedGroups
;
int
documentedGroups
;
int
documentedNamespaces
;
int
documentedNamespaces
;
int
documentedNamespaceMembers
;
QTextStream
tagFile
;
QTextStream
tagFile
;
...
@@ -140,6 +143,7 @@ void buildGroupList(Entry *root)
...
@@ -140,6 +143,7 @@ void buildGroupList(Entry *root)
gd
=
new
GroupDef
(
root
->
name
,
root
->
type
);
gd
=
new
GroupDef
(
root
->
name
,
root
->
type
);
gd
->
setBriefDescription
(
root
->
brief
);
gd
->
setBriefDescription
(
root
->
brief
);
gd
->
setDocumentation
(
root
->
doc
);
gd
->
setDocumentation
(
root
->
doc
);
gd
->
addSectionsToDefinition
(
root
->
anchors
);
groupList
.
inSort
(
gd
);
groupList
.
inSort
(
gd
);
groupDict
.
insert
(
root
->
name
,
gd
);
groupDict
.
insert
(
root
->
name
,
gd
);
}
}
...
@@ -207,6 +211,7 @@ void buildFileList(Entry *root)
...
@@ -207,6 +211,7 @@ void buildFileList(Entry *root)
{
{
fd
->
setDocumentation
(
root
->
doc
);
fd
->
setDocumentation
(
root
->
doc
);
fd
->
setBriefDescription
(
root
->
brief
);
fd
->
setBriefDescription
(
root
->
brief
);
fd
->
addSectionsToDefinition
(
root
->
anchors
);
QListIterator
<
QString
>
sli
(
*
root
->
groups
);
QListIterator
<
QString
>
sli
(
*
root
->
groups
);
QString
*
s
;
QString
*
s
;
for
(;(
s
=
sli
.
current
());
++
sli
)
for
(;(
s
=
sli
.
current
());
++
sli
)
...
@@ -290,7 +295,7 @@ void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
...
@@ -290,7 +295,7 @@ void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root)
cd
->
setIncludeFile
(
fd
);
cd
->
setIncludeFile
(
fd
);
// set include supplied name
// set include supplied name
cd
->
setIncludeName
(
root
->
includeName
);
cd
->
setIncludeName
(
root
->
includeName
);
fd
->
setIncludeName
(
(
QString
)
cd
->
classFil
e
()
+
"-include"
);
fd
->
setIncludeName
(
cd
->
getOutputFileBas
e
()
+
"-include"
);
if
(
includeDict
[
fd
->
absFilePath
()]
==
0
)
// include not inserted earlier
if
(
includeDict
[
fd
->
absFilePath
()]
==
0
)
// include not inserted earlier
{
{
includeFiles
.
inSort
(
fd
);
includeFiles
.
inSort
(
fd
);
...
@@ -409,6 +414,7 @@ void buildClassList(Entry *root)
...
@@ -409,6 +414,7 @@ void buildClassList(Entry *root)
{
{
cd
->
setDocumentation
(
root
->
doc
);
cd
->
setDocumentation
(
root
->
doc
);
cd
->
setBriefDescription
(
root
->
brief
);
cd
->
setBriefDescription
(
root
->
brief
);
cd
->
addSectionsToDefinition
(
root
->
anchors
);
cd
->
setName
(
fullName
);
// change name to match docs
cd
->
setName
(
fullName
);
// change name to match docs
}
}
}
}
...
@@ -429,7 +435,7 @@ void buildClassList(Entry *root)
...
@@ -429,7 +435,7 @@ void buildClassList(Entry *root)
)
)
// new class
// new class
{
{
int
sec
=
ClassDef
::
Class
;
ClassDef
::
CompoundType
sec
=
ClassDef
::
Class
;
switch
(
root
->
section
)
switch
(
root
->
section
)
{
{
case
Entry
:
:
UNION_SEC
:
case
Entry
:
:
UNION_SEC
:
...
@@ -445,6 +451,7 @@ void buildClassList(Entry *root)
...
@@ -445,6 +451,7 @@ void buildClassList(Entry *root)
//printf("new ClassDef tempArgList=%p\n",root->tArgList);
//printf("new ClassDef tempArgList=%p\n",root->tArgList);
cd
->
setTemplateArguments
(
root
->
tArgList
);
cd
->
setTemplateArguments
(
root
->
tArgList
);
cd
->
setProtection
(
root
->
protection
);
cd
->
setProtection
(
root
->
protection
);
cd
->
addSectionsToDefinition
(
root
->
anchors
);
QListIterator
<
QString
>
sli
(
*
root
->
groups
);
QListIterator
<
QString
>
sli
(
*
root
->
groups
);
QString
*
s
;
QString
*
s
;
...
@@ -519,6 +526,7 @@ void buildNamespaceList(Entry *root)
...
@@ -519,6 +526,7 @@ void buildNamespaceList(Entry *root)
{
{
nd
->
setDocumentation
(
root
->
doc
);
nd
->
setDocumentation
(
root
->
doc
);
nd
->
setName
(
fullName
);
// change name to match docs
nd
->
setName
(
fullName
);
// change name to match docs
nd
->
addSectionsToDefinition
(
root
->
anchors
);
}
}
else
if
(
!
nd
->
documentation
().
isEmpty
()
&&
root
->
doc
.
length
()
>
0
)
else
if
(
!
nd
->
documentation
().
isEmpty
()
&&
root
->
doc
.
length
()
>
0
)
{
{
...
@@ -539,14 +547,16 @@ void buildNamespaceList(Entry *root)
...
@@ -539,14 +547,16 @@ void buildNamespaceList(Entry *root)
}
}
}
}
}
}
else
if
(
root
->
doc
.
length
()
>
0
||
else
/*
if (root->doc.length()>0 ||
root->brief.length()>0 ||
root->brief.length()>0 ||
extractAllFlag
extractAllFlag
)
)
*/
{
{
NamespaceDef
*
nd
=
new
NamespaceDef
(
fullName
);
NamespaceDef
*
nd
=
new
NamespaceDef
(
fullName
);
nd
->
setDocumentation
(
root
->
doc
);
// copy docs to definition
nd
->
setDocumentation
(
root
->
doc
);
// copy docs to definition
nd
->
setBriefDescription
(
root
->
brief
);
nd
->
setBriefDescription
(
root
->
brief
);
nd
->
addSectionsToDefinition
(
root
->
anchors
);
QListIterator
<
QString
>
sli
(
*
root
->
groups
);
QListIterator
<
QString
>
sli
(
*
root
->
groups
);
QString
*
s
;
QString
*
s
;
...
@@ -639,12 +649,14 @@ void buildVarList(Entry *root)
...
@@ -639,12 +649,14 @@ void buildVarList(Entry *root)
bool
stat
=
root
->
stat
;
bool
stat
=
root
->
stat
;
ClassDef
*
cd
=
0
;
ClassDef
*
cd
=
0
;
Entry
*
p
=
root
->
parent
;
Entry
*
p
=
root
->
parent
;
while
((
p
->
section
&
Entry
::
COMPOUND_MASK
))
while
((
p
->
section
&
Entry
::
COMPOUND_MASK
)
||
p
->
section
==
Entry
::
NAMESPACE_SEC
)
{
{
if
(
p
->
name
.
length
()
>
0
&&
p
->
name
[
0
]
!=
'@'
)
if
(
p
->
name
.
length
()
>
0
&&
p
->
name
[
0
]
!=
'@'
)
{
{
if
(
!
scope
.
isEmpty
())
scope
.
prepend
(
"::"
);
if
(
!
scope
.
isEmpty
())
scope
.
prepend
(
"::"
);
scope
.
prepend
(
p
->
name
);
scope
.
prepend
(
p
->
name
);
break
;
}
}
p
=
p
->
parent
;
p
=
p
->
parent
;
}
}
...
@@ -652,6 +664,7 @@ void buildVarList(Entry *root)
...
@@ -652,6 +664,7 @@ void buildVarList(Entry *root)
//printf("scope=%s\n",scope.data());
//printf("scope=%s\n",scope.data());
int
ni
;
int
ni
;
#if 0
if ((ni=root->name.findRev("::"))!=-1)
if ((ni=root->name.findRev("::"))!=-1)
{
{
if (scope.length()>0) scope+="::";
if (scope.length()>0) scope+="::";
...
@@ -659,8 +672,18 @@ void buildVarList(Entry *root)
...
@@ -659,8 +672,18 @@ void buildVarList(Entry *root)
name=root->name.right(root->name.length()-ni-2);
name=root->name.right(root->name.length()-ni-2);
stat=TRUE;
stat=TRUE;
}
}
#endif
if
((
ni
=
root
->
name
.
findRev
(
"::"
))
!=-
1
)
goto
nextMember
;
/* skip this member, because it is a
* static variable definition (always?), which will be
* found in a class scope as well, but then we know the
* correct protection level, so only then it will be
* inserted in the correct list!
*/
MemberDef
::
MemberType
mtype
;
MemberDef
::
MemberType
mtype
;
// NamespaceDef *nd = 0;
QString
type
=
root
->
type
.
stripWhiteSpace
();
QString
type
=
root
->
type
.
stripWhiteSpace
();
if
(
type
==
"@"
)
if
(
type
==
"@"
)
mtype
=
MemberDef
::
EnumValue
;
mtype
=
MemberDef
::
EnumValue
;
...
@@ -715,11 +738,28 @@ void buildVarList(Entry *root)
...
@@ -715,11 +738,28 @@ void buildVarList(Entry *root)
if
(
mn
)
if
(
mn
)
{
{
MemberDef
*
md
=
mn
->
first
();
MemberDef
*
md
=
mn
->
first
();
while
(
md
)
while
(
md
&&
!
found
)
{
{
if
(
md
->
memberClass
()
==
cd
)
// member already in the scope
if
(
md
->
memberClass
()
==
cd
)
// member already in the scope
{
{
addMemberDocs
(
root
,
md
,
def
,
FALSE
);
addMemberDocs
(
root
,
md
,
def
,
FALSE
);
#if 0
// always trust the most protected scope, so adjust if needed
// This is needed to properly place static private variables,
// which are defined in a `public' scope.
printf("Checking protection level\n");
if (root->protection==Private || md->protection()!=Private)
{
printf("Set to private\n");
md->setProtection(Private);
}
else if (root->protection==Protected && md->protection()==Public)
{
printf("Set to protected\n");
md->setProtection(Protected);
}
#endif
found
=
TRUE
;
found
=
TRUE
;
}
}
md
=
mn
->
next
();
md
=
mn
->
next
();
...
@@ -737,6 +777,7 @@ void buildVarList(Entry *root)
...
@@ -737,6 +777,7 @@ void buildVarList(Entry *root)
md
->
setDocumentation
(
root
->
doc
);
md
->
setDocumentation
(
root
->
doc
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
setDefinition
(
def
);
md
->
setDefinition
(
def
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
// add the member to the global list
// add the member to the global list
if
(
mn
)
if
(
mn
)
...
@@ -761,6 +802,56 @@ void buildVarList(Entry *root)
...
@@ -761,6 +802,56 @@ void buildVarList(Entry *root)
cd
->
insertUsedFile
(
root
->
fileName
);
cd
->
insertUsedFile
(
root
->
fileName
);
}
}
}
}
#if 0
else if (scope.length()>0 && name.length()>0 && (nd=namespaceDict[scope]))
{
Debug::print(Debug::Variables,0,
" namespace variable:\n"
" type=`%s' scope=`%s' name=`%s' args=`%s' prot=`%d\n",
root->type.data(),
scope.data(),
name.data(),
root->args.data(),
root->protection
);
// new global variable, enum value or typedef
MemberDef *md=new MemberDef(root->type,name,root->args,0,
Public, Normal,root->stat,FALSE,
mtype,0,0);
md->setDefFile(root->fileName);
md->setDefLine(root->startLine);
md->setDocumentation(root->doc);
md->setBriefDescription(root->brief);
md->addSectionsToDefinition(root->anchors);
QString def;
nd->insertMember(md);
md->setNamespace(nd);
if (root->type.length()>0)
{
def=root->type+" "+nd->name()+"::"+name+root->args;
}
else
{
def=nd->name()+"::"+name+root->args;
}
if (def.left(7)=="static ") def=def.right(def.length()-7);
md->setDefinition(def);
MemberName *mn;
// add member definition to the list of globals
if ((mn=namespaceNameDict[name]))
{
mn->inSort(md);
}
else
{
mn = new MemberName(name);
mn->inSort(md);
namespaceNameDict.insert(name,mn);
namespaceNameList.inSort(mn);
}
}
#endif
else
if
(
name
.
length
()
>
0
)
// global variable
else
if
(
name
.
length
()
>
0
)
// global variable
{
{
Debug
::
print
(
Debug
::
Variables
,
0
,
Debug
::
print
(
Debug
::
Variables
,
0
,
...
@@ -781,6 +872,7 @@ void buildVarList(Entry *root)
...
@@ -781,6 +872,7 @@ void buildVarList(Entry *root)
md
->
setDefLine
(
root
->
startLine
);
md
->
setDefLine
(
root
->
startLine
);
md
->
setDocumentation
(
root
->
doc
);
md
->
setDocumentation
(
root
->
doc
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
QString
def
;
QString
def
;
// see if the function is inside a namespace
// see if the function is inside a namespace
...
@@ -850,6 +942,7 @@ void buildVarList(Entry *root)
...
@@ -850,6 +942,7 @@ void buildVarList(Entry *root)
}
}
}
}
}
}
nextMember:
EntryListIterator
eli
(
*
root
->
sublist
);
EntryListIterator
eli
(
*
root
->
sublist
);
Entry
*
e
;
Entry
*
e
;
for
(;(
e
=
eli
.
current
());
++
eli
)
for
(;(
e
=
eli
.
current
());
++
eli
)
...
@@ -925,6 +1018,7 @@ void buildMemberList(Entry *root)
...
@@ -925,6 +1018,7 @@ void buildMemberList(Entry *root)
md
->
setDefLine
(
root
->
startLine
);
md
->
setDefLine
(
root
->
startLine
);
md
->
setDocumentation
(
root
->
doc
);
md
->
setDocumentation
(
root
->
doc
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
QString
def
;
QString
def
;
if
(
root
->
relates
.
length
()
>
0
||
isFriend
)
if
(
root
->
relates
.
length
()
>
0
||
isFriend
)
{
{
...
@@ -1048,6 +1142,7 @@ void buildMemberList(Entry *root)
...
@@ -1048,6 +1142,7 @@ void buildMemberList(Entry *root)
{
{
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
}
}
md
->
addSectionsToDefinition
(
root
->
anchors
);
}
}
md
=
mn
->
next
();
md
=
mn
->
next
();
}
}
...
@@ -1067,6 +1162,7 @@ void buildMemberList(Entry *root)
...
@@ -1067,6 +1162,7 @@ void buildMemberList(Entry *root)
md
->
setDocumentation
(
root
->
doc
);
md
->
setDocumentation
(
root
->
doc
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
setPrototype
(
root
->
proto
);
md
->
setPrototype
(
root
->
proto
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
QString
def
;
QString
def
;
if
(
root
->
type
.
length
()
>
0
)
if
(
root
->
type
.
length
()
>
0
)
{
{
...
@@ -1357,8 +1453,9 @@ void computeClassRelations(Entry *root)
...
@@ -1357,8 +1453,9 @@ void computeClassRelations(Entry *root)
}
}
else
// base class not documented
else
// base class not documented
{
{
//printf("Found undocumented base class %s\n",bi->name.data());
NamespaceDef
*
nd
=
cd
->
getNamespace
();
NamespaceDef
*
nd
=
cd
->
getNamespace
();
//printf("Found undocumented base class `%s' namespace scope=`%s'\n",
// bi->name.data(),nd ? nd->name().data() : "<none>");
if
(
nd
&&
(
baseClass
=
getClass
(
nd
->
name
()
+
"::"
+
baseClassName
)))
if
(
nd
&&
(
baseClass
=
getClass
(
nd
->
name
()
+
"::"
+
baseClassName
)))
// class is defined inside namespace
// class is defined inside namespace
{
{
...
@@ -1369,7 +1466,7 @@ void computeClassRelations(Entry *root)
...
@@ -1369,7 +1466,7 @@ void computeClassRelations(Entry *root)
}
}
else
// undocumented base class
else
// undocumented base class
{
{
baseClass
=
new
ClassDef
(
bi
->
name
,
Entry
::
CLASS_SEC
);
baseClass
=
new
ClassDef
(
bi
->
name
,
ClassDef
::
Class
);
// add base class to this class
// add base class to this class
cd
->
insertBaseClass
(
baseClass
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
cd
->
insertBaseClass
(
baseClass
,
bi
->
prot
,
bi
->
virt
,
templSpec
);
// add this class as super class to the base class
// add this class as super class to the base class
...
@@ -1523,6 +1620,7 @@ void addMemberDocs(Entry *root,MemberDef *md, const char *funcDecl,
...
@@ -1523,6 +1620,7 @@ void addMemberDocs(Entry *root,MemberDef *md, const char *funcDecl,
}
}
md
->
setDefFile
(
root
->
fileName
);
md
->
setDefFile
(
root
->
fileName
);
md
->
setDefLine
(
root
->
startLine
);
md
->
setDefLine
(
root
->
startLine
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
if
(
cd
)
cd
->
insertUsedFile
(
root
->
fileName
);
if
(
cd
)
cd
->
insertUsedFile
(
root
->
fileName
);
}
}
...
@@ -1676,21 +1774,23 @@ void findMember(Entry *root,QString funcDecl,QString related,bool overloaded,
...
@@ -1676,21 +1774,23 @@ void findMember(Entry *root,QString funcDecl,QString related,bool overloaded,
else
else
scopeName
=
related
.
copy
();
scopeName
=
related
.
copy
();
}
}
else
if
(
scopeName
.
isEmpty
()
&&
related
.
isEmpty
()
&&
root
->
parent
&&
else
if
(
/*scopeName.isEmpty() &&*/
related
.
isEmpty
()
&&
root
->
parent
&&
!
root
->
parent
->
name
.
isNull
())
!
root
->
parent
->
name
.
isNull
())
{
{
Entry
*
p
=
root
->
parent
;
Entry
*
p
=
root
->
parent
;
while
(
p
)
// get full scope as class name
while
(
p
)
// get full scope as class name
{
{
//printf("++++++ scope=`%s'\n",p->name.data());
if
(((
p
->
section
&
Entry
::
COMPOUND_MASK
)
||
if
(((
p
->
section
&
Entry
::
COMPOUND_MASK
)
||
p
->
section
==
Entry
::
NAMESPACE_SEC
p
->
section
==
Entry
::
NAMESPACE_SEC
)
&&
!
p
->
name
.
isEmpty
()
&&
p
->
name
[
0
]
!=
'@'
)
&&
!
p
->
name
.
isEmpty
()
&&
p
->
name
[
0
]
!=
'@'
)
)
{
{
if
(
scopeName
.
left
(
p
->
name
.
length
())
==
p
->
name
)
break
;
// scope already present, so stop now
// prepend name to scope
if
(
!
scopeName
.
isEmpty
())
scopeName
.
prepend
(
"::"
);
if
(
!
scopeName
.
isEmpty
())
scopeName
.
prepend
(
"::"
);
scopeName
.
prepend
(
p
->
name
);
scopeName
.
prepend
(
p
->
name
);
break
;
// stop here because the class name already contains
// the whole scope!
}
}
p
=
p
->
parent
;
p
=
p
->
parent
;
}
}
...
@@ -1906,6 +2006,7 @@ void findMember(Entry *root,QString funcDecl,QString related,bool overloaded,
...
@@ -1906,6 +2006,7 @@ void findMember(Entry *root,QString funcDecl,QString related,bool overloaded,
md
->
setDefFile
(
root
->
fileName
);
md
->
setDefFile
(
root
->
fileName
);
md
->
setDefLine
(
root
->
startLine
);
md
->
setDefLine
(
root
->
startLine
);
md
->
setPrototype
(
root
->
proto
);
md
->
setPrototype
(
root
->
proto
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
mn
->
inSort
(
md
);
mn
->
inSort
(
md
);
cd
->
insertMember
(
md
);
cd
->
insertMember
(
md
);
cd
->
insertUsedFile
(
root
->
fileName
);
cd
->
insertUsedFile
(
root
->
fileName
);
...
@@ -1970,6 +2071,7 @@ void findMember(Entry *root,QString funcDecl,QString related,bool overloaded,
...
@@ -1970,6 +2071,7 @@ void findMember(Entry *root,QString funcDecl,QString related,bool overloaded,
md
->
setDefFile
(
root
->
fileName
);
md
->
setDefFile
(
root
->
fileName
);
md
->
setDefLine
(
root
->
startLine
);
md
->
setDefLine
(
root
->
startLine
);
md
->
setPrototype
(
root
->
proto
);
md
->
setPrototype
(
root
->
proto
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
mn
->
inSort
(
md
);
mn
->
inSort
(
md
);
cd
->
insertMember
(
md
);
cd
->
insertMember
(
md
);
cd
->
insertUsedFile
(
root
->
fileName
);
cd
->
insertUsedFile
(
root
->
fileName
);
...
@@ -2014,7 +2116,7 @@ void findMember(Entry *root,QString funcDecl,QString related,bool overloaded,
...
@@ -2014,7 +2116,7 @@ void findMember(Entry *root,QString funcDecl,QString related,bool overloaded,
void
findMemberDocumentation
(
Entry
*
root
)
void
findMemberDocumentation
(
Entry
*
root
)
{
{
int
i
,
l
;
int
i
,
l
;
QRegExp
re
(
"([a-zA-Z0-9: ]*
[ *]+[
]*"
);
QRegExp
re
(
"([a-zA-Z0-9: ]*
\\
*+[
\\
*
]*"
);
Debug
::
print
(
Debug
::
FindMembers
,
0
,
Debug
::
print
(
Debug
::
FindMembers
,
0
,
"root->type=`%s' root->name=`%s' root->args=`%s'
\n
"
,
"root->type=`%s' root->name=`%s' root->args=`%s'
\n
"
,
root
->
type
.
data
(),
root
->
name
.
data
(),
root
->
args
.
data
()
root
->
type
.
data
(),
root
->
name
.
data
(),
root
->
args
.
data
()
...
@@ -2026,7 +2128,7 @@ void findMemberDocumentation(Entry *root)
...
@@ -2026,7 +2128,7 @@ void findMemberDocumentation(Entry *root)
root
->
type
=
root
->
type
.
left
(
i
+
l
);
root
->
type
=
root
->
type
.
left
(
i
+
l
);
isFunc
=
FALSE
;
isFunc
=
FALSE
;
}
}
else
if
(
root
->
name
.
find
(
re
)
!=-
1
&&
root
->
name
.
find
(
"operator"
)
!
=-
1
)
else
if
(
root
->
name
.
find
(
re
)
!=-
1
&&
root
->
name
.
find
(
"operator"
)
=
=-
1
)
// func ptr entered with \fn, \var or \typedef
// func ptr entered with \fn, \var or \typedef
{
{
isFunc
=
FALSE
;
isFunc
=
FALSE
;
...
@@ -2151,6 +2253,7 @@ void findEnums(Entry *root)
...
@@ -2151,6 +2253,7 @@ void findEnums(Entry *root)
if
(
!
isGlobal
)
md
->
setMemberClass
(
cd
);
else
md
->
setFileDef
(
fd
);
if
(
!
isGlobal
)
md
->
setMemberClass
(
cd
);
else
md
->
setFileDef
(
fd
);
md
->
setDefFile
(
root
->
fileName
);
md
->
setDefFile
(
root
->
fileName
);
md
->
setDefLine
(
root
->
startLine
);
md
->
setDefLine
(
root
->
startLine
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
if
(
nd
)
if
(
nd
)
{
{
md
->
setDefinition
(
nd
->
name
()
+
"::"
+
name
);
md
->
setDefinition
(
nd
->
name
()
+
"::"
+
name
);
...
@@ -2301,6 +2404,7 @@ void findEnumDocumentation(Entry *root)
...
@@ -2301,6 +2404,7 @@ void findEnumDocumentation(Entry *root)
{
{
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
}
}
md
->
addSectionsToDefinition
(
root
->
anchors
);
found
=
TRUE
;
found
=
TRUE
;
}
}
md
=
mn
->
next
();
md
=
mn
->
next
();
...
@@ -2319,6 +2423,7 @@ void findEnumDocumentation(Entry *root)
...
@@ -2319,6 +2423,7 @@ void findEnumDocumentation(Entry *root)
{
{
md
->
setDocumentation
(
root
->
doc
);
md
->
setDocumentation
(
root
->
doc
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
found
=
TRUE
;
found
=
TRUE
;
}
}
}
}
...
@@ -2338,6 +2443,49 @@ void findEnumDocumentation(Entry *root)
...
@@ -2338,6 +2443,49 @@ void findEnumDocumentation(Entry *root)
}
}
}
}
// seach for each enum (member or function) in mnl if it has documented
// enum values.
static
void
findDEV
(
const
MemberNameList
&
mnl
)
{
MemberName
*
mn
;
MemberNameListIterator
mnli
(
mnl
);
// for each member name
for
(
mnli
.
toFirst
();(
mn
=
mnli
.
current
());
++
mnli
)
{
MemberDef
*
md
;
MemberNameIterator
mni
(
*
mn
);
// for each member definition
for
(
mni
.
toFirst
();(
md
=
mni
.
current
());
++
mni
)
{
if
(
md
->
isEnumerate
())
// member is an enum
{
QList
<
MemberDef
>
*
fmdl
=
md
->
enumFieldList
();
int
documentedEnumValues
=
0
;
if
(
fmdl
)
// enum has values
{
MemberDef
*
fmd
=
fmdl
->
first
();
// for each enum value
while
(
fmd
)
{
if
(
fmd
->
hasDocumentation
())
documentedEnumValues
++
;
fmd
=
fmdl
->
next
();
}
}
// at least one enum value is documented
if
(
documentedEnumValues
>
0
)
md
->
setDocumentedEnumValues
(
TRUE
);
}
}
}
}
// seach for each enum (member or function) if it has documented enum
// values.
void
findDocumentedEnumValues
()
{
findDEV
(
memberNameList
);
findDEV
(
functionNameList
);
}
//----------------------------------------------------------------------
//----------------------------------------------------------------------
// recursive function:
// recursive function:
// returns TRUE iff class definition `bcd' represents an (in)direct base
// returns TRUE iff class definition `bcd' represents an (in)direct base
...
@@ -2695,6 +2843,7 @@ void findDefineDocumentation(Entry *root)
...
@@ -2695,6 +2843,7 @@ void findDefineDocumentation(Entry *root)
md
->
setDocumentation
(
root
->
doc
);
md
->
setDocumentation
(
root
->
doc
);
if
(
md
->
briefDescription
().
isEmpty
())
if
(
md
->
briefDescription
().
isEmpty
())
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
}
}
md
=
mn
->
next
();
md
=
mn
->
next
();
}
}
...
@@ -2715,6 +2864,7 @@ void findDefineDocumentation(Entry *root)
...
@@ -2715,6 +2864,7 @@ void findDefineDocumentation(Entry *root)
md
->
setDocumentation
(
root
->
doc
);
md
->
setDocumentation
(
root
->
doc
);
if
(
md
->
briefDescription
().
isEmpty
())
if
(
md
->
briefDescription
().
isEmpty
())
md
->
setBriefDescription
(
root
->
brief
);
md
->
setBriefDescription
(
root
->
brief
);
md
->
addSectionsToDefinition
(
root
->
anchors
);
}
}
}
}
md
=
mn
->
next
();
md
=
mn
->
next
();
...
@@ -2769,6 +2919,7 @@ void buildPageList(Entry *root)
...
@@ -2769,6 +2919,7 @@ void buildPageList(Entry *root)
baseName
=
baseName
.
left
(
baseName
.
length
()
-
5
);
baseName
=
baseName
.
left
(
baseName
.
length
()
-
5
);
pi
=
new
PageInfo
(
baseName
,
root
->
doc
,
pi
=
new
PageInfo
(
baseName
,
root
->
doc
,
root
->
args
.
stripWhiteSpace
());
root
->
args
.
stripWhiteSpace
());
setFileNameForSections
(
root
->
anchors
,
root
->
name
);
pageList
.
append
(
pi
);
pageList
.
append
(
pi
);
pageDict
.
insert
(
baseName
,
pi
);
pageDict
.
insert
(
baseName
,
pi
);
if
(
pi
->
title
.
length
()
>
0
)
if
(
pi
->
title
.
length
()
>
0
)
...
@@ -2779,8 +2930,11 @@ void buildPageList(Entry *root)
...
@@ -2779,8 +2930,11 @@ void buildPageList(Entry *root)
else
else
pageName
=
pi
->
name
.
lower
();
pageName
=
pi
->
name
.
lower
();
//outputList->writeTitle(pi->name,pi->title);
//outputList->writeTitle(pi->name,pi->title);
SectionInfo
*
si
=
new
SectionInfo
(
pageName
+
".html"
,
pi
->
name
,
pi
->
title
,
FALSE
);
// a page name is a label as well!
SectionInfo
*
si
=
new
SectionInfo
(
pi
->
name
,
pi
->
title
,
SectionInfo
::
Section
);
si
->
fileName
=
pageName
+
".html"
;
//printf("Adding section info %s\n",pi->name.data());
//printf("Adding section info %s\n",pi->name.data());
sectionDict
.
insert
(
pi
->
name
,
si
);
sectionDict
.
insert
(
pi
->
name
,
si
);
}
}
...
@@ -2795,6 +2949,26 @@ void buildPageList(Entry *root)
...
@@ -2795,6 +2949,26 @@ void buildPageList(Entry *root)
}
}
}
}
//----------------------------------------------------------------------------
void
resolveUserReferences
()
{
QDictIterator
<
SectionInfo
>
sdi
(
sectionDict
);
SectionInfo
*
si
;
for
(;(
si
=
sdi
.
current
());
++
sdi
)
{
if
(
si
->
definition
)
{
//printf("si=`%s' def=`%s' file=`%s'\n",
// si->label.data(),
// si->definition->name().data(),
// si->definition->getOutputFileBase().data());
si
->
fileName
=
si
->
definition
->
getOutputFileBase
().
copy
();
}
}
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// generate all separate documentation pages
// generate all separate documentation pages
...
@@ -2803,14 +2977,7 @@ void generatePageDocs()
...
@@ -2803,14 +2977,7 @@ void generatePageDocs()
PageInfo
*
pi
=
pageList
.
first
();
PageInfo
*
pi
=
pageList
.
first
();
while
(
pi
)
while
(
pi
)
{
{
if
(
!
pi
->
title
.
isEmpty
())
msg
(
"Generating docs for page %s...
\n
"
,
pi
->
name
.
data
());
{
msg
(
"Generating docs for page %s...
\n
"
,
pi
->
title
.
data
());
}
else
{
msg
(
"Generating docs for page %s...
\n
"
,
pi
->
name
.
data
());
}
outputList
->
disable
(
OutputGenerator
::
Man
);
outputList
->
disable
(
OutputGenerator
::
Man
);
QString
pageName
;
QString
pageName
;
if
(
caseSensitiveNames
)
if
(
caseSensitiveNames
)
...
@@ -2850,6 +3017,7 @@ void buildExampleList(Entry *root)
...
@@ -2850,6 +3017,7 @@ void buildExampleList(Entry *root)
else
else
{
{
PageInfo
*
pi
=
new
PageInfo
(
root
->
name
,
root
->
doc
,
root
->
args
);
PageInfo
*
pi
=
new
PageInfo
(
root
->
name
,
root
->
doc
,
root
->
args
);
setFileNameForSections
(
root
->
anchors
,
root
->
name
);
exampleList
.
inSort
(
pi
);
exampleList
.
inSort
(
pi
);
exampleDict
.
insert
(
root
->
name
,
pi
);
exampleDict
.
insert
(
root
->
name
,
pi
);
}
}
...
@@ -3166,6 +3334,7 @@ void readFiles(BufStr &output)
...
@@ -3166,6 +3334,7 @@ void readFiles(BufStr &output)
s
=
inputFiles
.
next
();
s
=
inputFiles
.
next
();
}
}
// *p++='\0';
// *p++='\0';
output
.
addChar
(
'\n'
);
/* to prevent problems under Windows ? */
output
.
addChar
(
0
);
output
.
addChar
(
0
);
//printf("Output after preprocessing:\n---------\n%s\n----------\n",output.data());
//printf("Output after preprocessing:\n---------\n%s\n----------\n",output.data());
//printf("Final length = %d\n",p-output.data());
//printf("Final length = %d\n",p-output.data());
...
@@ -3206,7 +3375,7 @@ int readDir(QFileInfo *fi,
...
@@ -3206,7 +3375,7 @@ int readDir(QFileInfo *fi,
else
if
(
cfi
->
isFile
()
&&
else
if
(
cfi
->
isFile
()
&&
patternMatch
(
cfi
,
patList
)
&&
!
patternMatch
(
cfi
,
exclPatList
))
patternMatch
(
cfi
,
patList
)
&&
!
patternMatch
(
cfi
,
exclPatList
))
{
{
totalSize
+=
cfi
->
size
()
+
cfi
->
absFilePath
().
length
()
+
3
;
totalSize
+=
cfi
->
size
()
+
cfi
->
absFilePath
().
length
()
+
4
;
QString
name
=
cfi
->
fileName
();
QString
name
=
cfi
->
fileName
();
if
(
fnDict
)
if
(
fnDict
)
{
{
...
@@ -3306,7 +3475,7 @@ int readFileOrDirectory(const char *s,
...
@@ -3306,7 +3475,7 @@ int readFileOrDirectory(const char *s,
}
}
else
if
(
fi
.
isFile
())
else
if
(
fi
.
isFile
())
{
{
totalSize
+=
fi
.
size
()
+
fi
.
absFilePath
().
length
()
+
3
;
//readFile(&fi,fiList,input);
totalSize
+=
fi
.
size
()
+
fi
.
absFilePath
().
length
()
+
4
;
//readFile(&fi,fiList,input);
//fiList->inSort(new FileInfo(fi));
//fiList->inSort(new FileInfo(fi));
QString
name
=
fi
.
fileName
();
QString
name
=
fi
.
fileName
();
if
(
fnDict
)
if
(
fnDict
)
...
@@ -3646,16 +3815,19 @@ int main(int argc,char **argv)
...
@@ -3646,16 +3815,19 @@ int main(int argc,char **argv)
msg
(
"Searching for enumerations...
\n
"
);
msg
(
"Searching for enumerations...
\n
"
);
findEnums
(
root
);
findEnums
(
root
);
findEnumDocumentation
(
root
);
findEnumDocumentation
(
root
);
// msg("Searching for function prototypes...\n");
// msg("Searching for function prototypes...\n");
// findPrototypes(root); // may introduce new members !
// findPrototypes(root); // may introduce new members !
msg
(
"Searching for member function documentation...
\n
"
);
msg
(
"Searching for member function documentation...
\n
"
);
findMemberDocumentation
(
root
);
// may introduce new members !
findMemberDocumentation
(
root
);
// may introduce new members !
msg
(
"Freeing entry tree
\n
"
);
msg
(
"Freeing entry tree
\n
"
);
delete
root
;
delete
root
;
msg
(
"Determining which enums are documented
\n
"
);
findDocumentedEnumValues
();
msg
(
"Computing member references...
\n
"
);
msg
(
"Computing member references...
\n
"
);
computeMemberReferences
();
computeMemberReferences
();
...
@@ -3678,18 +3850,22 @@ int main(int argc,char **argv)
...
@@ -3678,18 +3850,22 @@ int main(int argc,char **argv)
// If the result is 0 we do not generate the lists and omit the
// If the result is 0 we do not generate the lists and omit the
// corresponding links in the index.
// corresponding links in the index.
msg
(
"Counting data structures...
\n
"
);
msg
(
"Counting data structures...
\n
"
);
annotatedClasses
=
countAnnotatedClasses
();
annotatedClasses
=
countAnnotatedClasses
();
hierarchyClasses
=
countClassHierarchy
();
hierarchyClasses
=
countClassHierarchy
();
documentedMembers
=
countMemberList
();
documentedMembers
=
countClassMembers
();
documentedFunctions
=
countFunctionList
();
documentedFunctions
=
countFileMembers
();
documentedFiles
=
countFileList
();
documentedFiles
=
countFiles
();
documentedGroups
=
countGroupList
();
documentedGroups
=
countGroups
();
documentedNamespaces
=
countNamespaceList
();
documentedNamespaces
=
countNamespaces
();
documentedNamespaceMembers
=
countNamespaceMembers
();
// compute the shortest possible names of all files
// compute the shortest possible names of all files
// without loosing the uniqueness of the file names.
// without loosing the uniqueness of the file names.
msg
(
"Generating disk names...
\n
"
);
msg
(
"Generating disk names...
\n
"
);
inputNameList
.
generateDiskNames
();
inputNameList
.
generateDiskNames
();
msg
(
"Resolving user defined references...
\n
"
);
resolveUserReferences
();
msg
(
"Generating example documentation...
\n
"
);
msg
(
"Generating example documentation...
\n
"
);
generateExampleDocs
();
generateExampleDocs
();
...
@@ -3715,9 +3891,12 @@ int main(int argc,char **argv)
...
@@ -3715,9 +3891,12 @@ int main(int argc,char **argv)
msg
(
"Generating example index...
\n
"
);
msg
(
"Generating example index...
\n
"
);
writeExampleIndex
(
*
outputList
);
writeExampleIndex
(
*
outputList
);
msg
(
"Generating f
unction
index...
\n
"
);
msg
(
"Generating f
ile member
index...
\n
"
);
writeF
unction
Index
(
*
outputList
);
writeF
ileMember
Index
(
*
outputList
);
msg
(
"Generating namespace member index...
\n
"
);
writeNamespaceMemberIndex
(
*
outputList
);
// msg("Generating define index...\n");
// msg("Generating define index...\n");
// writeDefineIndex(*outputList);
// writeDefineIndex(*outputList);
...
@@ -3730,17 +3909,17 @@ int main(int argc,char **argv)
...
@@ -3730,17 +3909,17 @@ int main(int argc,char **argv)
msg
(
"Generating style sheet...
\n
"
);
msg
(
"Generating style sheet...
\n
"
);
outputList
->
writeStyleInfo
(
0
);
// write first part
outputList
->
writeStyleInfo
(
0
);
// write first part
outputList
->
disableAllBut
(
OutputGenerator
::
Latex
);
outputList
->
disableAllBut
(
OutputGenerator
::
Latex
);
parse
Doc
(
*
outputList
,
0
,
0
,
parse
Text
(
*
outputList
,
theTranslator
->
trGeneratedAt
(
dateToString
(
TRUE
),
projectName
)
theTranslator
->
trGeneratedAt
(
dateToString
(
TRUE
),
projectName
)
);
);
outputList
->
writeStyleInfo
(
1
);
// write second part
outputList
->
writeStyleInfo
(
1
);
// write second part
parse
Doc
(
*
outputList
,
0
,
0
,
theTranslator
->
trWrittenBy
());
parse
Text
(
*
outputList
,
theTranslator
->
trWrittenBy
());
outputList
->
writeStyleInfo
(
2
);
// write third part
outputList
->
writeStyleInfo
(
2
);
// write third part
parse
Doc
(
*
outputList
,
0
,
0
,
parse
Text
(
*
outputList
,
theTranslator
->
trGeneratedAt
(
dateToString
(
TRUE
),
projectName
)
theTranslator
->
trGeneratedAt
(
dateToString
(
TRUE
),
projectName
)
);
);
outputList
->
writeStyleInfo
(
3
);
// write fourth part
outputList
->
writeStyleInfo
(
3
);
// write fourth part
parse
Doc
(
*
outputList
,
0
,
0
,
theTranslator
->
trWrittenBy
());
parse
Text
(
*
outputList
,
theTranslator
->
trWrittenBy
());
outputList
->
writeStyleInfo
(
4
);
// write last part
outputList
->
writeStyleInfo
(
4
);
// write last part
outputList
->
enableAll
();
outputList
->
enableAll
();
...
...
src/doxygen.h
View file @
e04496cb
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
#include "define.h"
#include "define.h"
#include "namespacedef.h"
#include "namespacedef.h"
#include "formula.h"
#include "formula.h"
#include "section.h"
struct
PageInfo
struct
PageInfo
{
{
...
@@ -72,23 +73,12 @@ class BufStr : public QString
...
@@ -72,23 +73,12 @@ class BufStr : public QString
const
int
spareRoom
;
// 10Kb extra room to avoid frequent resizing
const
int
spareRoom
;
// 10Kb extra room to avoid frequent resizing
};
};
struct
SectionInfo
{
SectionInfo
(
const
char
*
n
,
const
char
*
l
,
const
char
*
t
,
bool
sub
)
{
pageName
=
n
;
label
=
l
;
title
=
t
;
isSubsection
=
sub
;
}
QString
pageName
;
QString
label
;
QString
title
;
bool
isSubsection
;
};
typedef
QList
<
QString
>
StringList
;
typedef
QList
<
QString
>
StringList
;
typedef
QDict
<
MemberDef
>
MemberDict
;
typedef
QDict
<
MemberDef
>
MemberDict
;
typedef
QDict
<
ClassDef
>
ClassDict
;
typedef
QDict
<
ClassDef
>
ClassDict
;
typedef
QDict
<
FileDef
>
FileDict
;
typedef
QDict
<
FileDef
>
FileDict
;
typedef
QDict
<
QString
>
StringDict
;
typedef
QDict
<
QString
>
StringDict
;
typedef
QDict
<
PageInfo
>
PageDict
;
typedef
QDict
<
PageInfo
>
PageDict
;
typedef
QDict
<
SectionInfo
>
SectionDict
;
typedef
QDict
<
GroupDef
>
GroupDict
;
typedef
QDict
<
GroupDef
>
GroupDict
;
extern
const
char
*
getOverloadDocs
();
extern
const
char
*
getOverloadDocs
();
...
@@ -118,6 +108,7 @@ extern FileList includeFiles;
...
@@ -118,6 +108,7 @@ extern FileList includeFiles;
extern
StringDict
typedefDict
;
extern
StringDict
typedefDict
;
extern
GroupList
groupList
;
extern
GroupList
groupList
;
extern
NamespaceList
namespaceList
;
extern
NamespaceList
namespaceList
;
extern
NamespaceDict
namespaceDict
;
extern
FormulaList
formulaList
;
extern
FormulaList
formulaList
;
extern
FormulaDict
formulaDict
;
extern
FormulaDict
formulaDict
;
extern
FormulaDict
formulaNameDict
;
extern
FormulaDict
formulaNameDict
;
...
@@ -130,5 +121,6 @@ extern int documentedDefines;
...
@@ -130,5 +121,6 @@ extern int documentedDefines;
extern
int
documentedFiles
;
extern
int
documentedFiles
;
extern
int
documentedGroups
;
extern
int
documentedGroups
;
extern
int
documentedNamespaces
;
extern
int
documentedNamespaces
;
extern
int
documentedNamespaceMembers
;
#endif
#endif
src/doxygen.pro
View file @
e04496cb
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
# TMake project file for doxygen
# TMake project file for doxygen
TEMPLATE
=
doxygen
.
t
TEMPLATE
=
doxygen
.
t
CONFIG
=
console
qt
warn_on
release
#
debug
CONFIG
=
console
qt
warn_on
release
#
debug
HEADERS
=
doxygen
.
h
scanner
.
h
classdef
.
h
classlist
.
h
memberdef
.
h
\
HEADERS
=
doxygen
.
h
scanner
.
h
classdef
.
h
classlist
.
h
memberdef
.
h
\
membername
.
h
index
.
h
memberlist
.
h
definition
.
h
\
membername
.
h
index
.
h
memberlist
.
h
definition
.
h
\
entry
.
h
logos
.
h
instdox
.
h
message
.
h
code
.
h
\
entry
.
h
logos
.
h
instdox
.
h
message
.
h
code
.
h
\
...
...
src/doxytag.l
View file @
e04496cb
...
@@ -251,7 +251,8 @@ QString unhtmlify(const char *str)
...
@@ -251,7 +251,8 @@ QString unhtmlify(const char *str)
}
}
<SearchWords>[a-z_A-Z0-9]+ {
<SearchWords>[a-z_A-Z0-9]+ {
docAnchor = yytext;
docAnchor = yytext;
if (docAnchor=="details")
if (docAnchor=="details" ||
docAnchor=="_details")
{
{
docRefName=className.copy();
docRefName=className.copy();
addReference();
addReference();
...
...
src/entry.cpp
View file @
e04496cb
...
@@ -29,6 +29,8 @@ Entry::Entry()
...
@@ -29,6 +29,8 @@ Entry::Entry()
extends
->
setAutoDelete
(
TRUE
);
extends
->
setAutoDelete
(
TRUE
);
groups
=
new
QList
<
QString
>
;
groups
=
new
QList
<
QString
>
;
groups
->
setAutoDelete
(
TRUE
);
groups
->
setAutoDelete
(
TRUE
);
anchors
=
new
QList
<
QString
>
;
anchors
->
setAutoDelete
(
TRUE
);
argList
=
new
ArgumentList
;
argList
=
new
ArgumentList
;
argList
->
setAutoDelete
(
TRUE
);
argList
->
setAutoDelete
(
TRUE
);
//printf("Entry::Entry() tArgList=0\n");
//printf("Entry::Entry() tArgList=0\n");
...
@@ -66,6 +68,8 @@ Entry::Entry(const Entry &e)
...
@@ -66,6 +68,8 @@ Entry::Entry(const Entry &e)
extends
->
setAutoDelete
(
TRUE
);
extends
->
setAutoDelete
(
TRUE
);
groups
=
new
QList
<
QString
>
;
groups
=
new
QList
<
QString
>
;
groups
->
setAutoDelete
(
TRUE
);
groups
->
setAutoDelete
(
TRUE
);
anchors
=
new
QList
<
QString
>
;
anchors
->
setAutoDelete
(
TRUE
);
argList
=
new
ArgumentList
;
argList
=
new
ArgumentList
;
argList
->
setAutoDelete
(
TRUE
);
argList
->
setAutoDelete
(
TRUE
);
//printf("Entry::Entry(copy) tArgList=0\n");
//printf("Entry::Entry(copy) tArgList=0\n");
...
@@ -94,6 +98,12 @@ Entry::Entry(const Entry &e)
...
@@ -94,6 +98,12 @@ Entry::Entry(const Entry &e)
{
{
groups
->
append
(
new
QString
(
*
s
));
groups
->
append
(
new
QString
(
*
s
));
}
}
QListIterator
<
QString
>
sli2
(
*
e
.
anchors
);
for
(;(
s
=
sli2
.
current
());
++
sli2
)
{
anchors
->
append
(
new
QString
(
*
s
));
}
// deep copy argument list
// deep copy argument list
QListIterator
<
Argument
>
ali
(
*
e
.
argList
);
QListIterator
<
Argument
>
ali
(
*
e
.
argList
);
...
@@ -128,6 +138,7 @@ Entry::~Entry()
...
@@ -128,6 +138,7 @@ Entry::~Entry()
delete
sublist
;
delete
sublist
;
delete
extends
;
delete
extends
;
delete
groups
;
delete
groups
;
delete
anchors
;
delete
argList
;
delete
argList
;
//printf("Entry::~Entry() tArgList=%p\n",tArgList);
//printf("Entry::~Entry() tArgList=%p\n",tArgList);
delete
tArgList
;
delete
tArgList
;
...
@@ -177,6 +188,7 @@ void Entry::reset()
...
@@ -177,6 +188,7 @@ void Entry::reset()
sublist
->
clear
();
sublist
->
clear
();
extends
->
clear
();
extends
->
clear
();
groups
->
clear
();
groups
->
clear
();
anchors
->
clear
();
argList
->
clear
();
argList
->
clear
();
if
(
tArgList
)
{
delete
tArgList
;
tArgList
=
0
;
}
if
(
tArgList
)
{
delete
tArgList
;
tArgList
=
0
;
}
}
}
...
@@ -211,6 +223,13 @@ int Entry::getSize()
...
@@ -211,6 +223,13 @@ int Entry::getSize()
size
+=
s
->
length
()
+
1
;
size
+=
s
->
length
()
+
1
;
s
=
groups
->
next
();
s
=
groups
->
next
();
}
}
s
=
anchors
->
first
();
while
(
s
)
{
size
+=
sizeof
(
QLNode
);
size
+=
s
->
length
()
+
1
;
s
=
anchors
->
next
();
}
Entry
*
e
=
sublist
->
first
();
Entry
*
e
=
sublist
->
first
();
while
(
e
)
while
(
e
)
{
{
...
...
src/entry.h
View file @
e04496cb
...
@@ -140,6 +140,7 @@ class Entry
...
@@ -140,6 +140,7 @@ class Entry
QList
<
Entry
>
*
sublist
;
// entries that are children of this one
QList
<
Entry
>
*
sublist
;
// entries that are children of this one
QList
<
BaseInfo
>
*
extends
;
// list of base classes
QList
<
BaseInfo
>
*
extends
;
// list of base classes
QList
<
QString
>
*
groups
;
// list of groups this entry belongs to
QList
<
QString
>
*
groups
;
// list of groups this entry belongs to
QList
<
QString
>
*
anchors
;
// list of anchors defined in this entry
QString
fileName
;
// file this entry was extracted from
QString
fileName
;
// file this entry was extracted from
int
startLine
;
// start line of entry in the source
int
startLine
;
// start line of entry in the source
int
num
;
int
num
;
...
...
src/filedef.cpp
View file @
e04496cb
...
@@ -69,7 +69,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -69,7 +69,7 @@ void FileDef::writeDocumentation(OutputList &ol)
QString
pageTitle
=
name
()
+
" File Reference"
;
QString
pageTitle
=
name
()
+
" File Reference"
;
startFile
(
ol
,
diskname
,
pageTitle
);
startFile
(
ol
,
diskname
,
pageTitle
);
startTitle
(
ol
);
startTitle
(
ol
);
ol
.
docify
(
pageTitle
);
parseText
(
ol
,
theTranslator
->
trFileReference
(
name
())
);
endTitle
(
ol
,
name
());
endTitle
(
ol
,
name
());
//ol.newParagraph();
//ol.newParagraph();
...
@@ -86,8 +86,8 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -86,8 +86,8 @@ void FileDef::writeDocumentation(OutputList &ol)
ol
+=
briefOutput
;
ol
+=
briefOutput
;
ol
.
writeString
(
"
\n
"
);
ol
.
writeString
(
"
\n
"
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
startTextLink
(
0
,
"details"
);
ol
.
startTextLink
(
0
,
"
_
details"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMore
());
parse
Text
(
ol
,
theTranslator
->
trMore
());
ol
.
endTextLink
();
ol
.
endTextLink
();
ol
.
enableAll
();
ol
.
enableAll
();
}
}
...
@@ -96,6 +96,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -96,6 +96,7 @@ void FileDef::writeDocumentation(OutputList &ol)
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
writeSynopsis
();
ol
.
writeSynopsis
();
ol
.
startMemberSections
();
if
(
classList
->
count
()
>
0
)
if
(
classList
->
count
()
>
0
)
{
{
ClassDef
*
cd
=
classList
->
first
();
ClassDef
*
cd
=
classList
->
first
();
...
@@ -111,7 +112,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -111,7 +112,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if
(
!
found
)
if
(
!
found
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trCompounds
());
parse
Text
(
ol
,
theTranslator
->
trCompounds
());
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
ol
.
startMemberList
();
ol
.
startMemberList
();
found
=
TRUE
;
found
=
TRUE
;
...
@@ -124,10 +125,11 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -124,10 +125,11 @@ void FileDef::writeDocumentation(OutputList &ol)
case
ClassDef
:
:
Union
:
ol
.
writeString
(
"union"
);
break
;
case
ClassDef
:
:
Union
:
ol
.
writeString
(
"union"
);
break
;
}
}
ol
.
writeString
(
" "
);
ol
.
writeString
(
" "
);
ol
.
insertMemberAlign
();
if
(
cd
->
hasDocumentation
())
if
(
cd
->
hasDocumentation
())
{
{
ol
.
writeObjectLink
(
cd
->
getReference
(),
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFil
e
(),
cd
->
getOutputFileBas
e
(),
0
,
0
,
cd
->
name
()
cd
->
name
()
);
);
...
@@ -146,6 +148,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -146,6 +148,7 @@ void FileDef::writeDocumentation(OutputList &ol)
}
}
writeMemberDecs
(
ol
,
0
,
0
,
this
,
0
,
0
,
memList
);
writeMemberDecs
(
ol
,
0
,
0
,
this
,
0
,
0
,
memList
);
ol
.
endMemberSections
();
//doc=doc.stripWhiteSpace();
//doc=doc.stripWhiteSpace();
//int bl=brief.length();
//int bl=brief.length();
...
@@ -153,9 +156,12 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -153,9 +156,12 @@ void FileDef::writeDocumentation(OutputList &ol)
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
())
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
writeAnchor
(
"details"
);
bool
latexOn
=
ol
.
isEnabled
(
OutputGenerator
::
Latex
);
if
(
latexOn
)
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
writeAnchor
(
"_details"
);
if
(
latexOn
)
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trDetailedDescription
());
parse
Text
(
ol
,
theTranslator
->
trDetailedDescription
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
if
(
!
briefDescription
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
())
{
{
...
@@ -177,7 +183,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -177,7 +183,7 @@ void FileDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trDefineDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trDefineDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Define
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Define
);
}
}
...
@@ -186,7 +192,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -186,7 +192,7 @@ void FileDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFunctionPrototypeDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trFunctionPrototypeDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Prototype
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Prototype
);
}
}
...
@@ -195,7 +201,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -195,7 +201,7 @@ void FileDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trTypedefDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trTypedefDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Typedef
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Typedef
);
}
}
...
@@ -204,7 +210,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -204,7 +210,7 @@ void FileDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trEnumerationTypeDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trEnumerationTypeDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Enumeration
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Enumeration
);
}
}
...
@@ -213,7 +219,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -213,7 +219,7 @@ void FileDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trEnumerationValueDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trEnumerationValueDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
EnumValue
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
EnumValue
);
}
}
...
@@ -222,7 +228,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -222,7 +228,7 @@ void FileDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFunctionDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trFunctionDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Function
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Function
);
}
}
...
@@ -231,7 +237,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -231,7 +237,7 @@ void FileDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trVariableDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trVariableDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Variable
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Variable
);
}
}
...
@@ -239,9 +245,9 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -239,9 +245,9 @@ void FileDef::writeDocumentation(OutputList &ol)
// write Author section (Man only)
// write Author section (Man only)
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trAuthor
());
parse
Text
(
ol
,
theTranslator
->
trAuthor
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trGeneratedAutomatically
(
projectName
));
parse
Text
(
ol
,
theTranslator
->
trGeneratedAutomatically
(
projectName
));
ol
.
enableAll
();
ol
.
enableAll
();
endFile
(
ol
);
endFile
(
ol
);
}
}
...
...
src/filedef.h
View file @
e04496cb
...
@@ -62,7 +62,8 @@ class FileDef : public Definition
...
@@ -62,7 +62,8 @@ class FileDef : public Definition
}
}
/*! Returns nameString with all slashes replaced by underscores. */
/*! Returns nameString with all slashes replaced by underscores. */
const
char
*
diskName
()
const
{
return
diskname
;
}
//const char *diskName() const { return diskname; }
QString
getOutputFileBase
()
const
{
return
diskname
;
}
/*! Returns the absolute path including the file name. */
/*! Returns the absolute path including the file name. */
QString
absFilePath
()
const
{
return
filepath
;
}
QString
absFilePath
()
const
{
return
filepath
;
}
...
...
src/groupdef.cpp
View file @
e04496cb
...
@@ -90,20 +90,20 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -90,20 +90,20 @@ void GroupDef::writeDocumentation(OutputList &ol)
ol
+=
briefOutput
;
ol
+=
briefOutput
;
ol
.
writeString
(
"
\n
"
);
ol
.
writeString
(
"
\n
"
);
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
startTextLink
(
0
,
"details"
);
ol
.
startTextLink
(
0
,
"
_
details"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMore
());
parse
Text
(
ol
,
theTranslator
->
trMore
());
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
enable
(
OutputGenerator
::
Latex
);
}
}
if
(
fileList
->
count
()
>
0
)
if
(
fileList
->
count
()
>
0
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFiles
());
parse
Text
(
ol
,
theTranslator
->
trFiles
());
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
ol
.
startIndexList
();
ol
.
startIndexList
();
FileDef
*
fd
=
fileList
->
first
();
FileDef
*
fd
=
fileList
->
first
();
while
(
fd
)
while
(
fd
)
{
{
ol
.
writeStartAnnoItem
(
"file "
,
fd
->
diskNam
e
(),
0
,
fd
->
name
());
ol
.
writeStartAnnoItem
(
"file "
,
fd
->
getOutputFileBas
e
(),
0
,
fd
->
name
());
ol
.
writeEndAnnoItem
(
fd
->
name
());
ol
.
writeEndAnnoItem
(
fd
->
name
());
fd
=
fileList
->
next
();
fd
=
fileList
->
next
();
}
}
...
@@ -112,7 +112,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -112,7 +112,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
if
(
classList
->
count
()
>
0
)
if
(
classList
->
count
()
>
0
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trCompounds
());
parse
Text
(
ol
,
theTranslator
->
trCompounds
());
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
ol
.
startIndexList
();
ol
.
startIndexList
();
ClassDef
*
cd
=
classList
->
first
();
ClassDef
*
cd
=
classList
->
first
();
...
@@ -125,7 +125,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -125,7 +125,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
case
ClassDef
:
:
Struct
:
type
=
"struct"
;
break
;
case
ClassDef
:
:
Struct
:
type
=
"struct"
;
break
;
case
ClassDef
:
:
Union
:
type
=
"union"
;
break
;
case
ClassDef
:
:
Union
:
type
=
"union"
;
break
;
}
}
ol
.
writeStartAnnoItem
(
type
,
cd
->
classFil
e
(),
0
,
cd
->
name
());
ol
.
writeStartAnnoItem
(
type
,
cd
->
getOutputFileBas
e
(),
0
,
cd
->
name
());
ol
.
writeEndAnnoItem
(
cd
->
name
());
ol
.
writeEndAnnoItem
(
cd
->
name
());
cd
=
classList
->
next
();
cd
=
classList
->
next
();
}
}
...
@@ -136,9 +136,12 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -136,9 +136,12 @@ void GroupDef::writeDocumentation(OutputList &ol)
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
())
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
writeAnchor
(
"details"
);
bool
latexOn
=
ol
.
isEnabled
(
OutputGenerator
::
Latex
);
if
(
latexOn
)
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
writeAnchor
(
"_details"
);
if
(
latexOn
)
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trDetailedDescription
());
parse
Text
(
ol
,
theTranslator
->
trDetailedDescription
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
// repeat brief description
// repeat brief description
if
(
!
briefDescription
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
())
...
...
src/groupdef.h
View file @
e04496cb
...
@@ -35,7 +35,8 @@ class GroupDef : public Definition
...
@@ -35,7 +35,8 @@ class GroupDef : public Definition
public
:
public
:
GroupDef
(
const
char
*
name
,
const
char
*
title
);
GroupDef
(
const
char
*
name
,
const
char
*
title
);
~
GroupDef
();
~
GroupDef
();
const
char
*
groupFile
()
const
{
return
fileName
;
}
//const char *groupFile() const { return fileName; }
QString
getOutputFileBase
()
const
{
return
fileName
;
}
const
char
*
groupTitle
()
const
{
return
title
;
}
const
char
*
groupTitle
()
const
{
return
title
;
}
void
addFile
(
const
FileDef
*
def
);
void
addFile
(
const
FileDef
*
def
);
void
addClass
(
const
ClassDef
*
def
);
void
addClass
(
const
ClassDef
*
def
);
...
...
src/htmlgen.cpp
View file @
e04496cb
...
@@ -51,77 +51,10 @@ void HtmlGenerator::init()
...
@@ -51,77 +51,10 @@ void HtmlGenerator::init()
writeLogo
(
htmlOutputDir
);
writeLogo
(
htmlOutputDir
);
}
}
//void HtmlGenerator::generateExternalIndex()
//{
// //printf("Generating external index...\n");
// QFile f;
// f.setName(htmlOutputDir+"/header.html");
// if (f.open(IO_WriteOnly))
// {
// QTextStream tt(&f);
// if (header.length()==0)
// {
// tt << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
// "<html><head><meta name=\"robots\" content=\"noindex\">\n"
// "<title>Doxysearch</title>\n"
// "</head><body bgcolor=\"#ffffff\">\n";
// }
// else
// {
// tt << header;
// }
// if (!noIndexFlag)
// {
// tt << "<center>";
// if (documentedGroups>0)
// tt << "<a doxygen=\"_doc:\" href=\"/modules.html\">Modules</a> ";
// if (hierarchyClasses>0)
// tt << "<a doxygen=\"_doc:\" href=\"/hierarchy.html\">Class hierarchy</a> ";
// if (annotatedClasses>0)
// tt << "<a doxygen=\"_doc:\" href=\"/annotated.html\">Compound list</a> ";
// if (documentedFiles>0)
// tt << "<a doxygen=\"_doc:\" href=\"/files.html\">File list</a> ";
// if (includeFiles.count()>0)
// tt << "<a doxygen=\"_doc:\" href=\"/headers.html\">Header files</a> ";
// if (documentedMembers>0)
// tt << "<a doxygen=\"_doc:\" href=\"/functions.html\">Compound Members</a> ";
// if (documentedFunctions>0)
// tt << "<a doxygen=\"_doc:\" href=\"/globals.html\">File Members</a> ";
// if (pageList.count()>0)
// tt << "<a doxygen=\"_doc:\" href=\"/pages.html\">Related Pages</a> ";
// if (exampleList.count()>0)
// tt << "<a doxygen=\"_doc:\" href=\"/examples.html\">Examples</a> ";
// if (searchEngineFlag)
// tt << "<a doxygen=\"_cgi:\" href=\"\">Search</a>";
// tt << endl << "</center><hr>" << endl;
// }
// }
// f.close();
//
// f.setName(htmlOutputDir+"/footer.html");
// if (f.open(IO_WriteOnly))
// {
// QTextStream tt(&f);
// if (footer.length()==0)
// {
// tt << "<hr><address><small>Generated at " << dateToString(TRUE);
// if (projectName.length()>0) tt << " for " << projectName;
// tt << " by <a href=\"http://www.stack.nl/~dimitri/doxygen/index.html\">"
// "doxygen</a> written by <a href="
// "\"mailto:dimitri@stack.nl\">Dimitri van Heesch</a>, © "
// "1997-1999</small></address>\n</body>\n</html>\n";
// }
// else
// {
// tt << footer;
// }
// }
// f.close();
//}
void
HtmlGenerator
::
startFile
(
const
char
*
name
,
const
char
*
title
,
bool
external
)
void
HtmlGenerator
::
startFile
(
const
char
*
name
,
const
char
*
title
,
bool
external
)
{
{
QString
fileName
=
name
;
QString
fileName
=
name
;
lastTitle
=
title
;
if
(
fileName
.
right
(
5
)
!=
".html"
)
fileName
+=
".html"
;
if
(
fileName
.
right
(
5
)
!=
".html"
)
fileName
+=
".html"
;
startPlainFile
(
fileName
);
startPlainFile
(
fileName
);
if
(
header
.
length
()
==
0
)
if
(
header
.
length
()
==
0
)
...
@@ -139,34 +72,14 @@ void HtmlGenerator::startFile(const char *name,const char *title,bool external)
...
@@ -139,34 +72,14 @@ void HtmlGenerator::startFile(const char *name,const char *title,bool external)
}
}
else
else
{
{
t
<<
header
;
t
<<
substitute
(
substitute
(
substitute
(
header
,
"$title"
,
lastTitle
),
"$datetime"
,
dateToString
(
TRUE
)
),
"$date"
,
dateToString
(
FALSE
)
);
}
}
// if (!noIndexFlag)
// {
// t << "<center>";
// if (documentedGroups>0)
// t << "<a href=\"modules.html\">Modules</a> ";
// if (hierarchyClasses>0)
// t << "<a href=\"hierarchy.html\">Class hierarchy</a> ";
// if (annotatedClasses>0)
// t << "<a href=\"annotated.html\">Compound list</a> ";
// if (documentedFiles>0)
// t << "<a href=\"files.html\">File list</a> ";
// if (includeFiles.count()>0)
// t << "<a href=\"headers.html\">Header files</a> ";
// if (documentedMembers>0)
// t << "<a href=\"functions.html\">Compound Members</a> ";
// if (documentedFunctions>0)
// t << "<a href=\"globals.html\">File Members</a> ";
// if (pageList.count()>0)
// t << "<a href=\"pages.html\">Related Pages</a> ";
// if (exampleList.count()>0)
// t << "<a href=\"examples.html\">Examples</a> ";
// if (searchEngineFlag)
// t << "<a doxygen=\"_cgi:\" href=\"\">Search</a>";
// t << endl << "</center><hr>" << endl;
// }
}
}
void
HtmlGenerator
::
startQuickIndexItem
(
const
char
*
s
,
const
char
*
l
)
void
HtmlGenerator
::
startQuickIndexItem
(
const
char
*
s
,
const
char
*
l
)
...
@@ -189,7 +102,13 @@ void HtmlGenerator::writeFooter(int part,bool external)
...
@@ -189,7 +102,13 @@ void HtmlGenerator::writeFooter(int part,bool external)
if
(
footer
.
length
()
==
0
)
if
(
footer
.
length
()
==
0
)
t
<<
"<hr><address><small>"
;
t
<<
"<hr><address><small>"
;
else
else
t
<<
footer
;
t
<<
substitute
(
substitute
(
substitute
(
footer
,
"$title"
,
lastTitle
),
"$datetime"
,
dateToString
(
TRUE
)
),
"$date"
,
dateToString
(
FALSE
)
);
break
;
break
;
case
1
:
case
1
:
if
(
footer
.
length
()
==
0
)
if
(
footer
.
length
()
==
0
)
...
@@ -219,24 +138,6 @@ void HtmlGenerator::writeFooter(int part,bool external)
...
@@ -219,24 +138,6 @@ void HtmlGenerator::writeFooter(int part,bool external)
void
HtmlGenerator
::
endFile
()
void
HtmlGenerator
::
endFile
()
{
{
// if (footer.length()==0)
// {
// t << "<hr><address><small>Generated at " << dateToString(TRUE);
// if (projectName.length()>0)
// {
// t << " for ";
// docify(projectName);
// }
// t << " by <a href=\"http://www.stack.nl/~dimitri/doxygen/index.html\">"
// "<img src=\"doxygen.gif\" alt=\"doxygen\" align=center border=0 "
// "width=118 height=53></a> written by <a href="
// "\"mailto:dimitri@stack.nl\">Dimitri van Heesch</a>, © "
// "1997-1999</small></address>\n</body>\n</html>\n";
// }
// else
// {
// t << footer;
// }
endPlainFile
();
endPlainFile
();
}
}
...
@@ -250,45 +151,6 @@ void HtmlGenerator::endProjectNumber()
...
@@ -250,45 +151,6 @@ void HtmlGenerator::endProjectNumber()
t
<<
"</h3>"
;
t
<<
"</h3>"
;
}
}
//void HtmlGenerator::writeIndex()
//{
// startFile("index.html","Main Index");
// t << "<h1 align=center>";
// docify(projectName);
// t << " Documentation</h1>"
// << "<p>" << endl << "<p>" << endl;
// if (!projectNumber.isEmpty())
// {
// t << "<h3 align=center>";
// docify(projectNumber);
// t << "</h3>\n<p>\n<p>\n";
// }
// if (noIndexFlag)
// {
// t << "<ul>" << endl;
// if (hierarchyClasses>0)
// t << "<li><a href=\"hierarchy.html\">Class hierarchy</a>" << endl;
// if (annotatedClasses>0)
// t << "<li><a href=\"annotated.html\">Compound list</a>" << endl;
// if (documentedFiles>0)
// t << "<li><a href=\"files.html\">File list</a>" << endl;
// if (includeFiles.count()>0)
// t << "<li><a href=\"headers.html\">Header files</a>" << endl;
// if (documentedMembers>0)
// t << "<li><a href=\"functions.html\">Compound Members</a>" << endl;
// if (documentedFunctions>0)
// t << "<li><a href=\"globals.html\">File Members</a>" << endl;
// if (pageList.count()>0)
// t << "<li><a href=\"pageList.html\">Related Pages</a>" << endl;
// if (exampleList.count()>0)
// t << "<li><a href=\"examples.html\">Examples</a>" << endl;
// if (searchEngineFlag)
// t << "<li><a doxygen=\"_cgi:\" href=\"\">Search</a>" << endl;
// t << "</ul>" << endl;
// }
// endFile();
//}
void
HtmlGenerator
::
writeStyleInfo
(
int
part
)
void
HtmlGenerator
::
writeStyleInfo
(
int
part
)
{
{
if
(
part
==
0
)
if
(
part
==
0
)
...
@@ -414,9 +276,9 @@ void HtmlGenerator::writeSectionRef(const char *name,const char *lab,
...
@@ -414,9 +276,9 @@ void HtmlGenerator::writeSectionRef(const char *name,const char *lab,
{
{
QString
refName
=
name
;
QString
refName
=
name
;
if
(
refName
.
right
(
5
)
!=
".html"
)
refName
+=
".html"
;
if
(
refName
.
right
(
5
)
!=
".html"
)
refName
+=
".html"
;
t
<<
"
"
<a href=
\"
"
<<
refName
<<
"#"
<<
lab
<<
"
\"
>"
;
t
<<
"<a href=
\"
"
<<
refName
<<
"#"
<<
lab
<<
"
\"
>"
;
docify
(
title
);
docify
(
title
);
t
<<
"</a>
"
"
;
t
<<
"</a>"
;
}
}
void
HtmlGenerator
::
writeSectionRefItem
(
const
char
*
name
,
const
char
*
lab
,
void
HtmlGenerator
::
writeSectionRefItem
(
const
char
*
name
,
const
char
*
lab
,
...
@@ -429,12 +291,12 @@ void HtmlGenerator::writeSectionRefItem(const char *name,const char *lab,
...
@@ -429,12 +291,12 @@ void HtmlGenerator::writeSectionRefItem(const char *name,const char *lab,
t
<<
"</a>"
;
t
<<
"</a>"
;
}
}
//void HtmlGenerator::docify(const char *str)
void
HtmlGenerator
::
writeSectionRefAnchor
(
const
char
*
name
,
const
char
*
lab
,
//{
const
char
*
title
)
// docifyStatic(t,str);
{
//}
writeSectionRef
(
name
,
lab
,
title
);
}
//void HtmlGenerator::docifyStatic(QTextStream &t,const char *str)
void
HtmlGenerator
::
docify
(
const
char
*
str
)
void
HtmlGenerator
::
docify
(
const
char
*
str
)
{
{
if
(
str
)
if
(
str
)
...
@@ -510,3 +372,121 @@ void HtmlGenerator::writeFormula(const char *n,const char *text)
...
@@ -510,3 +372,121 @@ void HtmlGenerator::writeFormula(const char *n,const char *text)
t
<<
"<img align=
\"
top
\"
src=
\"
"
<<
n
<<
"
\"
>"
<<
endl
;
t
<<
"<img align=
\"
top
\"
src=
\"
"
<<
n
<<
"
\"
>"
<<
endl
;
if
(
text
&&
text
[
0
]
==
'\\'
)
t
<<
"</center></p>"
<<
endl
;
if
(
text
&&
text
[
0
]
==
'\\'
)
t
<<
"</center></p>"
<<
endl
;
}
}
void
HtmlGenerator
::
startMemberList
()
{
if
(
htmlAlignMemberFlag
)
{
//t << endl << "<p><table border=0 cellspacing=2 cellpadding=0>" << endl;
}
else
{
t
<<
"<ul>"
<<
endl
;
}
}
void
HtmlGenerator
::
endMemberList
()
{
if
(
htmlAlignMemberFlag
)
{
//t << "</table>" << endl;
}
else
{
t
<<
"</ul>"
<<
endl
;
}
}
void
HtmlGenerator
::
startMemberItem
()
{
if
(
htmlAlignMemberFlag
)
{
t
<<
"<tr><td align=right valign=top>"
;
}
else
{
t
<<
"<li>"
;
}
}
void
HtmlGenerator
::
insertMemberAlign
()
{
if
(
htmlAlignMemberFlag
)
{
t
<<
"</td><td valign=top>"
;
}
}
void
HtmlGenerator
::
endMemberItem
()
{
if
(
htmlAlignMemberFlag
)
{
t
<<
"</td></tr>"
;
}
t
<<
endl
;
}
void
HtmlGenerator
::
startMemberDescription
()
{
if
(
htmlAlignMemberFlag
)
{
t
<<
"<tr><td></td><td><font size=-1><em>"
;
}
else
{
t
<<
"<dl class=
\"
el
\"
><dd><font size=-1><em>"
;
}
}
void
HtmlGenerator
::
endMemberDescription
()
{
if
(
htmlAlignMemberFlag
)
{
t
<<
"</em></font><br><br></td></tr>"
<<
endl
;
}
else
{
t
<<
"</em></font></dl>"
;
}
}
void
HtmlGenerator
::
startMemberSections
()
{
if
(
htmlAlignMemberFlag
)
{
t
<<
"<table border=0 cellpadding=0 cellspacing=1>"
<<
endl
;
}
}
void
HtmlGenerator
::
endMemberSections
()
{
if
(
htmlAlignMemberFlag
)
{
t
<<
"</table>"
<<
endl
;
}
}
void
HtmlGenerator
::
startMemberHeader
()
{
if
(
htmlAlignMemberFlag
)
{
t
<<
"<tr><td colspan=2><br><h2>"
;
}
else
{
startGroupHeader
();
}
}
void
HtmlGenerator
::
endMemberHeader
()
{
if
(
htmlAlignMemberFlag
)
{
t
<<
"</h2></td></tr>"
<<
endl
;
}
else
{
endGroupHeader
();
}
}
src/htmlgen.h
View file @
e04496cb
...
@@ -81,18 +81,23 @@ class HtmlGenerator : public OutputGenerator
...
@@ -81,18 +81,23 @@ class HtmlGenerator : public OutputGenerator
void
endGroupHeader
();
void
endGroupHeader
();
void
writeListItem
()
{
t
<<
"<li>"
;
}
void
writeListItem
()
{
t
<<
"<li>"
;
}
void
startMemberHeader
()
{
startGroupHeader
();
}
void
startMemberSections
();
void
endMemberHeader
()
{
endGroupHeader
();
}
void
endMemberSections
();
void
startMemberList
()
{
t
<<
"<ul>"
<<
endl
;
}
void
startMemberHeader
();
void
endMemberList
()
{
t
<<
"</ul>"
<<
endl
;
}
void
endMemberHeader
();
void
startMemberItem
()
{
t
<<
"<li>"
;
}
void
startMemberList
();
void
endMemberItem
()
{
t
<<
endl
;
}
void
endMemberList
();
void
startMemberItem
();
void
insertMemberAlign
();
void
endMemberItem
();
void
startMemberDescription
();
void
endMemberDescription
();
void
writeRuler
()
{
t
<<
"<hr>"
;
}
void
writeRuler
()
{
t
<<
"<hr>"
;
}
void
writeAnchor
(
const
char
*
name
)
void
writeAnchor
(
const
char
*
name
)
{
t
<<
"<a name=
\"
"
<<
name
<<
"
\"
></a>"
;
}
{
t
<<
"<a name=
\"
"
<<
name
<<
"
\"
></a>"
;
}
void
startCodeFragment
()
{
t
<<
"<div class=
\"
fragment
\"
><pre>"
;
}
void
startCodeFragment
()
{
t
<<
"<div class=
\"
fragment
\"
><pre>"
;
}
void
endCodeFragment
()
{
t
<<
"</
div></pre
>"
;
}
void
endCodeFragment
()
{
t
<<
"</
pre></div
>"
;
}
void
writeBoldString
(
const
char
*
text
)
void
writeBoldString
(
const
char
*
text
)
{
t
<<
"<b>"
;
docify
(
text
);
t
<<
"</b>"
;
}
{
t
<<
"<b>"
;
docify
(
text
);
t
<<
"</b>"
;
}
void
startEmphasis
()
{
t
<<
"<em>"
;
}
void
startEmphasis
()
{
t
<<
"<em>"
;
}
...
@@ -111,6 +116,7 @@ class HtmlGenerator : public OutputGenerator
...
@@ -111,6 +116,7 @@ class HtmlGenerator : public OutputGenerator
void
writeDoxyAnchor
(
const
char
*
clName
,
const
char
*
anchor
,
void
writeDoxyAnchor
(
const
char
*
clName
,
const
char
*
anchor
,
const
char
*
name
);
const
char
*
name
);
void
writeLatexSpacing
()
{}
void
writeLatexSpacing
()
{}
void
writeLatexLabel
(
const
char
*
,
const
char
*
)
{}
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
const
char
*
path
,
const
char
*
name
);
const
char
*
path
,
const
char
*
name
);
void
writeEndAnnoItem
(
const
char
*
)
{
t
<<
endl
;
}
void
writeEndAnnoItem
(
const
char
*
)
{
t
<<
endl
;
}
...
@@ -139,8 +145,6 @@ class HtmlGenerator : public OutputGenerator
...
@@ -139,8 +145,6 @@ class HtmlGenerator : public OutputGenerator
void
writeGrave
(
char
c
)
{
t
<<
"&"
<<
c
<<
"grave;"
;
}
void
writeGrave
(
char
c
)
{
t
<<
"&"
<<
c
<<
"grave;"
;
}
void
writeCirc
(
char
c
)
{
t
<<
"&"
<<
c
<<
"circ;"
;
}
void
writeCirc
(
char
c
)
{
t
<<
"&"
<<
c
<<
"circ;"
;
}
void
writeTilde
(
char
c
)
{
t
<<
"&"
<<
c
<<
"tilde;"
;
}
void
writeTilde
(
char
c
)
{
t
<<
"&"
<<
c
<<
"tilde;"
;
}
void
startMemberDescription
()
{
t
<<
"<dl class=
\"
el
\"
><dd><font size=-1><em>"
;
}
void
endMemberDescription
()
{
t
<<
"</em></font></dl>"
;
}
void
startDescList
()
{
t
<<
"<dl compact><dt>"
<<
endl
;
}
void
startDescList
()
{
t
<<
"<dl compact><dt>"
<<
endl
;
}
void
endDescTitle
()
{}
void
endDescTitle
()
{}
void
writeDescItem
()
{
t
<<
"<dd>"
<<
endl
;
}
void
writeDescItem
()
{
t
<<
"<dd>"
<<
endl
;
}
...
@@ -148,6 +152,7 @@ class HtmlGenerator : public OutputGenerator
...
@@ -148,6 +152,7 @@ class HtmlGenerator : public OutputGenerator
void
writeSection
(
const
char
*
,
const
char
*
,
bool
);
void
writeSection
(
const
char
*
,
const
char
*
,
bool
);
void
writeSectionRef
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeSectionRef
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeSectionRefItem
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeSectionRefItem
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeSectionRefAnchor
(
const
char
*
,
const
char
*
,
const
char
*
);
void
addToIndex
(
const
char
*
,
const
char
*
)
{}
void
addToIndex
(
const
char
*
,
const
char
*
)
{}
void
startIndent
()
{
t
<<
"<div class=
\"
in
\"
>"
<<
endl
;
}
void
startIndent
()
{
t
<<
"<div class=
\"
in
\"
>"
<<
endl
;
}
void
endIndent
()
{
t
<<
"</div>"
<<
endl
;
}
void
endIndent
()
{
t
<<
"</div>"
<<
endl
;
}
...
@@ -166,6 +171,7 @@ class HtmlGenerator : public OutputGenerator
...
@@ -166,6 +171,7 @@ class HtmlGenerator : public OutputGenerator
private
:
private
:
QString
header
;
QString
header
;
QString
footer
;
QString
footer
;
QString
lastTitle
;
HtmlGenerator
&
operator
=
(
const
HtmlGenerator
&
g
);
HtmlGenerator
&
operator
=
(
const
HtmlGenerator
&
g
);
HtmlGenerator
(
const
HtmlGenerator
&
g
);
HtmlGenerator
(
const
HtmlGenerator
&
g
);
...
...
src/index.cpp
View file @
e04496cb
...
@@ -147,7 +147,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper)
...
@@ -147,7 +147,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper)
//printf("Passed...\n");
//printf("Passed...\n");
if
(
cd
->
hasDocumentation
()
||
cd
->
isReference
())
if
(
cd
->
hasDocumentation
()
||
cd
->
isReference
())
{
{
ol
.
writeIndexItem
(
cd
->
getReference
(),
cd
->
classFil
e
(),
cd
->
name
());
ol
.
writeIndexItem
(
cd
->
getReference
(),
cd
->
getOutputFileBas
e
(),
cd
->
name
());
if
(
cd
->
isReference
())
if
(
cd
->
isReference
())
{
{
ol
.
startTypewriter
();
ol
.
startTypewriter
();
...
@@ -191,7 +191,7 @@ void writeClassHierarchy(OutputList &ol)
...
@@ -191,7 +191,7 @@ void writeClassHierarchy(OutputList &ol)
}
}
if
(
cd
->
hasDocumentation
()
||
cd
->
isReference
())
if
(
cd
->
hasDocumentation
()
||
cd
->
isReference
())
{
{
ol
.
writeIndexItem
(
cd
->
getReference
(),
cd
->
classFil
e
(),
cd
->
name
());
ol
.
writeIndexItem
(
cd
->
getReference
(),
cd
->
getOutputFileBas
e
(),
cd
->
name
());
if
(
cd
->
isReference
())
if
(
cd
->
isReference
())
{
{
ol
.
startTypewriter
();
ol
.
startTypewriter
();
...
@@ -236,9 +236,9 @@ void writeHierarchicalIndex(OutputList &ol)
...
@@ -236,9 +236,9 @@ void writeHierarchicalIndex(OutputList &ol)
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
startFile
(
ol
,
"hierarchy"
,
"Hierarchical Index"
);
startFile
(
ol
,
"hierarchy"
,
"Hierarchical Index"
);
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
0
,
0
,
projectName
+
" "
+
theTranslator
->
trClassHierarchy
());
parse
Text
(
ol
,
projectName
+
" "
+
theTranslator
->
trClassHierarchy
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trClassHierarchyDescription
());
parse
Text
(
ol
,
theTranslator
->
trClassHierarchyDescription
());
ol
.
newParagraph
();
ol
.
newParagraph
();
writeClassHierarchy
(
ol
);
writeClassHierarchy
(
ol
);
endFile
(
ol
);
endFile
(
ol
);
...
@@ -247,7 +247,7 @@ void writeHierarchicalIndex(OutputList &ol)
...
@@ -247,7 +247,7 @@ void writeHierarchicalIndex(OutputList &ol)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
int
countFile
List
()
int
countFile
s
()
{
{
int
count
=
0
;
int
count
=
0
;
FileNameListIterator
fnli
(
inputNameList
);
FileNameListIterator
fnli
(
inputNameList
);
...
@@ -272,10 +272,10 @@ void writeFileIndex(OutputList &ol)
...
@@ -272,10 +272,10 @@ void writeFileIndex(OutputList &ol)
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
startFile
(
ol
,
"files"
,
"File Index"
);
startFile
(
ol
,
"files"
,
"File Index"
);
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
0
,
0
,
projectName
+
" "
+
theTranslator
->
trFileList
());
parse
Text
(
ol
,
projectName
+
" "
+
theTranslator
->
trFileList
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
ol
.
newParagraph
();
ol
.
newParagraph
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFileListDescription
(
extractAllFlag
));
parse
Text
(
ol
,
theTranslator
->
trFileListDescription
(
extractAllFlag
));
ol
.
newParagraph
();
ol
.
newParagraph
();
ol
.
startIndexList
();
ol
.
startIndexList
();
...
@@ -299,7 +299,7 @@ void writeFileIndex(OutputList &ol)
...
@@ -299,7 +299,7 @@ void writeFileIndex(OutputList &ol)
}
}
ol
.
writeStartAnnoItem
(
"file"
,
ol
.
writeStartAnnoItem
(
"file"
,
fd
->
diskNam
e
(),
fd
->
getOutputFileBas
e
(),
path
,
path
,
fd
->
name
()
fd
->
name
()
);
);
...
@@ -314,7 +314,7 @@ void writeFileIndex(OutputList &ol)
...
@@ -314,7 +314,7 @@ void writeFileIndex(OutputList &ol)
else
else
{
{
ol
.
startEmphasis
();
ol
.
startEmphasis
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trNoDescriptionAvailable
());
parse
Text
(
ol
,
theTranslator
->
trNoDescriptionAvailable
());
ol
.
endEmphasis
();
ol
.
endEmphasis
();
}
}
ol
.
docify
(
")"
);
ol
.
docify
(
")"
);
...
@@ -330,15 +330,14 @@ void writeFileIndex(OutputList &ol)
...
@@ -330,15 +330,14 @@ void writeFileIndex(OutputList &ol)
}
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
int
countNamespaces
()
int
countNamespaceList
()
{
{
int
count
=
0
;
int
count
=
0
;
NamespaceListIterator
nli
(
namespaceList
);
NamespaceListIterator
nli
(
namespaceList
);
NamespaceDef
*
nd
;
NamespaceDef
*
nd
;
for
(;(
nd
=
nli
.
current
());
++
nli
)
for
(;(
nd
=
nli
.
current
());
++
nli
)
{
{
if
(
nd
->
hasDocumentation
())
count
++
;
if
(
!
nd
->
getReference
()
&&
nd
->
hasDocumentation
())
count
++
;
}
}
return
count
;
return
count
;
}
}
...
@@ -351,19 +350,19 @@ void writeNamespaceIndex(OutputList &ol)
...
@@ -351,19 +350,19 @@ void writeNamespaceIndex(OutputList &ol)
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
startFile
(
ol
,
"namespaces"
,
"Namespace Index"
);
startFile
(
ol
,
"namespaces"
,
"Namespace Index"
);
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
0
,
0
,
projectName
+
" "
+
theTranslator
->
trNamespaceList
());
parse
Text
(
ol
,
projectName
+
" "
+
theTranslator
->
trNamespaceList
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
ol
.
newParagraph
();
ol
.
newParagraph
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trNamespaceListDescription
(
extractAllFlag
));
parse
Text
(
ol
,
theTranslator
->
trNamespaceListDescription
(
extractAllFlag
));
ol
.
newParagraph
();
ol
.
newParagraph
();
ol
.
startIndexList
();
ol
.
startIndexList
();
NamespaceDef
*
nd
=
namespaceList
.
first
();
NamespaceDef
*
nd
=
namespaceList
.
first
();
while
(
nd
)
while
(
nd
)
{
{
if
(
nd
->
hasDocumentation
())
if
(
!
nd
->
getReference
()
&&
nd
->
hasDocumentation
())
{
{
ol
.
writeStartAnnoItem
(
"namespace"
,
nd
->
namespaceFil
e
(),
0
,
nd
->
name
());
ol
.
writeStartAnnoItem
(
"namespace"
,
nd
->
getOutputFileBas
e
(),
0
,
nd
->
name
());
ol
.
docify
(
" ("
);
ol
.
docify
(
" ("
);
if
(
nd
->
briefDescription
())
if
(
nd
->
briefDescription
())
{
{
...
@@ -375,7 +374,7 @@ void writeNamespaceIndex(OutputList &ol)
...
@@ -375,7 +374,7 @@ void writeNamespaceIndex(OutputList &ol)
else
else
{
{
ol
.
startEmphasis
();
ol
.
startEmphasis
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trNoDescriptionAvailable
());
parse
Text
(
ol
,
theTranslator
->
trNoDescriptionAvailable
());
ol
.
endEmphasis
();
ol
.
endEmphasis
();
}
}
ol
.
docify
(
")"
);
ol
.
docify
(
")"
);
...
@@ -433,7 +432,7 @@ void writeAnnotatedClassList(OutputList &ol)
...
@@ -433,7 +432,7 @@ void writeAnnotatedClassList(OutputList &ol)
case
ClassDef
:
:
Union
:
type
=
"union"
;
break
;
case
ClassDef
:
:
Union
:
type
=
"union"
;
break
;
default:
type
=
"unknown"
;
break
;
// an error
default:
type
=
"unknown"
;
break
;
// an error
}
}
ol
.
writeStartAnnoItem
(
type
,
cd
->
classFil
e
(),
0
,
cd
->
name
());
ol
.
writeStartAnnoItem
(
type
,
cd
->
getOutputFileBas
e
(),
0
,
cd
->
name
());
ol
.
docify
(
" ("
);
ol
.
docify
(
" ("
);
if
(
cd
->
briefDescription
())
if
(
cd
->
briefDescription
())
{
{
...
@@ -445,7 +444,7 @@ void writeAnnotatedClassList(OutputList &ol)
...
@@ -445,7 +444,7 @@ void writeAnnotatedClassList(OutputList &ol)
else
else
{
{
ol
.
startEmphasis
();
ol
.
startEmphasis
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trNoDescriptionAvailable
());
parse
Text
(
ol
,
theTranslator
->
trNoDescriptionAvailable
());
ol
.
endEmphasis
();
ol
.
endEmphasis
();
}
}
ol
.
docify
(
")"
);
ol
.
docify
(
")"
);
...
@@ -466,9 +465,9 @@ void writeAnnotatedIndex(OutputList &ol)
...
@@ -466,9 +465,9 @@ void writeAnnotatedIndex(OutputList &ol)
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
startFile
(
ol
,
"annotated"
,
"Annotated Index"
);
startFile
(
ol
,
"annotated"
,
"Annotated Index"
);
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
0
,
0
,
projectName
+
" "
+
theTranslator
->
trCompoundList
());
parse
Text
(
ol
,
projectName
+
" "
+
theTranslator
->
trCompoundList
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trCompoundListDescription
());
parse
Text
(
ol
,
theTranslator
->
trCompoundListDescription
());
writeAnnotatedClassList
(
ol
);
writeAnnotatedClassList
(
ol
);
endFile
(
ol
);
endFile
(
ol
);
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
enable
(
OutputGenerator
::
Man
);
...
@@ -522,7 +521,7 @@ void writeMemberList(OutputList &ol)
...
@@ -522,7 +521,7 @@ void writeMemberList(OutputList &ol)
ol
.
docify
(
": "
);
ol
.
docify
(
": "
);
else
else
ol
.
docify
(
", "
);
ol
.
docify
(
", "
);
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFil
e
(),
md
->
anchor
(),
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBas
e
(),
md
->
anchor
(),
cd
->
name
());
cd
->
name
());
count
++
;
count
++
;
prevName
=
cd
->
name
();
prevName
=
cd
->
name
();
...
@@ -537,7 +536,7 @@ void writeMemberList(OutputList &ol)
...
@@ -537,7 +536,7 @@ void writeMemberList(OutputList &ol)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
int
count
MemberList
()
int
count
ClassMembers
()
{
{
int
count
=
0
;
int
count
=
0
;
MemberName
*
mn
=
memberNameList
.
first
();
MemberName
*
mn
=
memberNameList
.
first
();
...
@@ -575,9 +574,9 @@ void writeMemberIndex(OutputList &ol)
...
@@ -575,9 +574,9 @@ void writeMemberIndex(OutputList &ol)
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Latex
);
startFile
(
ol
,
"functions"
,
"Compound Member Index"
);
startFile
(
ol
,
"functions"
,
"Compound Member Index"
);
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
0
,
0
,
projectName
+
" "
+
theTranslator
->
trCompoundMembers
());
parse
Text
(
ol
,
projectName
+
" "
+
theTranslator
->
trCompoundMembers
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trCompoundMembersDescription
(
extractAllFlag
));
parse
Text
(
ol
,
theTranslator
->
trCompoundMembersDescription
(
extractAllFlag
));
writeMemberList
(
ol
);
writeMemberList
(
ol
);
endFile
(
ol
);
endFile
(
ol
);
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
enable
(
OutputGenerator
::
Latex
);
...
@@ -586,7 +585,7 @@ void writeMemberIndex(OutputList &ol)
...
@@ -586,7 +585,7 @@ void writeMemberIndex(OutputList &ol)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
void
writeF
unction
List
(
OutputList
&
ol
)
void
writeF
ileMember
List
(
OutputList
&
ol
)
{
{
ol
.
startItemList
();
ol
.
startItemList
();
MemberName
*
mn
=
functionNameList
.
first
();
MemberName
*
mn
=
functionNameList
.
first
();
...
@@ -639,7 +638,7 @@ void writeFunctionList(OutputList &ol)
...
@@ -639,7 +638,7 @@ void writeFunctionList(OutputList &ol)
//if ((s=baseName.findRev("/"))!=-1)
//if ((s=baseName.findRev("/"))!=-1)
// baseName=baseName.right(baseName.length()-s-1);
// baseName=baseName.right(baseName.length()-s-1);
ol
.
writeObjectLink
(
fd
->
getReference
(),
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
diskNam
e
(),
md
->
anchor
(),
baseName
);
fd
->
getOutputFileBas
e
(),
md
->
anchor
(),
baseName
);
count
++
;
count
++
;
prevName
=
fd
->
name
();
prevName
=
fd
->
name
();
}
}
...
@@ -653,7 +652,89 @@ void writeFunctionList(OutputList &ol)
...
@@ -653,7 +652,89 @@ void writeFunctionList(OutputList &ol)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
int
countFunctionList
()
void
writeNamespaceMemberList
(
OutputList
&
ol
)
{
ol
.
startItemList
();
MemberName
*
mn
=
functionNameList
.
first
();
while
(
mn
)
{
MemberDef
*
md
=
mn
->
first
();
bool
found
=
FALSE
;
while
(
md
&&
!
found
)
{
NamespaceDef
*
nd
=
md
->
getNamespace
();
if
(
nd
&&
nd
->
hasDocumentation
()
&&
!
md
->
isReference
()
&&
md
->
hasDocumentation
()
&&
!
md
->
name
().
isEmpty
()
&&
md
->
name
()[
0
]
!=
'@'
)
found
=
TRUE
;
else
md
=
mn
->
next
();
}
if
(
found
)
// member is documented and in a documented namespace
{
ol
.
writeListItem
();
ol
.
docify
(
md
->
name
());
if
(
md
->
isFunction
())
ol
.
docify
(
"()"
);
ol
.
writeString
(
"
\n
"
);
int
count
=
0
;
md
=
mn
->
first
();
QString
prevName
;
while
(
md
)
{
NamespaceDef
*
nd
=
md
->
getNamespace
();
if
(
nd
&&
nd
->
hasDocumentation
()
&&
!
md
->
isReference
()
&&
md
->
hasDocumentation
()
&&
!
md
->
name
().
isEmpty
()
&&
md
->
name
()[
0
]
!=
'@'
)
{
if
(
count
==
0
)
ol
.
docify
(
": "
);
else
ol
.
docify
(
", "
);
ol
.
writeObjectLink
(
nd
->
getReference
(),
nd
->
getOutputFileBase
(),
md
->
anchor
(),
nd
->
name
());
count
++
;
}
md
=
mn
->
next
();
}
}
mn
=
functionNameList
.
next
();
}
ol
.
endItemList
();
}
//----------------------------------------------------------------------------
int
countNamespaceMembers
()
{
int
count
=
0
;
MemberName
*
mn
=
functionNameList
.
first
();
while
(
mn
)
{
MemberDef
*
md
=
mn
->
first
();
bool
found
=
FALSE
;
while
(
md
&&
!
found
)
{
if
(
md
->
getNamespace
()
&&
!
md
->
isReference
()
&&
md
->
hasDocumentation
()
&&
!
md
->
name
().
isEmpty
()
&&
md
->
name
()[
0
]
!=
'@'
)
found
=
TRUE
;
else
md
=
mn
->
next
();
}
if
(
found
)
count
++
;
mn
=
functionNameList
.
next
();
}
return
count
;
}
//----------------------------------------------------------------------------
int
countFileMembers
()
{
{
int
count
=
0
;
int
count
=
0
;
MemberName
*
mn
=
functionNameList
.
first
();
MemberName
*
mn
=
functionNameList
.
first
();
...
@@ -665,7 +746,7 @@ int countFunctionList()
...
@@ -665,7 +746,7 @@ int countFunctionList()
while
(
md
&&
!
found
)
while
(
md
&&
!
found
)
{
{
if
(
!
md
->
isReference
()
&&
md
->
hasDocumentation
()
&&
if
(
!
md
->
isReference
()
&&
md
->
hasDocumentation
()
&&
md
->
name
()[
0
]
!=
'@'
&&
!
md
->
name
().
isEmpty
()
&&
md
->
name
()[
0
]
!=
'@'
&&
(((
fd
=
md
->
getFileDef
())
&&
fd
->
hasDocumentation
())
(((
fd
=
md
->
getFileDef
())
&&
fd
->
hasDocumentation
())
||
||
((
fd
=
md
->
getFileDec
())
&&
fd
->
hasDocumentation
())
((
fd
=
md
->
getFileDec
())
&&
fd
->
hasDocumentation
())
...
@@ -683,17 +764,35 @@ int countFunctionList()
...
@@ -683,17 +764,35 @@ int countFunctionList()
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
void
writeF
unction
Index
(
OutputList
&
ol
)
void
writeF
ileMember
Index
(
OutputList
&
ol
)
{
{
if
(
documentedFunctions
==
0
)
return
;
if
(
documentedFunctions
==
0
)
return
;
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Latex
);
startFile
(
ol
,
"globals"
,
"File Member Index"
);
startFile
(
ol
,
"globals"
,
"File Member Index"
);
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
0
,
0
,
projectName
+
" "
+
theTranslator
->
trFileMembers
());
parse
Text
(
ol
,
projectName
+
" "
+
theTranslator
->
trFileMembers
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parseDoc
(
ol
,
0
,
0
,
theTranslator
->
trFileMembersDescription
(
extractAllFlag
));
parseText
(
ol
,
theTranslator
->
trFileMembersDescription
(
extractAllFlag
));
writeFunctionList
(
ol
);
writeFileMemberList
(
ol
);
endFile
(
ol
);
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
enable
(
OutputGenerator
::
Man
);
}
//----------------------------------------------------------------------------
void
writeNamespaceMemberIndex
(
OutputList
&
ol
)
{
if
(
documentedNamespaceMembers
==
0
)
return
;
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Latex
);
startFile
(
ol
,
"namespacemembers"
,
"Namespace Member Index"
);
startTitle
(
ol
);
parseText
(
ol
,
projectName
+
" "
+
theTranslator
->
trNamespaceMembers
());
endTitle
(
ol
,
0
);
parseText
(
ol
,
theTranslator
->
trNamespaceMemberDescription
(
extractAllFlag
));
writeNamespaceMemberList
(
ol
);
endFile
(
ol
);
endFile
(
ol
);
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
enable
(
OutputGenerator
::
Man
);
...
@@ -736,9 +835,9 @@ void writeHeaderIndex(OutputList &ol)
...
@@ -736,9 +835,9 @@ void writeHeaderIndex(OutputList &ol)
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Latex
);
startFile
(
ol
,
"headers"
,
"Header File Index"
);
startFile
(
ol
,
"headers"
,
"Header File Index"
);
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
0
,
0
,
projectName
+
" "
+
theTranslator
->
trHeaderFiles
());
parse
Text
(
ol
,
projectName
+
" "
+
theTranslator
->
trHeaderFiles
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trHeaderFilesDescription
());
parse
Text
(
ol
,
theTranslator
->
trHeaderFilesDescription
());
writeHeaderFileList
(
ol
);
writeHeaderFileList
(
ol
);
endFile
(
ol
);
endFile
(
ol
);
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
enable
(
OutputGenerator
::
Latex
);
...
@@ -753,9 +852,9 @@ void writeExampleIndex(OutputList &ol)
...
@@ -753,9 +852,9 @@ void writeExampleIndex(OutputList &ol)
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
startFile
(
ol
,
"examples"
,
"Example Index"
);
startFile
(
ol
,
"examples"
,
"Example Index"
);
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
0
,
0
,
projectName
+
" "
+
theTranslator
->
trExamples
());
parse
Text
(
ol
,
projectName
+
" "
+
theTranslator
->
trExamples
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trExamplesDescription
());
parse
Text
(
ol
,
theTranslator
->
trExamplesDescription
());
ol
.
startIndexList
();
ol
.
startIndexList
();
PageInfo
*
pi
=
exampleList
.
first
();
PageInfo
*
pi
=
exampleList
.
first
();
while
(
pi
)
while
(
pi
)
...
@@ -788,18 +887,25 @@ void writePageIndex(OutputList &ol)
...
@@ -788,18 +887,25 @@ void writePageIndex(OutputList &ol)
startTitle
(
ol
);
startTitle
(
ol
);
ol
.
docify
(
projectName
+
" "
+
theTranslator
->
trRelatedPages
());
ol
.
docify
(
projectName
+
" "
+
theTranslator
->
trRelatedPages
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trRelatedPagesDescription
());
parse
Text
(
ol
,
theTranslator
->
trRelatedPagesDescription
());
ol
.
startIndexList
();
ol
.
startIndexList
();
PageInfo
*
pi
=
pageList
.
first
();
PageInfo
*
pi
=
pageList
.
first
();
while
(
pi
)
while
(
pi
)
{
{
QString
pageName
;
QString
pageName
,
pageTitle
;
if
(
caseSensitiveNames
)
if
(
caseSensitiveNames
)
pageName
=
pi
->
name
.
copy
();
pageName
=
pi
->
name
.
copy
();
else
else
pageName
=
pi
->
name
.
lower
();
pageName
=
pi
->
name
.
lower
();
if
(
pi
->
title
.
isEmpty
())
pageTitle
=
pi
->
name
;
else
pageTitle
=
pi
->
title
;
ol
.
writeListItem
();
ol
.
writeListItem
();
ol
.
writeObjectLink
(
0
,
pageName
,
0
,
p
i
->
nam
e
);
ol
.
writeObjectLink
(
0
,
pageName
,
0
,
p
ageTitl
e
);
ol
.
writeString
(
"
\n
"
);
ol
.
writeString
(
"
\n
"
);
pi
=
pageList
.
next
();
pi
=
pageList
.
next
();
}
}
...
@@ -810,7 +916,7 @@ void writePageIndex(OutputList &ol)
...
@@ -810,7 +916,7 @@ void writePageIndex(OutputList &ol)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
int
countGroup
List
()
int
countGroup
s
()
{
{
int
count
=
0
;
int
count
=
0
;
GroupListIterator
gli
(
groupList
);
GroupListIterator
gli
(
groupList
);
...
@@ -835,7 +941,7 @@ void writeGroupList(OutputList &ol)
...
@@ -835,7 +941,7 @@ void writeGroupList(OutputList &ol)
if
(
gd
->
countMembers
()
>
0
)
if
(
gd
->
countMembers
()
>
0
)
{
{
ol
.
startDescItem
();
ol
.
startDescItem
();
ol
.
startTextLink
(
gd
->
g
roupFil
e
(),
0
);
ol
.
startTextLink
(
gd
->
g
etOutputFileBas
e
(),
0
);
parseDoc
(
ol
,
0
,
0
,
gd
->
groupTitle
());
parseDoc
(
ol
,
0
,
0
,
gd
->
groupTitle
());
ol
.
endTextLink
();
ol
.
endTextLink
();
ol
.
endDescItem
();
ol
.
endDescItem
();
...
@@ -854,9 +960,9 @@ void writeGroupIndex(OutputList &ol)
...
@@ -854,9 +960,9 @@ void writeGroupIndex(OutputList &ol)
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
startFile
(
ol
,
"modules"
,
"Module Index"
);
startFile
(
ol
,
"modules"
,
"Module Index"
);
startTitle
(
ol
);
startTitle
(
ol
);
parse
Doc
(
ol
,
0
,
0
,
projectName
+
" "
+
theTranslator
->
trModules
());
parse
Text
(
ol
,
projectName
+
" "
+
theTranslator
->
trModules
());
endTitle
(
ol
,
0
);
endTitle
(
ol
,
0
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trModulesDescription
());
parse
Text
(
ol
,
theTranslator
->
trModulesDescription
());
writeGroupList
(
ol
);
writeGroupList
(
ol
);
endFile
(
ol
);
endFile
(
ol
);
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
enable
(
OutputGenerator
::
Man
);
...
@@ -880,7 +986,7 @@ void writeIndex(OutputList &ol)
...
@@ -880,7 +986,7 @@ void writeIndex(OutputList &ol)
ol
.
startFile
(
"index"
,
"Main Index"
,
FALSE
);
ol
.
startFile
(
"index"
,
"Main Index"
,
FALSE
);
if
(
!
noIndexFlag
)
writeQuickLinks
(
ol
,
TRUE
);
if
(
!
noIndexFlag
)
writeQuickLinks
(
ol
,
TRUE
);
ol
.
startTitleHead
();
ol
.
startTitleHead
();
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trDocumentation
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trDocumentation
());
ol
.
endTitleHead
(
0
);
ol
.
endTitleHead
(
0
);
ol
.
newParagraph
();
ol
.
newParagraph
();
if
(
!
projectNumber
.
isEmpty
())
if
(
!
projectNumber
.
isEmpty
())
...
@@ -897,7 +1003,7 @@ void writeIndex(OutputList &ol)
...
@@ -897,7 +1003,7 @@ void writeIndex(OutputList &ol)
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
startFile
(
"refman"
,
0
,
FALSE
);
ol
.
startFile
(
"refman"
,
0
,
FALSE
);
ol
.
startIndexSection
(
isTitlePageStart
);
ol
.
startIndexSection
(
isTitlePageStart
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trReferenceManual
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trReferenceManual
());
if
(
!
projectNumber
.
isEmpty
())
if
(
!
projectNumber
.
isEmpty
())
{
{
ol
.
startProjectNumber
();
ol
.
startProjectNumber
();
...
@@ -906,60 +1012,72 @@ void writeIndex(OutputList &ol)
...
@@ -906,60 +1012,72 @@ void writeIndex(OutputList &ol)
}
}
ol
.
endIndexSection
(
isTitlePageStart
);
ol
.
endIndexSection
(
isTitlePageStart
);
ol
.
startIndexSection
(
isTitlePageAuthor
);
ol
.
startIndexSection
(
isTitlePageAuthor
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trGeneratedBy
());
parse
Text
(
ol
,
theTranslator
->
trGeneratedBy
());
ol
.
endIndexSection
(
isTitlePageAuthor
);
ol
.
endIndexSection
(
isTitlePageAuthor
);
if
(
documentedGroups
>
0
)
if
(
documentedGroups
>
0
)
{
{
ol
.
startIndexSection
(
isModuleIndex
);
ol
.
startIndexSection
(
isModuleIndex
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trModuleIndex
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trModuleIndex
());
ol
.
endIndexSection
(
isModuleIndex
);
ol
.
endIndexSection
(
isModuleIndex
);
}
}
if
(
documentedNamespaces
>
0
)
{
ol
.
startIndexSection
(
isNamespaceIndex
);
parseText
(
ol
,
projPrefix
+
theTranslator
->
trNamespaceIndex
());
ol
.
endIndexSection
(
isNamespaceIndex
);
}
if
(
hierarchyClasses
>
0
)
if
(
hierarchyClasses
>
0
)
{
{
ol
.
startIndexSection
(
isClassHierarchyIndex
);
ol
.
startIndexSection
(
isClassHierarchyIndex
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trHierarchicalIndex
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trHierarchicalIndex
());
ol
.
endIndexSection
(
isClassHierarchyIndex
);
ol
.
endIndexSection
(
isClassHierarchyIndex
);
}
}
if
(
annotatedClasses
>
0
)
if
(
annotatedClasses
>
0
)
{
{
ol
.
startIndexSection
(
isCompoundIndex
);
ol
.
startIndexSection
(
isCompoundIndex
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trCompoundIndex
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trCompoundIndex
());
ol
.
endIndexSection
(
isCompoundIndex
);
ol
.
endIndexSection
(
isCompoundIndex
);
}
}
if
(
documentedFiles
>
0
)
if
(
documentedFiles
>
0
)
{
{
ol
.
startIndexSection
(
isFileIndex
);
ol
.
startIndexSection
(
isFileIndex
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trFileIndex
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trFileIndex
());
ol
.
endIndexSection
(
isFileIndex
);
ol
.
endIndexSection
(
isFileIndex
);
}
}
if
(
documentedGroups
>
0
)
if
(
documentedGroups
>
0
)
{
{
ol
.
startIndexSection
(
isModuleDocumentation
);
ol
.
startIndexSection
(
isModuleDocumentation
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trModuleDocumentation
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trModuleDocumentation
());
ol
.
endIndexSection
(
isModuleDocumentation
);
ol
.
endIndexSection
(
isModuleDocumentation
);
}
}
if
(
documentedNamespaces
>
0
)
{
ol
.
startIndexSection
(
isNamespaceDocumentation
);
parseText
(
ol
,
projPrefix
+
theTranslator
->
trNamespaceDocumentation
());
ol
.
endIndexSection
(
isNamespaceDocumentation
);
}
if
(
annotatedClasses
>
0
)
if
(
annotatedClasses
>
0
)
{
{
ol
.
startIndexSection
(
isClassDocumentation
);
ol
.
startIndexSection
(
isClassDocumentation
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trClassDocumentation
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trClassDocumentation
());
ol
.
endIndexSection
(
isClassDocumentation
);
ol
.
endIndexSection
(
isClassDocumentation
);
}
}
if
(
documentedFiles
>
0
)
if
(
documentedFiles
>
0
)
{
{
ol
.
startIndexSection
(
isFileDocumentation
);
ol
.
startIndexSection
(
isFileDocumentation
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trFileDocumentation
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trFileDocumentation
());
ol
.
endIndexSection
(
isFileDocumentation
);
ol
.
endIndexSection
(
isFileDocumentation
);
}
}
if
(
exampleList
.
count
()
>
0
)
if
(
exampleList
.
count
()
>
0
)
{
{
ol
.
startIndexSection
(
isExampleDocumentation
);
ol
.
startIndexSection
(
isExampleDocumentation
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trExampleDocumentation
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trExampleDocumentation
());
ol
.
endIndexSection
(
isExampleDocumentation
);
ol
.
endIndexSection
(
isExampleDocumentation
);
}
}
if
(
pageList
.
count
()
>
0
)
if
(
pageList
.
count
()
>
0
)
{
{
ol
.
startIndexSection
(
isPageDocumentation
);
ol
.
startIndexSection
(
isPageDocumentation
);
parse
Doc
(
ol
,
0
,
0
,
projPrefix
+
theTranslator
->
trPageDocumentation
());
parse
Text
(
ol
,
projPrefix
+
theTranslator
->
trPageDocumentation
());
ol
.
endIndexSection
(
isPageDocumentation
);
ol
.
endIndexSection
(
isPageDocumentation
);
}
}
ol
.
endIndexSection
(
isEndIndex
);
ol
.
endIndexSection
(
isEndIndex
);
...
...
src/index.h
View file @
e04496cb
...
@@ -25,10 +25,12 @@ enum IndexSections
...
@@ -25,10 +25,12 @@ enum IndexSections
isTitlePageStart
,
isTitlePageStart
,
isTitlePageAuthor
,
isTitlePageAuthor
,
isModuleIndex
,
isModuleIndex
,
isNamespaceIndex
,
isClassHierarchyIndex
,
isClassHierarchyIndex
,
isCompoundIndex
,
isCompoundIndex
,
isFileIndex
,
isFileIndex
,
isModuleDocumentation
,
isModuleDocumentation
,
isNamespaceDocumentation
,
isClassDocumentation
,
isClassDocumentation
,
isFileDocumentation
,
isFileDocumentation
,
isExampleDocumentation
,
isExampleDocumentation
,
...
@@ -50,16 +52,18 @@ void writeHeaderIndex(OutputList &ol);
...
@@ -50,16 +52,18 @@ void writeHeaderIndex(OutputList &ol);
void
writeHeaderFileList
(
OutputList
&
ol
);
void
writeHeaderFileList
(
OutputList
&
ol
);
void
writeExampleIndex
(
OutputList
&
ol
);
void
writeExampleIndex
(
OutputList
&
ol
);
void
writePageIndex
(
OutputList
&
ol
);
void
writePageIndex
(
OutputList
&
ol
);
void
writeF
unction
Index
(
OutputList
&
ol
);
void
writeF
ileMember
Index
(
OutputList
&
ol
);
void
writeGroupIndex
(
OutputList
&
ol
);
void
writeGroupIndex
(
OutputList
&
ol
);
void
writeNamespaceIndex
(
OutputList
&
ol
);
void
writeNamespaceIndex
(
OutputList
&
ol
);
void
writeNamespaceMemberIndex
(
OutputList
&
ol
);
int
countClassHierarchy
();
int
countClassHierarchy
();
int
count
MemberList
();
int
count
ClassMembers
();
int
countF
unctionList
();
int
countF
ileMembers
();
int
countFile
List
();
int
countFile
s
();
int
countGroup
List
();
int
countGroup
s
();
int
countNamespace
List
();
int
countNamespace
s
();
int
countAnnotatedClasses
();
int
countAnnotatedClasses
();
int
countNamespaceMembers
();
#endif
#endif
src/latexgen.cpp
View file @
e04496cb
...
@@ -172,6 +172,10 @@ void LatexGenerator::startIndexSection(IndexSections is)
...
@@ -172,6 +172,10 @@ void LatexGenerator::startIndexSection(IndexSections is)
if
(
compactLatexFlag
)
t
<<
"
\\
section"
;
else
t
<<
"
\\
chapter"
;
if
(
compactLatexFlag
)
t
<<
"
\\
section"
;
else
t
<<
"
\\
chapter"
;
t
<<
"{"
;
//Module Index}\n"
t
<<
"{"
;
//Module Index}\n"
break
;
break
;
case
isNamespaceIndex
:
if
(
compactLatexFlag
)
t
<<
"
\\
section"
;
else
t
<<
"
\\
chapter"
;
t
<<
"{"
;
//Namespace Index}\"
break
;
case
isClassHierarchyIndex
:
case
isClassHierarchyIndex
:
if
(
compactLatexFlag
)
t
<<
"
\\
section"
;
else
t
<<
"
\\
chapter"
;
if
(
compactLatexFlag
)
t
<<
"
\\
section"
;
else
t
<<
"
\\
chapter"
;
t
<<
"{"
;
//Hierarchical Index}\n"
t
<<
"{"
;
//Hierarchical Index}\n"
...
@@ -200,17 +204,28 @@ void LatexGenerator::startIndexSection(IndexSections is)
...
@@ -200,17 +204,28 @@ void LatexGenerator::startIndexSection(IndexSections is)
}
}
}
}
break
;
break
;
case
isNamespaceDocumentation
:
{
NamespaceDef
*
nd
=
namespaceList
.
first
();
bool
found
=
FALSE
;
while
(
nd
&&
!
found
)
{
if
(
nd
->
hasDocumentation
())
{
if
(
compactLatexFlag
)
t
<<
"
\\
section"
;
else
t
<<
"
\\
chapter"
;
t
<<
"{"
;
// Namespace Documentation}\n":
found
=
TRUE
;
}
nd
=
namespaceList
.
next
();
}
}
break
;
case
isClassDocumentation
:
case
isClassDocumentation
:
{
{
ClassDef
*
cd
=
classList
.
first
();
ClassDef
*
cd
=
classList
.
first
();
bool
found
=
FALSE
;
bool
found
=
FALSE
;
while
(
cd
&&
!
found
)
while
(
cd
&&
!
found
)
{
{
//if (cd->classFile()[0]!='@' && !cd->getReference() &&
// (cd->hasDocumentation() || !hideClassFlag) &&
// (cd->protection()!=Private || extractPrivateFlag)
// )
if
(
!
cd
->
isReference
()
&&
cd
->
isVisible
())
if
(
!
cd
->
isReference
()
&&
cd
->
isVisible
())
{
{
if
(
compactLatexFlag
)
t
<<
"
\\
section"
;
else
t
<<
"
\\
chapter"
;
if
(
compactLatexFlag
)
t
<<
"
\\
section"
;
else
t
<<
"
\\
chapter"
;
...
@@ -282,6 +297,9 @@ void LatexGenerator::endIndexSection(IndexSections is)
...
@@ -282,6 +297,9 @@ void LatexGenerator::endIndexSection(IndexSections is)
case
isModuleIndex
:
case
isModuleIndex
:
t
<<
"}
\n\\
input{modules}
\n
"
;
t
<<
"}
\n\\
input{modules}
\n
"
;
break
;
break
;
case
isNamespaceIndex
:
t
<<
"}
\n\\
input{namespaces}
\n
"
;
break
;
case
isClassHierarchyIndex
:
case
isClassHierarchyIndex
:
t
<<
"}
\n\\
input{hierarchy}
\n
"
;
t
<<
"}
\n\\
input{hierarchy}
\n
"
;
break
;
break
;
...
@@ -299,7 +317,7 @@ void LatexGenerator::endIndexSection(IndexSections is)
...
@@ -299,7 +317,7 @@ void LatexGenerator::endIndexSection(IndexSections is)
{
{
if
(
gd
->
hasDocumentation
()
||
gd
->
countMembers
()
>
0
)
if
(
gd
->
hasDocumentation
()
||
gd
->
countMembers
()
>
0
)
{
{
t
<<
"}
\n\\
input{"
<<
gd
->
g
roupFil
e
()
<<
"}
\n
"
;
t
<<
"}
\n\\
input{"
<<
gd
->
g
etOutputFileBas
e
()
<<
"}
\n
"
;
found
=
TRUE
;
found
=
TRUE
;
}
}
gd
=
groupList
.
next
();
gd
=
groupList
.
next
();
...
@@ -309,12 +327,36 @@ void LatexGenerator::endIndexSection(IndexSections is)
...
@@ -309,12 +327,36 @@ void LatexGenerator::endIndexSection(IndexSections is)
if
(
gd
->
hasDocumentation
()
||
gd
->
countMembers
()
>
0
)
if
(
gd
->
hasDocumentation
()
||
gd
->
countMembers
()
>
0
)
{
{
if
(
compactLatexFlag
)
t
<<
"
\\
input"
;
else
t
<<
"
\\
include"
;
if
(
compactLatexFlag
)
t
<<
"
\\
input"
;
else
t
<<
"
\\
include"
;
t
<<
"{"
<<
gd
->
g
roupFil
e
()
<<
"}
\n
"
;
t
<<
"{"
<<
gd
->
g
etOutputFileBas
e
()
<<
"}
\n
"
;
}
}
gd
=
groupList
.
next
();
gd
=
groupList
.
next
();
}
}
}
}
break
;
break
;
case
isNamespaceDocumentation
:
{
NamespaceDef
*
nd
=
namespaceList
.
first
();
bool
found
=
FALSE
;
while
(
nd
&&
!
found
)
{
if
(
nd
->
hasDocumentation
()
||
nd
->
countMembers
()
>
0
)
{
t
<<
"}
\n\\
input{"
<<
nd
->
getOutputFileBase
()
<<
"}
\n
"
;
found
=
TRUE
;
}
nd
=
namespaceList
.
next
();
}
while
(
nd
)
{
if
(
nd
->
hasDocumentation
()
||
nd
->
countMembers
()
>
0
)
{
if
(
compactLatexFlag
)
t
<<
"
\\
input"
;
else
t
<<
"
\\
include"
;
t
<<
"{"
<<
nd
->
getOutputFileBase
()
<<
"}
\n
"
;
}
nd
=
namespaceList
.
next
();
}
}
break
;
case
isClassDocumentation
:
case
isClassDocumentation
:
{
{
ClassDef
*
cd
=
classList
.
first
();
ClassDef
*
cd
=
classList
.
first
();
...
@@ -327,7 +369,7 @@ void LatexGenerator::endIndexSection(IndexSections is)
...
@@ -327,7 +369,7 @@ void LatexGenerator::endIndexSection(IndexSections is)
// )
// )
if
(
!
cd
->
isReference
()
&&
cd
->
isVisible
())
if
(
!
cd
->
isReference
()
&&
cd
->
isVisible
())
{
{
t
<<
"}
\n\\
input{"
<<
cd
->
classFil
e
()
<<
"}
\n
"
;
t
<<
"}
\n\\
input{"
<<
cd
->
getOutputFileBas
e
()
<<
"}
\n
"
;
found
=
TRUE
;
found
=
TRUE
;
}
}
cd
=
classList
.
next
();
cd
=
classList
.
next
();
...
@@ -341,7 +383,7 @@ void LatexGenerator::endIndexSection(IndexSections is)
...
@@ -341,7 +383,7 @@ void LatexGenerator::endIndexSection(IndexSections is)
if
(
!
cd
->
isReference
()
&&
cd
->
isVisible
())
if
(
!
cd
->
isReference
()
&&
cd
->
isVisible
())
{
{
if
(
compactLatexFlag
)
t
<<
"
\\
input"
;
else
t
<<
"
\\
include"
;
if
(
compactLatexFlag
)
t
<<
"
\\
input"
;
else
t
<<
"
\\
include"
;
t
<<
"{"
<<
cd
->
classFil
e
()
<<
"}
\n
"
;
t
<<
"{"
<<
cd
->
getOutputFileBas
e
()
<<
"}
\n
"
;
}
}
cd
=
classList
.
next
();
cd
=
classList
.
next
();
}
}
...
@@ -360,13 +402,13 @@ void LatexGenerator::endIndexSection(IndexSections is)
...
@@ -360,13 +402,13 @@ void LatexGenerator::endIndexSection(IndexSections is)
{
{
if
(
isFirst
)
if
(
isFirst
)
{
{
t
<<
"}
\n\\
input{"
<<
fd
->
diskNam
e
()
<<
"}
\n
"
;
t
<<
"}
\n\\
input{"
<<
fd
->
getOutputFileBas
e
()
<<
"}
\n
"
;
isFirst
=
FALSE
;
isFirst
=
FALSE
;
}
}
else
else
{
{
if
(
compactLatexFlag
)
t
<<
"
\\
input"
;
else
t
<<
"
\\
include"
;
if
(
compactLatexFlag
)
t
<<
"
\\
input"
;
else
t
<<
"
\\
include"
;
t
<<
"{"
<<
fd
->
diskNam
e
()
<<
"}
\n
"
;
t
<<
"{"
<<
fd
->
getOutputFileBas
e
()
<<
"}
\n
"
;
}
}
}
}
fd
=
fn
->
next
();
fd
=
fn
->
next
();
...
@@ -670,6 +712,11 @@ void LatexGenerator::writeDoxyAnchor(const char *clname,const char *anchor,const
...
@@ -670,6 +712,11 @@ void LatexGenerator::writeDoxyAnchor(const char *clname,const char *anchor,const
t
<<
"}"
<<
endl
;
t
<<
"}"
<<
endl
;
}
}
void
LatexGenerator
::
writeLatexLabel
(
const
char
*
clName
,
const
char
*
anchor
)
{
writeDoxyAnchor
(
clName
,
anchor
,
0
);
}
void
LatexGenerator
::
addToIndex
(
const
char
*
s1
,
const
char
*
s2
)
void
LatexGenerator
::
addToIndex
(
const
char
*
s1
,
const
char
*
s2
)
{
{
if
(
s1
)
if
(
s1
)
...
@@ -709,6 +756,15 @@ void LatexGenerator::writeSectionRefItem(const char *,const char *lab,
...
@@ -709,6 +756,15 @@ void LatexGenerator::writeSectionRefItem(const char *,const char *lab,
t
<<
"}{
\\
ref{"
<<
lab
<<
"}}"
<<
endl
;
t
<<
"}{
\\
ref{"
<<
lab
<<
"}}"
<<
endl
;
}
}
void
LatexGenerator
::
writeSectionRefAnchor
(
const
char
*
,
const
char
*
lab
,
const
char
*
title
)
{
startBold
();
docify
(
title
);
endBold
();
t
<<
" (p.
\\
pageref{"
<<
lab
<<
"})"
<<
endl
;
}
//void LatexGenerator::docify(const char *str)
//void LatexGenerator::docify(const char *str)
//{
//{
// docifyStatic(t,str);
// docifyStatic(t,str);
...
...
src/latexgen.h
View file @
e04496cb
...
@@ -79,17 +79,20 @@ class LatexGenerator : public OutputGenerator
...
@@ -79,17 +79,20 @@ class LatexGenerator : public OutputGenerator
void
endGroupHeader
();
void
endGroupHeader
();
void
writeListItem
()
{
t
<<
"
\\
item "
<<
endl
;
}
void
writeListItem
()
{
t
<<
"
\\
item "
<<
endl
;
}
void
startMemberSections
()
{}
void
endMemberSections
()
{}
void
startMemberHeader
()
{
startGroupHeader
();
}
void
startMemberHeader
()
{
startGroupHeader
();
}
void
endMemberHeader
()
{
endGroupHeader
();
}
void
endMemberHeader
()
{
endGroupHeader
();
}
void
startMemberList
()
{
t
<<
"
\\
begin{CompactItemize}"
<<
endl
;
}
void
startMemberList
()
{
t
<<
"
\\
begin{CompactItemize}"
<<
endl
;
}
void
endMemberList
()
{
t
<<
"
\\
end{CompactItemize}"
<<
endl
;
}
void
endMemberList
()
{
t
<<
"
\\
end{CompactItemize}"
<<
endl
;
}
void
startMemberItem
()
{
t
<<
"
\\
item "
<<
endl
;
}
void
startMemberItem
()
{
t
<<
"
\\
item "
<<
endl
;
}
void
endMemberItem
()
{
t
<<
endl
;
}
void
endMemberItem
()
{
t
<<
endl
;
}
void
insertMemberAlign
()
{}
void
writeRuler
()
{
t
<<
"
\\
vspace{0.4cm}
\\
hrule
\\
vspace{0.2cm}"
;
}
void
writeRuler
()
{
t
<<
"
\\
vspace{0.4cm}
\\
hrule
\\
vspace{0.2cm}"
;
}
void
writeAnchor
(
const
char
*
)
{
}
void
writeAnchor
(
const
char
*
name
)
{
t
<<
"
\\
label{"
<<
name
<<
"}"
<<
endl
;
}
void
startCodeFragment
()
{
t
<<
"
\\
small
\\
begin{verbatim}"
;
}
void
startCodeFragment
()
{
t
<<
"
\\
small
\\
begin{verbatim}"
;
}
void
endCodeFragment
()
{
t
<<
"
\\
end{verbatim}
\\
normalsize "
;
}
void
endCodeFragment
()
{
t
<<
"
\\
end{verbatim}
\\
normalsize "
<<
endl
;
}
void
writeBoldString
(
const
char
*
text
)
void
writeBoldString
(
const
char
*
text
)
{
t
<<
"{
\\
bf "
;
docify
(
text
);
t
<<
"}"
;
}
{
t
<<
"{
\\
bf "
;
docify
(
text
);
t
<<
"}"
;
}
void
startEmphasis
()
{
t
<<
"{
\\
em "
;
}
void
startEmphasis
()
{
t
<<
"{
\\
em "
;
}
...
@@ -99,13 +102,14 @@ class LatexGenerator : public OutputGenerator
...
@@ -99,13 +102,14 @@ class LatexGenerator : public OutputGenerator
void
startDescription
()
{
t
<<
"
\\
begin{description}"
<<
endl
;
}
void
startDescription
()
{
t
<<
"
\\
begin{description}"
<<
endl
;
}
void
endDescription
()
{
t
<<
"
\\
end{description}"
<<
endl
;
}
void
endDescription
()
{
t
<<
"
\\
end{description}"
<<
endl
;
}
void
startDescItem
()
{
t
<<
"
\\
item["
;
}
void
startDescItem
()
{
t
<<
"
\\
item["
;
}
void
endDescItem
()
{
t
<<
"]"
;
}
void
endDescItem
()
{
t
<<
"]"
<<
endl
;
}
void
lineBreak
()
{
t
<<
"
\\
par
\n
"
;
}
void
lineBreak
()
{
t
<<
"
\\
par
\n
"
;
}
void
startMemberDoc
(
const
char
*
,
const
char
*
,
const
char
*
);
void
startMemberDoc
(
const
char
*
,
const
char
*
,
const
char
*
);
void
endMemberDoc
()
{
t
<<
"}"
;
}
void
endMemberDoc
()
{
t
<<
"}"
;
}
void
writeDoxyAnchor
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeDoxyAnchor
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeChar
(
char
c
);
void
writeChar
(
char
c
);
void
writeLatexSpacing
()
{
t
<<
"
\\
hspace{0.3cm}"
;
}
void
writeLatexSpacing
()
{
t
<<
"
\\
hspace{0.3cm}"
;
}
void
writeLatexLabel
(
const
char
*
scope
,
const
char
*
anchor
);
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
const
char
*
path
,
const
char
*
name
);
const
char
*
path
,
const
char
*
name
);
void
writeEndAnnoItem
(
const
char
*
name
);
void
writeEndAnnoItem
(
const
char
*
name
);
...
@@ -148,11 +152,12 @@ class LatexGenerator : public OutputGenerator
...
@@ -148,11 +152,12 @@ class LatexGenerator : public OutputGenerator
void
endMemberDescription
()
{
t
<<
"
\\
item
\\
end{CompactList}"
;
}
void
endMemberDescription
()
{
t
<<
"
\\
item
\\
end{CompactList}"
;
}
void
startDescList
()
{
t
<<
"
\\
begin{Desc}
\\
item["
;
}
void
startDescList
()
{
t
<<
"
\\
begin{Desc}
\\
item["
;
}
void
endDescTitle
()
{
t
<<
"]"
;
}
void
endDescTitle
()
{
t
<<
"]"
;
}
void
writeDescItem
()
{
t
<<
"
\\
par
"
;
}
void
writeDescItem
()
{
t
<<
"
\\
par
"
<<
endl
;
}
void
endDescList
()
{
t
<<
"
\\
end{Desc}"
;
}
void
endDescList
()
{
t
<<
"
\\
end{Desc}"
;
}
void
writeSection
(
const
char
*
,
const
char
*
,
bool
);
void
writeSection
(
const
char
*
,
const
char
*
,
bool
);
void
writeSectionRef
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeSectionRef
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeSectionRefItem
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeSectionRefItem
(
const
char
*
,
const
char
*
,
const
char
*
);
void
writeSectionRefAnchor
(
const
char
*
,
const
char
*
,
const
char
*
);
void
addToIndex
(
const
char
*
,
const
char
*
);
void
addToIndex
(
const
char
*
,
const
char
*
);
void
startIndent
()
{}
void
startIndent
()
{}
void
endIndent
()
{}
void
endIndent
()
{}
...
...
src/mangen.cpp
View file @
e04496cb
...
@@ -78,7 +78,7 @@ void ManGenerator::startFile(const char *name,const char *,bool)
...
@@ -78,7 +78,7 @@ void ManGenerator::startFile(const char *name,const char *,bool)
{
{
fileName
=
fileName
.
left
(
i
);
fileName
=
fileName
.
left
(
i
);
}
}
if
(
fileName
.
right
(
2
)
!=
".3"
)
fileName
+=
".3"
;
if
(
fileName
.
right
(
2
)
!=
manExtension
)
fileName
+=
manExtension
;
startPlainFile
(
fileName
);
startPlainFile
(
fileName
);
firstCol
=
TRUE
;
firstCol
=
TRUE
;
}
}
...
...
src/mangen.h
View file @
e04496cb
...
@@ -77,8 +77,11 @@ class ManGenerator : public OutputGenerator
...
@@ -77,8 +77,11 @@ class ManGenerator : public OutputGenerator
void
endTypewriter
()
{
t
<<
"
\\
fR"
;
firstCol
=
FALSE
;
}
void
endTypewriter
()
{
t
<<
"
\\
fR"
;
firstCol
=
FALSE
;
}
void
startGroupHeader
();
void
startGroupHeader
();
void
endGroupHeader
();
void
endGroupHeader
();
void
startMemberSections
()
{}
void
endMemberSections
()
{}
void
startMemberHeader
();
void
startMemberHeader
();
void
endMemberHeader
();
void
endMemberHeader
();
void
insertMemberAlign
()
{}
void
writeListItem
();
void
writeListItem
();
void
startMemberList
()
{
t
<<
"
\n
.in +1c"
;
firstCol
=
FALSE
;
}
void
startMemberList
()
{
t
<<
"
\n
.in +1c"
;
firstCol
=
FALSE
;
}
void
endMemberList
()
{
t
<<
"
\n
.in -1c"
;
firstCol
=
FALSE
;
}
void
endMemberList
()
{
t
<<
"
\n
.in -1c"
;
firstCol
=
FALSE
;
}
...
@@ -107,6 +110,7 @@ class ManGenerator : public OutputGenerator
...
@@ -107,6 +110,7 @@ class ManGenerator : public OutputGenerator
void
endMemberDoc
()
{}
void
endMemberDoc
()
{}
void
writeDoxyAnchor
(
const
char
*
clName
,
const
char
*
anchor
,
const
char
*
name
);
void
writeDoxyAnchor
(
const
char
*
clName
,
const
char
*
anchor
,
const
char
*
name
);
void
writeLatexSpacing
()
{}
void
writeLatexSpacing
()
{}
void
writeLatexLabel
(
const
char
*
,
const
char
*
)
{}
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
const
char
*
path
,
const
char
*
name
);
const
char
*
path
,
const
char
*
name
);
void
writeEndAnnoItem
(
const
char
*
)
{
t
<<
endl
;
firstCol
=
TRUE
;
}
void
writeEndAnnoItem
(
const
char
*
)
{
t
<<
endl
;
firstCol
=
TRUE
;
}
...
@@ -144,6 +148,7 @@ class ManGenerator : public OutputGenerator
...
@@ -144,6 +148,7 @@ class ManGenerator : public OutputGenerator
void
writeSection
(
const
char
*
,
const
char
*
,
bool
)
{}
void
writeSection
(
const
char
*
,
const
char
*
,
bool
)
{}
void
writeSectionRef
(
const
char
*
,
const
char
*
,
const
char
*
)
{}
void
writeSectionRef
(
const
char
*
,
const
char
*
,
const
char
*
)
{}
void
writeSectionRefItem
(
const
char
*
,
const
char
*
,
const
char
*
)
{}
void
writeSectionRefItem
(
const
char
*
,
const
char
*
,
const
char
*
)
{}
void
writeSectionRefAnchor
(
const
char
*
,
const
char
*
,
const
char
*
)
{}
void
addToIndex
(
const
char
*
,
const
char
*
)
{}
void
addToIndex
(
const
char
*
,
const
char
*
)
{}
void
startIndent
()
{}
void
startIndent
()
{}
void
endIndent
()
{}
void
endIndent
()
{}
...
...
src/memberdef.cpp
View file @
e04496cb
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
#include "membername.h"
#include "membername.h"
#include "doxygen.h"
#include "doxygen.h"
#include "util.h"
#include "util.h"
#include "message.h"
/*! Creates a new member definition.
/*! Creates a new member definition.
* Members can be function/variables/enums/etc. inside a class or inside a
* Members can be function/variables/enums/etc. inside a class or inside a
...
@@ -159,7 +160,7 @@ bool MemberDef::hasExamples()
...
@@ -159,7 +160,7 @@ bool MemberDef::hasExamples()
return
exampleList
->
count
()
>
0
;
return
exampleList
->
count
()
>
0
;
}
}
#if 0
void MemberDef::writeExample(OutputList &ol)
void MemberDef::writeExample(OutputList &ol)
{
{
Example *e=exampleList->first();
Example *e=exampleList->first();
...
@@ -177,4 +178,27 @@ void MemberDef::writeExample(OutputList &ol)
...
@@ -177,4 +178,27 @@ void MemberDef::writeExample(OutputList &ol)
}
}
ol.writeString(".");
ol.writeString(".");
}
}
#endif
QString
MemberDef
::
getOutputFileBase
()
const
{
if
(
classDef
)
{
return
classDef
->
getOutputFileBase
();
}
else
if
(
fileDef
)
{
return
fileDef
->
getOutputFileBase
();
}
else
if
(
fileDec
)
{
return
fileDec
->
getOutputFileBase
();
}
else
if
(
nspace
)
{
return
nspace
->
getOutputFileBase
();
}
warn
(
"Warning: Internal inconsistency: member %s does not belong to any
\n
"
" container!
\n
"
,
name
().
data
());
return
"dummy"
;
}
src/memberdef.h
View file @
e04496cb
...
@@ -55,6 +55,7 @@ class MemberDef : public Definition
...
@@ -55,6 +55,7 @@ class MemberDef : public Definition
const
ArgumentList
*
al
);
const
ArgumentList
*
al
);
~
MemberDef
();
~
MemberDef
();
QString
getOutputFileBase
()
const
;
const
char
*
declaration
()
const
{
return
decl
;
}
const
char
*
declaration
()
const
{
return
decl
;
}
const
char
*
definition
()
const
{
return
def
;
}
const
char
*
definition
()
const
{
return
def
;
}
const
char
*
typeString
()
const
{
return
type
;
}
const
char
*
typeString
()
const
{
return
type
;
}
...
@@ -72,6 +73,7 @@ class MemberDef : public Definition
...
@@ -72,6 +73,7 @@ class MemberDef : public Definition
void
setFileDef
(
FileDef
*
fd
)
{
fileDef
=
fd
;
}
void
setFileDef
(
FileDef
*
fd
)
{
fileDef
=
fd
;
}
void
setFileDec
(
FileDef
*
fd
)
{
fileDec
=
fd
;
}
void
setFileDec
(
FileDef
*
fd
)
{
fileDec
=
fd
;
}
void
setAnchor
(
const
char
*
a
)
{
ref
=
a
;
}
void
setAnchor
(
const
char
*
a
)
{
ref
=
a
;
}
void
setProtection
(
Protection
p
)
{
prot
=
p
;
}
FileDef
*
getFileDef
()
{
return
fileDef
;
}
FileDef
*
getFileDef
()
{
return
fileDef
;
}
FileDef
*
getFileDec
()
{
return
fileDec
;
}
FileDef
*
getFileDec
()
{
return
fileDec
;
}
void
setMemberClass
(
ClassDef
*
cd
)
{
classDef
=
cd
;
}
void
setMemberClass
(
ClassDef
*
cd
)
{
classDef
=
cd
;
}
...
@@ -105,8 +107,9 @@ class MemberDef : public Definition
...
@@ -105,8 +107,9 @@ class MemberDef : public Definition
// example related members
// example related members
bool
addExample
(
const
char
*
anchor
,
const
char
*
name
,
const
char
*
file
);
bool
addExample
(
const
char
*
anchor
,
const
char
*
name
,
const
char
*
file
);
void
writeExample
(
OutputList
&
ol
);
//
void writeExample(OutputList &ol);
bool
hasExamples
();
bool
hasExamples
();
ExampleList
*
getExampleList
()
const
{
return
exampleList
;
}
// prototype related members
// prototype related members
const
char
*
getDefFile
()
{
return
defFile
;
}
const
char
*
getDefFile
()
{
return
defFile
;
}
...
...
src/memberlist.cpp
View file @
e04496cb
...
@@ -43,7 +43,10 @@ void MemberList::countDecMembers()
...
@@ -43,7 +43,10 @@ void MemberList::countDecMembers()
if
((
!
hideMemberFlag
||
md
->
hasDocumentation
())
&&
if
((
!
hideMemberFlag
||
md
->
hasDocumentation
())
&&
(
!
hideMemberFlag
||
!
md
->
documentation
().
isEmpty
()
||
(
!
hideMemberFlag
||
!
md
->
documentation
().
isEmpty
()
||
briefMemDescFlag
||
repeatBriefFlag
briefMemDescFlag
||
repeatBriefFlag
)
||
extractAllFlag
)
||
extractAllFlag
||
(
md
->
isEnumerate
()
&&
md
->
hasDocumentedEnumValues
()
)
)
)
{
{
switch
(
md
->
memberType
())
switch
(
md
->
memberType
())
...
...
src/namespacedef.cpp
View file @
e04496cb
...
@@ -22,12 +22,14 @@
...
@@ -22,12 +22,14 @@
#include "classdef.h"
#include "classdef.h"
#include "classlist.h"
#include "classlist.h"
#include "memberlist.h"
#include "memberlist.h"
#include "doxygen.h"
NamespaceDef
::
NamespaceDef
(
const
char
*
name
)
:
Definition
(
name
)
NamespaceDef
::
NamespaceDef
(
const
char
*
name
,
const
char
*
ref
)
:
Definition
(
name
)
{
{
fileName
=
"namespace_"
+
nameToFile
(
name
);
fileName
=
"namespace_"
+
nameToFile
(
name
);
classList
=
new
ClassList
;
classList
=
new
ClassList
;
memList
=
new
MemberList
;
memList
=
new
MemberList
;
reference
=
ref
;
}
}
NamespaceDef
::~
NamespaceDef
()
NamespaceDef
::~
NamespaceDef
()
...
@@ -61,18 +63,21 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -61,18 +63,21 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
QString
pageTitle
=
name
()
+
" Namespace Reference"
;
QString
pageTitle
=
name
()
+
" Namespace Reference"
;
startFile
(
ol
,
fileName
,
pageTitle
);
startFile
(
ol
,
fileName
,
pageTitle
);
startTitle
(
ol
);
startTitle
(
ol
);
ol
.
docify
(
pageTitle
);
//ol.docify(pageTitle);
parseText
(
ol
,
theTranslator
->
trNamespaceReference
(
name
()));
endTitle
(
ol
,
name
());
endTitle
(
ol
,
name
());
if
(
genTagFile
.
length
()
>
0
)
tagFile
<<
"%"
<<
name
()
<<
":
\n
"
;
OutputList
briefOutput
(
&
ol
);
OutputList
briefOutput
(
&
ol
);
if
(
briefDescription
())
if
(
briefDescription
())
{
{
parseDoc
(
briefOutput
,
0
,
0
,
briefDescription
());
parseDoc
(
briefOutput
,
name
()
,
0
,
briefDescription
());
ol
+=
briefOutput
;
ol
+=
briefOutput
;
ol
.
writeString
(
"
\n
"
);
ol
.
writeString
(
"
\n
"
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
startTextLink
(
0
,
"details"
);
ol
.
startTextLink
(
0
,
"
_
details"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMore
());
parse
Text
(
ol
,
theTranslator
->
trMore
());
ol
.
endTextLink
();
ol
.
endTextLink
();
ol
.
enableAll
();
ol
.
enableAll
();
}
}
...
@@ -81,6 +86,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -81,6 +86,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
enable
(
OutputGenerator
::
Man
);
ol
.
writeSynopsis
();
ol
.
writeSynopsis
();
ol
.
startMemberSections
();
if
(
classList
->
count
()
>
0
)
if
(
classList
->
count
()
>
0
)
{
{
ClassDef
*
cd
=
classList
->
first
();
ClassDef
*
cd
=
classList
->
first
();
...
@@ -92,7 +98,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -92,7 +98,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
if
(
!
found
)
if
(
!
found
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trCompounds
());
parse
Text
(
ol
,
theTranslator
->
trCompounds
());
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
ol
.
startMemberList
();
ol
.
startMemberList
();
found
=
TRUE
;
found
=
TRUE
;
...
@@ -111,13 +117,14 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -111,13 +117,14 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
case
ClassDef
:
:
Union
:
ol
.
writeString
(
"union"
);
break
;
case
ClassDef
:
:
Union
:
ol
.
writeString
(
"union"
);
break
;
}
}
ol
.
writeString
(
" "
);
ol
.
writeString
(
" "
);
ol
.
insertMemberAlign
();
if
(
cd
->
hasDocumentation
())
if
(
cd
->
hasDocumentation
())
{
{
ol
.
writeObjectLink
(
cd
->
getReference
(),
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFil
e
(),
cd
->
getOutputFileBas
e
(),
0
,
0
,
clName
clName
);
);
}
}
else
else
{
{
...
@@ -133,13 +140,17 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -133,13 +140,17 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
}
}
writeMemberDecs
(
ol
,
0
,
this
,
0
,
0
,
0
,
memList
);
writeMemberDecs
(
ol
,
0
,
this
,
0
,
0
,
0
,
memList
);
ol
.
endMemberSections
();
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
()
||
!
documentation
().
isEmpty
())
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
writeAnchor
(
"details"
);
bool
latexOn
=
ol
.
isEnabled
(
OutputGenerator
::
Latex
);
if
(
latexOn
)
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
writeAnchor
(
"_details"
);
if
(
latexOn
)
ol
.
enable
(
OutputGenerator
::
Latex
);
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trDetailedDescription
());
parse
Text
(
ol
,
theTranslator
->
trDetailedDescription
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
if
(
!
briefDescription
().
isEmpty
())
if
(
!
briefDescription
().
isEmpty
())
{
{
...
@@ -148,7 +159,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -148,7 +159,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
}
}
if
(
!
documentation
().
isEmpty
())
if
(
!
documentation
().
isEmpty
())
{
{
parseDoc
(
ol
,
0
,
0
,
documentation
()
+
"
\n
"
);
parseDoc
(
ol
,
name
()
,
0
,
documentation
()
+
"
\n
"
);
ol
.
newParagraph
();
ol
.
newParagraph
();
}
}
}
}
...
@@ -159,7 +170,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -159,7 +170,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFunctionPrototypeDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trFunctionPrototypeDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Prototype
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Prototype
);
}
}
...
@@ -168,7 +179,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -168,7 +179,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trTypedefDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trTypedefDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Typedef
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Typedef
);
}
}
...
@@ -177,7 +188,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -177,7 +188,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trEnumerationTypeDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trEnumerationTypeDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Enumeration
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Enumeration
);
}
}
...
@@ -186,7 +197,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -186,7 +197,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trEnumerationValueDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trEnumerationValueDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
EnumValue
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
EnumValue
);
}
}
...
@@ -195,7 +206,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -195,7 +206,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFunctionDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trFunctionDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Function
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Function
);
}
}
...
@@ -204,7 +215,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -204,7 +215,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
{
{
ol
.
writeRuler
();
ol
.
writeRuler
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trVariableDocumentation
());
parse
Text
(
ol
,
theTranslator
->
trVariableDocumentation
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Variable
);
writeMemberDocs
(
ol
,
memList
,
name
(),
MemberDef
::
Variable
);
}
}
...
@@ -212,9 +223,15 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -212,9 +223,15 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
// write Author section (Man only)
// write Author section (Man only)
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
disableAllBut
(
OutputGenerator
::
Man
);
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trAuthor
());
parse
Text
(
ol
,
theTranslator
->
trAuthor
());
ol
.
endGroupHeader
();
ol
.
endGroupHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trGeneratedAutomatically
(
projectName
));
parse
Text
(
ol
,
theTranslator
->
trGeneratedAutomatically
(
projectName
));
ol
.
enableAll
();
ol
.
enableAll
();
endFile
(
ol
);
endFile
(
ol
);
}
}
int
NamespaceDef
::
countMembers
()
{
memList
->
countDocMembers
();
return
memList
->
totalCount
()
+
classList
->
count
();
}
src/namespacedef.h
View file @
e04496cb
...
@@ -31,16 +31,20 @@ class MemberDef;
...
@@ -31,16 +31,20 @@ class MemberDef;
class
NamespaceDef
:
public
Definition
class
NamespaceDef
:
public
Definition
{
{
public
:
public
:
NamespaceDef
(
const
char
*
name
);
NamespaceDef
(
const
char
*
name
,
const
char
*
ref
=
0
);
~
NamespaceDef
();
~
NamespaceDef
();
QString
namespaceFile
()
const
{
return
fileName
;
}
//QString namespaceFile() const { return fileName; }
QString
getOutputFileBase
()
const
{
return
fileName
;
}
void
insertUsedFile
(
const
char
*
fname
);
void
insertUsedFile
(
const
char
*
fname
);
void
writeDocumentation
(
OutputList
&
ol
);
void
writeDocumentation
(
OutputList
&
ol
);
void
insertClass
(
ClassDef
*
cd
);
void
insertClass
(
ClassDef
*
cd
);
void
insertMember
(
MemberDef
*
md
);
void
insertMember
(
MemberDef
*
md
);
void
computeAnchors
();
void
computeAnchors
();
int
countMembers
();
const
char
*
getReference
()
{
return
reference
;
}
private
:
private
:
QString
reference
;
QString
fileName
;
QString
fileName
;
QStrList
files
;
QStrList
files
;
ClassList
*
classList
;
ClassList
*
classList
;
...
...
src/outputgen.h
View file @
e04496cb
...
@@ -84,12 +84,15 @@ class OutputGenerator
...
@@ -84,12 +84,15 @@ class OutputGenerator
virtual
void
endGroupHeader
()
=
0
;
virtual
void
endGroupHeader
()
=
0
;
virtual
void
writeListItem
()
=
0
;
virtual
void
writeListItem
()
=
0
;
virtual
void
startMemberSections
()
=
0
;
virtual
void
endMemberSections
()
=
0
;
virtual
void
startMemberHeader
()
=
0
;
virtual
void
startMemberHeader
()
=
0
;
virtual
void
endMemberHeader
()
=
0
;
virtual
void
endMemberHeader
()
=
0
;
virtual
void
startMemberList
()
=
0
;
virtual
void
startMemberList
()
=
0
;
virtual
void
endMemberList
()
=
0
;
virtual
void
endMemberList
()
=
0
;
virtual
void
startMemberItem
()
=
0
;
virtual
void
startMemberItem
()
=
0
;
virtual
void
endMemberItem
()
=
0
;
virtual
void
endMemberItem
()
=
0
;
virtual
void
insertMemberAlign
()
=
0
;
virtual
void
writeRuler
()
=
0
;
virtual
void
writeRuler
()
=
0
;
virtual
void
writeAnchor
(
const
char
*
name
)
=
0
;
virtual
void
writeAnchor
(
const
char
*
name
)
=
0
;
...
@@ -103,6 +106,7 @@ class OutputGenerator
...
@@ -103,6 +106,7 @@ class OutputGenerator
virtual
void
endMemberDoc
()
=
0
;
virtual
void
endMemberDoc
()
=
0
;
virtual
void
writeDoxyAnchor
(
const
char
*
clName
,
const
char
*
anchor
,
const
char
*
name
)
=
0
;
virtual
void
writeDoxyAnchor
(
const
char
*
clName
,
const
char
*
anchor
,
const
char
*
name
)
=
0
;
virtual
void
writeLatexSpacing
()
=
0
;
virtual
void
writeLatexSpacing
()
=
0
;
virtual
void
writeLatexLabel
(
const
char
*
clName
,
const
char
*
anchor
)
=
0
;
virtual
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
virtual
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
const
char
*
path
,
const
char
*
name
)
=
0
;
const
char
*
path
,
const
char
*
name
)
=
0
;
virtual
void
writeEndAnnoItem
(
const
char
*
name
)
=
0
;
virtual
void
writeEndAnnoItem
(
const
char
*
name
)
=
0
;
...
@@ -144,6 +148,7 @@ class OutputGenerator
...
@@ -144,6 +148,7 @@ class OutputGenerator
virtual
void
writeSection
(
const
char
*
,
const
char
*
,
bool
)
=
0
;
virtual
void
writeSection
(
const
char
*
,
const
char
*
,
bool
)
=
0
;
virtual
void
writeSectionRef
(
const
char
*
,
const
char
*
,
const
char
*
)
=
0
;
virtual
void
writeSectionRef
(
const
char
*
,
const
char
*
,
const
char
*
)
=
0
;
virtual
void
writeSectionRefItem
(
const
char
*
,
const
char
*
,
const
char
*
)
=
0
;
virtual
void
writeSectionRefItem
(
const
char
*
,
const
char
*
,
const
char
*
)
=
0
;
virtual
void
writeSectionRefAnchor
(
const
char
*
,
const
char
*
,
const
char
*
)
=
0
;
virtual
void
lineBreak
()
=
0
;
virtual
void
lineBreak
()
=
0
;
virtual
void
addToIndex
(
const
char
*
s1
,
const
char
*
s2
)
=
0
;
virtual
void
addToIndex
(
const
char
*
s1
,
const
char
*
s2
)
=
0
;
virtual
void
startIndent
()
=
0
;
virtual
void
startIndent
()
=
0
;
...
...
src/outputlist.h
View file @
e04496cb
...
@@ -129,6 +129,10 @@ class OutputList
...
@@ -129,6 +129,10 @@ class OutputList
{
forall
(
&
OutputGenerator
::
endGroupHeader
);
}
{
forall
(
&
OutputGenerator
::
endGroupHeader
);
}
void
writeListItem
()
void
writeListItem
()
{
forall
(
&
OutputGenerator
::
writeListItem
);
}
{
forall
(
&
OutputGenerator
::
writeListItem
);
}
void
startMemberSections
()
{
forall
(
&
OutputGenerator
::
startMemberSections
);
}
void
endMemberSections
()
{
forall
(
&
OutputGenerator
::
endMemberSections
);
}
void
startMemberHeader
()
void
startMemberHeader
()
{
forall
(
&
OutputGenerator
::
startMemberHeader
);
}
{
forall
(
&
OutputGenerator
::
startMemberHeader
);
}
void
endMemberHeader
()
void
endMemberHeader
()
...
@@ -141,6 +145,8 @@ class OutputList
...
@@ -141,6 +145,8 @@ class OutputList
{
forall
(
&
OutputGenerator
::
startMemberItem
);
}
{
forall
(
&
OutputGenerator
::
startMemberItem
);
}
void
endMemberItem
()
void
endMemberItem
()
{
forall
(
&
OutputGenerator
::
endMemberItem
);
}
{
forall
(
&
OutputGenerator
::
endMemberItem
);
}
void
insertMemberAlign
()
{
forall
(
&
OutputGenerator
::
insertMemberAlign
);
}
void
writeRuler
()
void
writeRuler
()
{
forall
(
&
OutputGenerator
::
writeRuler
);
}
{
forall
(
&
OutputGenerator
::
writeRuler
);
}
void
writeAnchor
(
const
char
*
name
)
void
writeAnchor
(
const
char
*
name
)
...
@@ -165,6 +171,8 @@ class OutputList
...
@@ -165,6 +171,8 @@ class OutputList
{
forall
(
&
OutputGenerator
::
writeDoxyAnchor
,
clName
,
anchor
,
name
);
}
{
forall
(
&
OutputGenerator
::
writeDoxyAnchor
,
clName
,
anchor
,
name
);
}
void
writeLatexSpacing
()
void
writeLatexSpacing
()
{
forall
(
&
OutputGenerator
::
writeLatexSpacing
);
}
{
forall
(
&
OutputGenerator
::
writeLatexSpacing
);
}
void
writeLatexLabel
(
const
char
*
scope
,
const
char
*
anchor
)
{
forall
(
&
OutputGenerator
::
writeLatexLabel
,
scope
,
anchor
);
}
void
startDescription
()
void
startDescription
()
{
forall
(
&
OutputGenerator
::
startDescription
);
}
{
forall
(
&
OutputGenerator
::
startDescription
);
}
void
endDescription
()
void
endDescription
()
...
@@ -251,6 +259,8 @@ class OutputList
...
@@ -251,6 +259,8 @@ class OutputList
{
forall
(
&
OutputGenerator
::
writeSectionRef
,
page
,
lab
,
title
);
}
{
forall
(
&
OutputGenerator
::
writeSectionRef
,
page
,
lab
,
title
);
}
void
writeSectionRefItem
(
const
char
*
page
,
const
char
*
lab
,
const
char
*
title
)
void
writeSectionRefItem
(
const
char
*
page
,
const
char
*
lab
,
const
char
*
title
)
{
forall
(
&
OutputGenerator
::
writeSectionRefItem
,
page
,
lab
,
title
);
}
{
forall
(
&
OutputGenerator
::
writeSectionRefItem
,
page
,
lab
,
title
);
}
void
writeSectionRefAnchor
(
const
char
*
page
,
const
char
*
lab
,
const
char
*
title
)
{
forall
(
&
OutputGenerator
::
writeSectionRefAnchor
,
page
,
lab
,
title
);
}
void
addToIndex
(
const
char
*
s1
,
const
char
*
s2
)
void
addToIndex
(
const
char
*
s1
,
const
char
*
s2
)
{
forall
(
&
OutputGenerator
::
addToIndex
,
s1
,
s2
);
}
{
forall
(
&
OutputGenerator
::
addToIndex
,
s1
,
s2
);
}
void
writeSynopsis
()
void
writeSynopsis
()
...
...
src/pre.l
View file @
e04496cb
...
@@ -1160,11 +1160,11 @@ BN [ \t\r\n]
...
@@ -1160,11 +1160,11 @@ BN [ \t\r\n]
<SkipCommand>.
<SkipCommand>.
<SkipLine>[^/\n]+
<SkipLine>[^/\n]+
<SkipLine>.
<SkipLine>.
<SkipLine
>"//"
{
<SkipLine
,SkipCommand,SkipCPPBlock>"//"
{
lastCPPContext=YY_START;
lastCPPContext=YY_START;
BEGIN(RemoveCPPComment);
BEGIN(RemoveCPPComment);
}
}
<SkipLine
>"/*"
{
<SkipLine
,SkipCommand,SkipCPPBlock>"/*"
{
lastCContext=YY_START;
lastCContext=YY_START;
BEGIN(RemoveCComment);
BEGIN(RemoveCComment);
}
}
...
...
src/scanner.h
View file @
e04496cb
...
@@ -31,4 +31,5 @@ extern void parseDoc(OutputList &ol,const char *clName, const char *memName,
...
@@ -31,4 +31,5 @@ extern void parseDoc(OutputList &ol,const char *clName, const char *memName,
const
QString
&
docString
);
const
QString
&
docString
);
extern
void
parseExample
(
OutputList
&
ol
,
const
QString
&
docString
,
extern
void
parseExample
(
OutputList
&
ol
,
const
QString
&
docString
,
const
char
*
fileName
);
const
char
*
fileName
);
extern
void
parseText
(
OutputList
&
ol
,
const
QString
&
txtString
);
#endif
#endif
src/scanner.l
View file @
e04496cb
...
@@ -76,6 +76,7 @@ static int lastCodeState;
...
@@ -76,6 +76,7 @@ static int lastCodeState;
static int lastAfterDocContext;
static int lastAfterDocContext;
static int lastGroupContext;
static int lastGroupContext;
static int lastFormulaContext;
static int lastFormulaContext;
static int lastAnchorContext;
static int nextDefContext;
static int nextDefContext;
static Protection protection;
static Protection protection;
static Protection baseProt;
static Protection baseProt;
...
@@ -120,7 +121,8 @@ static char afterDocTerminator;
...
@@ -120,7 +121,8 @@ static char afterDocTerminator;
static int tmpDocType;
static int tmpDocType;
static QString sectionLabel;
static QString sectionLabel;
static QString sectionTitle;
static QString sectionTitle;
static bool isSubsection;
static SectionInfo::SectionType
sectionType;
static QString funcPtrType;
static QString funcPtrType;
static QString templateStr;
static QString templateStr;
static QString baseName;
static QString baseName;
...
@@ -184,7 +186,6 @@ static void initParser()
...
@@ -184,7 +186,6 @@ static void initParser()
inParBlock = FALSE;
inParBlock = FALSE;
firstSeeArg = FALSE;
firstSeeArg = FALSE;
javaDocSee = FALSE;
javaDocSee = FALSE;
isSubsection = FALSE;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
...
@@ -532,12 +533,19 @@ static void addSection()
...
@@ -532,12 +533,19 @@ static void addSection()
{
{
//printf("New section pageName=%s label=%s title=%s\n",
//printf("New section pageName=%s label=%s title=%s\n",
// current->name.data(),sectionLabel.data(),sectionTitle.data());
// current->name.data(),sectionLabel.data(),sectionTitle.data());
SectionInfo *si=new SectionInfo(current->name,
if (sectionLabel.isEmpty()) return;
sectionLabel,sectionTitle,isSubsection);
if (sectionDict[sectionLabel]==0)
sectionDict.insert(sectionLabel,si);
{
SectionInfo *si=new SectionInfo(sectionLabel,sectionTitle,sectionType);
sectionDict.insert(sectionLabel,si);
current->anchors->append(new QString(sectionLabel));
}
else
{
warn("Warning: Duplicate label %s found!\n",sectionLabel.data());
}
}
}
// Adds a formula text to the list/dictionary of formulas if it was
// Adds a formula text to the list/dictionary of formulas if it was
// not already added. Returns the label of the formula.
// not already added. Returns the label of the formula.
static QString addFormula()
static QString addFormula()
...
@@ -710,6 +718,7 @@ VAR [vV][aA][rR]
...
@@ -710,6 +718,7 @@ VAR [vV][aA][rR]
%x MemberSpec
%x MemberSpec
%x MemberSpecSkip
%x MemberSpecSkip
%x SkipVerbatim
%x SkipVerbatim
%x Text
%x DocScan
%x DocScan
%x DocParam
%x DocParam
%x DocException
%x DocException
...
@@ -742,6 +751,8 @@ VAR [vV][aA][rR]
...
@@ -742,6 +751,8 @@ VAR [vV][aA][rR]
%x DocVerbInc
%x DocVerbInc
%x DocIndexWord
%x DocIndexWord
%x DocRef
%x DocRef
%x DocRefArg
%x DocRefArgStart
%x DocRefItem
%x DocRefItem
%x DocRefItemName
%x DocRefItemName
%x SectionLabel
%x SectionLabel
...
@@ -756,6 +767,7 @@ VAR [vV][aA][rR]
...
@@ -756,6 +767,7 @@ VAR [vV][aA][rR]
%x DocSkipHtmlComment
%x DocSkipHtmlComment
%x ReadFormulaShort
%x ReadFormulaShort
%x ReadFormulaLong
%x ReadFormulaLong
%x AnchorLabel
%%
%%
...
@@ -798,13 +810,13 @@ VAR [vV][aA][rR]
...
@@ -798,13 +810,13 @@ VAR [vV][aA][rR]
<DocScan>"<!--" { BEGIN(DocSkipHtmlComment); }
<DocScan>"<!--" { BEGIN(DocSkipHtmlComment); }
<DocSkipHtmlComment>"--"[!]?">" { BEGIN(DocScan); }
<DocSkipHtmlComment>"--"[!]?">" { BEGIN(DocScan); }
<DocSkipHtmlComment>.
<DocSkipHtmlComment>.
<DocScan>"©" { outDoc->writeCopyright(); }
<DocScan
,Text
>"©" { outDoc->writeCopyright(); }
<DocScan>""" { outDoc->writeQuote(); }
<DocScan
,Text
>""" { outDoc->writeQuote(); }
<DocScan>"&"[AEIOUYaeiouy]"uml;" { outDoc->writeUmlaut(yytext[1]); }
<DocScan
,Text
>"&"[AEIOUYaeiouy]"uml;" { outDoc->writeUmlaut(yytext[1]); }
<DocScan>"&"[AEIOUYaeiouy]"acute;" { outDoc->writeAcute(yytext[1]); }
<DocScan
,Text
>"&"[AEIOUYaeiouy]"acute;" { outDoc->writeAcute(yytext[1]); }
<DocScan>"&"[AEIOUaeiou]"grave;" { outDoc->writeGrave(yytext[1]); }
<DocScan
,Text
>"&"[AEIOUaeiou]"grave;" { outDoc->writeGrave(yytext[1]); }
<DocScan
>"&"[AEIOUaeiou]"circ;"
{ outDoc->writeCirc(yytext[1]); }
<DocScan
,Text>"&"[AEIOUaeiou]"circ;"
{ outDoc->writeCirc(yytext[1]); }
<DocScan
>"&"[ANOano]"tilde;"
{ outDoc->writeTilde(yytext[1]); }
<DocScan
,Text>"&"[ANOano]"tilde;"
{ outDoc->writeTilde(yytext[1]); }
<DocScan,DocHtmlScan,DocLatexScan>"$("[a-z_A-Z]+")" {
<DocScan,DocHtmlScan,DocLatexScan>"$("[a-z_A-Z]+")" {
QString envvar=&yytext[2];
QString envvar=&yytext[2];
envvar=envvar.left(envvar.length()-1);
envvar=envvar.left(envvar.length()-1);
...
@@ -914,7 +926,7 @@ VAR [vV][aA][rR]
...
@@ -914,7 +926,7 @@ VAR [vV][aA][rR]
outDoc->writeFormula(formName,formula->getFormulaText());
outDoc->writeFormula(formName,formula->getFormulaText());
}
}
}
}
<DocIndexWord>[^\n
\t
]+ {
<DocIndexWord>[^\n]+ {
//printf("Adding %s to index\n",yytext);
//printf("Adding %s to index\n",yytext);
outDoc->addToIndex(yytext,0);
outDoc->addToIndex(yytext,0);
BEGIN(DocScan);
BEGIN(DocScan);
...
@@ -1124,7 +1136,7 @@ VAR [vV][aA][rR]
...
@@ -1124,7 +1136,7 @@ VAR [vV][aA][rR]
outDoc->docify(" - ");
outDoc->docify(" - ");
BEGIN(DocScan);
BEGIN(DocScan);
}
}
<DocScan>
("\\"|"@")"section "{ID}"\n"
{
<DocScan>
"\\section "{ID}"\n"
{
QString secName=&yytext[9]; // skip "\section "
QString secName=&yytext[9]; // skip "\section "
secName=secName.left(secName.length()-1); // remove \n
secName=secName.left(secName.length()-1); // remove \n
//printf("SectionName %s found\n",secName.data());
//printf("SectionName %s found\n",secName.data());
...
@@ -1132,7 +1144,17 @@ VAR [vV][aA][rR]
...
@@ -1132,7 +1144,17 @@ VAR [vV][aA][rR]
if ((sec=sectionDict[secName]))
if ((sec=sectionDict[secName]))
{
{
//printf("Title %s\n",sec->title.data());
//printf("Title %s\n",sec->title.data());
outDoc->writeSection(sec->label,sec->title,sec->isSubsection);
outDoc->writeSection(sec->label,sec->title,
sec->type==SectionInfo::Subsection);
}
}
<DocScan>"\\anchor "{ID}"\n" {
QString secName=&yytext[8];
secName=secName.left(secName.length()-1);
SectionInfo *sec;
if ((sec=sectionDict[secName]))
{
outDoc->writeAnchor(sec->label);
}
}
}
}
<DocScan>"\\ref" {
<DocScan>"\\ref" {
...
@@ -1146,7 +1168,19 @@ VAR [vV][aA][rR]
...
@@ -1146,7 +1168,19 @@ VAR [vV][aA][rR]
SectionInfo *sec;
SectionInfo *sec;
if ((sec=sectionDict[ref]))
if ((sec=sectionDict[ref]))
{
{
outDoc->writeSectionRef(sec->pageName,sec->label,sec->title);
QString text;
if (sec->title.isEmpty())
text=sec->label;
else
text=sec->title;
if (sec->type==SectionInfo::Anchor)
{
outDoc->writeSectionRefAnchor(sec->fileName,sec->label,text);
}
else
{
outDoc->writeSectionRef(sec->fileName,sec->label,text);
}
}
}
else
else
{
{
...
@@ -1155,6 +1189,35 @@ VAR [vV][aA][rR]
...
@@ -1155,6 +1189,35 @@ VAR [vV][aA][rR]
}
}
BEGIN(DocScan);
BEGIN(DocScan);
}
}
<DocRefName>{ID}/{B}+"\"" {
sectionRef=yytext;
BEGIN(DocRefArgStart);
}
<DocRefArgStart>"\"" {
BEGIN(DocRefArg);
}
<DocRefArg>[^\"\n]+[\n\"] {
yytext[yyleng-1]='\0';
QString text=substitute(yytext,"\\\\","\\");
SectionInfo *sec;
if ((sec=sectionDict[sectionRef]))
{
if (sec->type==SectionInfo::Anchor)
{
outDoc->writeSectionRefAnchor(sec->fileName,sec->label,text);
}
else
{
outDoc->writeSectionRef(sec->fileName,sec->label,text);
}
}
else
{
warn("Warning: reference to unknown section %s!\n",sectionRef.data());
outDoc->writeBoldString("unknown reference!");
}
BEGIN(DocScan);
}
<DocRefItem>{ID} {
<DocRefItem>{ID} {
sectionRef=yytext;
sectionRef=yytext;
BEGIN(DocRefItemName);
BEGIN(DocRefItemName);
...
@@ -1163,7 +1226,7 @@ VAR [vV][aA][rR]
...
@@ -1163,7 +1226,7 @@ VAR [vV][aA][rR]
SectionInfo *sec;
SectionInfo *sec;
if ((sec=sectionDict[sectionRef]))
if ((sec=sectionDict[sectionRef]))
{
{
outDoc->writeSectionRefItem(sec->
pag
eName,sec->label,yytext);
outDoc->writeSectionRefItem(sec->
fil
eName,sec->label,yytext);
}
}
else
else
{
{
...
@@ -1271,6 +1334,10 @@ VAR [vV][aA][rR]
...
@@ -1271,6 +1334,10 @@ VAR [vV][aA][rR]
<DocKeyEnd>("\\"|"@")"until"{BN}+ { BEGIN(DocUntilKey); }
<DocKeyEnd>("\\"|"@")"until"{BN}+ { BEGIN(DocUntilKey); }
<DocKeyEnd>("\\"|"@")"skipline"{BN}+ { BEGIN(DocSkiplineKey); }
<DocKeyEnd>("\\"|"@")"skipline"{BN}+ { BEGIN(DocSkiplineKey); }
<DocKeyEnd>\n
<DocKeyEnd>\n
<DocKeyEnd><<EOF>> {
if (!firstLine) outDoc->endCodeFragment();
yyterminate();
}
<DocKeyEnd>. {
<DocKeyEnd>. {
unput(*yytext);
unput(*yytext);
if (!firstLine) outDoc->endCodeFragment();
if (!firstLine) outDoc->endCodeFragment();
...
@@ -1462,7 +1529,7 @@ VAR [vV][aA][rR]
...
@@ -1462,7 +1529,7 @@ VAR [vV][aA][rR]
<DocScan>{BN}+ {
<DocScan>{BN}+ {
outDoc->writeChar(' ');
outDoc->writeChar(' ');
}
}
<DocCode,DocEmphasis,DocBold,DocScan>. {
<DocCode,DocEmphasis,DocBold,DocScan
,Text
>. {
outDoc->writeChar(*yytext);
outDoc->writeChar(*yytext);
}
}
<NextSemi>"{" { BEGIN(SkipBlock); }
<NextSemi>"{" { BEGIN(SkipBlock); }
...
@@ -1472,6 +1539,9 @@ VAR [vV][aA][rR]
...
@@ -1472,6 +1539,9 @@ VAR [vV][aA][rR]
else
else
BEGIN( NextSemi ) ;
BEGIN( NextSemi ) ;
}
}
<NextSemi>"'"\\[0-7]{1,3}"'"
<NextSemi>"'"\\."'"
<NextSemi>"'"."'"
<NextSemi>\" {
<NextSemi>\" {
lastStringContext=NextSemi;
lastStringContext=NextSemi;
BEGIN(SkipString);
BEGIN(SkipString);
...
@@ -1556,6 +1626,9 @@ VAR [vV][aA][rR]
...
@@ -1556,6 +1626,9 @@ VAR [vV][aA][rR]
/*
/*
<FindMembers>"inline"
<FindMembers>"inline"
*/
*/
<FindMembers>{BN}+ {
lineCount();
}
<FindMembers>{B}*"static"{BN}+ { //current->type += " static ";
<FindMembers>{B}*"static"{BN}+ { //current->type += " static ";
current->stat = TRUE;
current->stat = TRUE;
lineCount();
lineCount();
...
@@ -2081,8 +2154,8 @@ VAR [vV][aA][rR]
...
@@ -2081,8 +2154,8 @@ VAR [vV][aA][rR]
}
}
<MemberSpecSkip>"," { BEGIN(MemberSpec); }
<MemberSpecSkip>"," { BEGIN(MemberSpec); }
<MemberSpecSkip>";" { unput(';'); BEGIN(MemberSpec); }
<MemberSpecSkip>";" { unput(';'); BEGIN(MemberSpec); }
<Curly>
\n
{ current->program += yytext ;
<Curly>
{BN}+
{ current->program += yytext ;
yyLineNr++
;
lineCount()
;
}
}
<Curly>. { current->program += yytext ; }
<Curly>. { current->program += yytext ; }
...
@@ -2404,7 +2477,9 @@ VAR [vV][aA][rR]
...
@@ -2404,7 +2477,9 @@ VAR [vV][aA][rR]
//BEGIN( FindMembers ) ;
//BEGIN( FindMembers ) ;
BEGIN( lastCurlyContext ) ;
BEGIN( lastCurlyContext ) ;
}
}
<SkipCurly>\'.\'
<SkipCurly>"'"\\[0-7]{1,3}"'"
<SkipCurly>"'"\\."'"
<SkipCurly>"'"."'"
<SkipCurly>\" {
<SkipCurly>\" {
lastStringContext=SkipCurly;
lastStringContext=SkipCurly;
BEGIN( SkipString );
BEGIN( SkipString );
...
@@ -2538,15 +2613,16 @@ VAR [vV][aA][rR]
...
@@ -2538,15 +2613,16 @@ VAR [vV][aA][rR]
);
);
BEGIN( Curly ) ;
BEGIN( Curly ) ;
}
}
<Comment>
\n
{ current->program += yytext ;
<Comment>
{BN}+
{ current->program += yytext ;
yyLineNr++
;
lineCount()
;
}
}
<Comment>"/*" { current->program += yytext ; }
<Comment>"/*" { current->program += yytext ; }
<Comment>"//" { current->program += yytext ; }
<Comment>"//" { current->program += yytext ; }
<Comment>
. { current->program += *
yytext ; }
<Comment>
[^\n\*]+ { current->program +=
yytext ; }
<Comment>.*"*/" { current->program += yytext ;
<Comment>.*"*/" { current->program += yytext ;
BEGIN( Curly ) ;
BEGIN( Curly ) ;
}
}
<Comment>. { current->program += *yytext ; }
<FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator>("//"{B}*)?"/*!" {
<FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator>("//"{B}*)?"/*!" {
removeSlashes=(yytext[1]=='/');
removeSlashes=(yytext[1]=='/');
...
@@ -2596,7 +2672,7 @@ VAR [vV][aA][rR]
...
@@ -2596,7 +2672,7 @@ VAR [vV][aA][rR]
current->inside = current_root->name+"::";
current->inside = current_root->name+"::";
BEGIN( LineDoc );
BEGIN( LineDoc );
}
}
<FindMembers>"extern"{BN}+"\"C"("++")?"\""{BN}
+
("{")?
<FindMembers>"extern"{BN}+"\"C"("++")?"\""{BN}
*
("{")?
<FindMembers>"{" {
<FindMembers>"{" {
current->type.resize(0);
current->type.resize(0);
current->name.resize(0);
current->name.resize(0);
...
@@ -2846,13 +2922,18 @@ VAR [vV][aA][rR]
...
@@ -2846,13 +2922,18 @@ VAR [vV][aA][rR]
current->doc+=yytext;
current->doc+=yytext;
}
}
<PageDoc>("\\"|"@")"section"{B}+ {
<PageDoc>("\\"|"@")"section"{B}+ {
isSubsection=FALSE
;
sectionType=SectionInfo::Section
;
BEGIN(SectionLabel);
BEGIN(SectionLabel);
}
}
<PageDoc>("\\"|"@")"subsection"{B}+ {
<PageDoc>("\\"|"@")"subsection"{B}+ {
isSubsection=TRUE
;
sectionType=SectionInfo::Subsection
;
BEGIN(SectionLabel);
BEGIN(SectionLabel);
}
}
<Doc,PageDoc,JavaDoc,ClassDoc>("\\"|"@")anchor{B}+ {
lastAnchorContext = YY_START;
sectionType=SectionInfo::Anchor;
BEGIN(AnchorLabel);
}
<Doc,PageDoc,JavaDoc,ClassDoc>"\\\\verbatim"/[^a-z_A-Z0-9] {
<Doc,PageDoc,JavaDoc,ClassDoc>"\\\\verbatim"/[^a-z_A-Z0-9] {
current->doc+="\\\\verbatim";
current->doc+="\\\\verbatim";
}
}
...
@@ -2861,6 +2942,9 @@ VAR [vV][aA][rR]
...
@@ -2861,6 +2942,9 @@ VAR [vV][aA][rR]
current->doc+="\\verbatim";
current->doc+="\\verbatim";
BEGIN(SkipVerbatim);
BEGIN(SkipVerbatim);
}
}
<Doc,PageDoc,JavaDoc,ClassDoc>"\\addindex"{B}+[^\n]+ {
current->doc+=yytext;
}
<Doc,PageDoc,JavaDoc,ClassDoc>"\\\\code"/[^a-z_A-Z0-9] {
<Doc,PageDoc,JavaDoc,ClassDoc>"\\\\code"/[^a-z_A-Z0-9] {
current->doc+="\\\\code";
current->doc+="\\\\code";
}
}
...
@@ -2928,7 +3012,13 @@ VAR [vV][aA][rR]
...
@@ -2928,7 +3012,13 @@ VAR [vV][aA][rR]
<SkipCode>. {
<SkipCode>. {
current->doc+=*yytext;
current->doc+=*yytext;
}
}
<SectionLabel>[a-z_A-Z0-9]+ {
<AnchorLabel>{ID} {
sectionLabel=yytext;
addSection();
current->doc += "\\anchor "+sectionLabel+"\n";
BEGIN(lastAnchorContext);
}
<SectionLabel>{ID} {
sectionLabel=yytext;
sectionLabel=yytext;
sectionTitle.resize(0);
sectionTitle.resize(0);
BEGIN(SectionTitle);
BEGIN(SectionTitle);
...
@@ -3220,15 +3310,18 @@ void scanString(const char *s)
...
@@ -3220,15 +3310,18 @@ void scanString(const char *s)
{
{
const char *oldInputString = inputString;
const char *oldInputString = inputString;
int oldInputPosition = inputPosition;
int oldInputPosition = inputPosition;
int oldRule = YY_START;
YY_BUFFER_STATE oldBuffer = YY_CURRENT_BUFFER;
YY_BUFFER_STATE oldBuffer = YY_CURRENT_BUFFER;
yy_switch_to_buffer(yy_create_buffer(scanYYin, YY_BUF_SIZE));
yy_switch_to_buffer(yy_create_buffer(scanYYin, YY_BUF_SIZE));
inputString = s;
inputString = s;
inputPosition = 0;
inputPosition = 0;
BEGIN( Text );
scanYYlex();
scanYYlex();
yy_delete_buffer(YY_CURRENT_BUFFER);
yy_delete_buffer(YY_CURRENT_BUFFER);
yy_switch_to_buffer(oldBuffer);
yy_switch_to_buffer(oldBuffer);
inputString = oldInputString;
inputString = oldInputString;
inputPosition = oldInputPosition;
inputPosition = oldInputPosition;
BEGIN( oldRule );
}
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
...
@@ -3308,6 +3401,7 @@ void parseMain(Entry *rt)
...
@@ -3308,6 +3401,7 @@ void parseMain(Entry *rt)
global_root = rt;
global_root = rt;
current = new Entry;
current = new Entry;
inputString = rt->program;
inputString = rt->program;
//printf("parseDoc=`%s'\n",inputString);
inputPosition = 0;
inputPosition = 0;
ifCount=0;
ifCount=0;
scanYYrestart( scanYYin );
scanYYrestart( scanYYin );
...
@@ -3367,6 +3461,21 @@ void parseDoc(OutputList &ol,const char *clName,
...
@@ -3367,6 +3461,21 @@ void parseDoc(OutputList &ol,const char *clName,
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
void parseText(OutputList &ol,const QString &txtString)
{
inputString = txtString;
outDoc = new OutputList(&ol);
inputPosition = 0;
scanYYrestart( scanYYin );
BEGIN( Text );
scanYYlex();
ol+=*outDoc;
delete outDoc;
return;
}
//----------------------------------------------------------------------------
void parseExample(OutputList &ol,const QString &docString,
void parseExample(OutputList &ol,const QString &docString,
const char *fileName)
const char *fileName)
{
{
...
...
src/section.h
0 → 100644
View file @
e04496cb
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-1999 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* All output generated with Doxygen is not covered by this license.
*
*/
#ifndef SECTION_H
#define SECTION_H
#include <qlist.h>
#include <qdict.h>
#include <qstring.h>
class
Definition
;
struct
SectionInfo
{
enum
SectionType
{
Section
,
Subsection
,
Anchor
};
SectionInfo
(
const
char
*
l
,
const
char
*
t
,
SectionType
st
)
{
label
=
l
;
title
=
t
;
type
=
st
;
definition
=
0
;
}
QString
fileName
;
QString
label
;
QString
title
;
SectionType
type
;
Definition
*
definition
;
};
class
SectionList
:
public
QList
<
SectionInfo
>
{
};
class
SectionDict
:
public
QDict
<
SectionInfo
>
{
public
:
SectionDict
(
int
size
)
:
QDict
<
SectionInfo
>
(
size
)
{}
};
#endif
src/tag.l
View file @
e04496cb
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
#include "classdef.h"
#include "classdef.h"
#include "filedef.h"
#include "filedef.h"
#include "namespacedef.h"
#include "memberdef.h"
#include "memberdef.h"
#include "doxygen.h"
#include "doxygen.h"
#include "util.h"
#include "util.h"
...
@@ -36,12 +37,14 @@
...
@@ -36,12 +37,14 @@
static int yyLineNr;
static int yyLineNr;
static QString className;
static QString className;
static QString fileName;
static QString fileName;
static QString namespaceName;
static QString tagName;
static QString tagName;
static QString memberName;
static QString memberName;
static QString anchorName;
static QString anchorName;
static QString argString;
static QString argString;
static ClassDef *cd;
static ClassDef *cd;
static FileDef *fd;
static FileDef *fd;
static NamespaceDef *nd;
static void addClass(const char *name,const char *fileName)
static void addClass(const char *name,const char *fileName)
{
{
...
@@ -50,6 +53,7 @@ static void addClass(const char *name,const char *fileName)
...
@@ -50,6 +53,7 @@ static void addClass(const char *name,const char *fileName)
{
{
cd = new ClassDef(name,ClassDef::Class,tagName,fileName);
cd = new ClassDef(name,ClassDef::Class,tagName,fileName);
fd = 0;
fd = 0;
nd = 0;
classList.inSort(cd);
classList.inSort(cd);
classDict.insert(className,cd);
classDict.insert(className,cd);
}
}
...
@@ -72,10 +76,27 @@ static void addFile(const char *name)
...
@@ -72,10 +76,27 @@ static void addFile(const char *name)
inputNameDict.insert(name,mn);
inputNameDict.insert(name,mn);
}
}
cd = 0;
cd = 0;
nd = 0;
//fileList.inSort(fd);
//fileList.inSort(fd);
//fileDict.insert(fileName,fd);
//fileDict.insert(fileName,fd);
}
}
static void addNamespace(const char *name)
{
if ((nd=namespaceDict[name])==0)
{
// TODO: we assume that each namespace is limited to a single tagfile.
// since namespace are open, this need not to be the case. As a result
// namespace may contain members that are located in
// different namespaces!
nd = new NamespaceDef(name,tagName);
namespaceList.inSort(nd);
namespaceDict.insert(name,nd);
}
cd = 0;
fd = 0;
}
static void addMember(const char *name,const char *anchor,const char *args)
static void addMember(const char *name,const char *anchor,const char *args)
{
{
//printf("adding member %s\n",name);
//printf("adding member %s\n",name);
...
@@ -87,21 +108,24 @@ static void addMember(const char *name,const char *anchor,const char *args)
...
@@ -87,21 +108,24 @@ static void addMember(const char *name,const char *anchor,const char *args)
md=new MemberDef(0,name,args,0,Public,Normal,FALSE,FALSE,
md=new MemberDef(0,name,args,0,Public,Normal,FALSE,FALSE,
MemberDef::Function,0,0);
MemberDef::Function,0,0);
md->setReference(anchor);
md->setReference(anchor);
if (cd)
if (cd)
// member of a class
{
{
//md=new MemberDef(cd,name,args,anchor,tagName);
md->setMemberClass(cd);
md->setMemberClass(cd);
cd->insertMember(md);
cd->insertMember(md);
//printf("Adding member %s %s to class\n",name,args);
mnd=&memberNameDict;
mnd=&memberNameDict;
mnl=&memberNameList;
mnl=&memberNameList;
}
}
else
else if (nd) // member of a namespace
{
md->setNamespace(nd);
nd->insertMember(md);
mnd=&functionNameDict;
mnl=&functionNameList;
}
else // member of a file
{
{
//md=new MemberDef(&unrelatedClass,name,args,anchor,tagName);
md->setFileDef(fd);
md->setFileDef(fd);
fd->insertMember(md);
fd->insertMember(md);
//printf("Adding global member %s %s\n",name,args);
mnd=&functionNameDict;
mnd=&functionNameDict;
mnl=&functionNameList;
mnl=&functionNameList;
}
}
...
@@ -130,6 +154,7 @@ static void addMember(const char *name,const char *anchor,const char *args)
...
@@ -130,6 +154,7 @@ static void addMember(const char *name,const char *anchor,const char *args)
ID [a-z_A-Z][a-z_A-Z0-9]*
ID [a-z_A-Z][a-z_A-Z0-9]*
FILE [a-z_A-Z0-9\.\-\+\:\\\/]+
FILE [a-z_A-Z0-9\.\-\+\:\\\/]+
SCOPE ({ID}"::")*{ID}
%x Pass1
%x Pass1
%x Pass2
%x Pass2
...
@@ -139,18 +164,22 @@ FILE [a-z_A-Z0-9\.\-\+\:\\\/]+
...
@@ -139,18 +164,22 @@ FILE [a-z_A-Z0-9\.\-\+\:\\\/]+
%x ClassName1
%x ClassName1
%x ClassName2
%x ClassName2
%x FileName
%x FileName
%x NamespaceName
%x BaseClasses
%x BaseClasses
%x ClassFile1
%x ClassFile1
%x ClassFile2
%x ClassFile2
%%
%%
<Pass1>^">" {
<Pass1>^">" {
// start of a class
BEGIN(ClassName1);
BEGIN(ClassName1);
}
}
<Pass1>^"&" {
<Pass1>^"&" {
// start of a file
BEGIN(FileName);
BEGIN(FileName);
}
}
<Pass1>^"%" { // start of a namespace
BEGIN(NamespaceName);
}
<Pass1>^[~a-z_A-Z][^ \n]*/" " {
<Pass1>^[~a-z_A-Z][^ \n]*/" " {
memberName=yytext;
memberName=yytext;
BEGIN(AnchorName);
BEGIN(AnchorName);
...
@@ -175,7 +204,12 @@ FILE [a-z_A-Z0-9\.\-\+\:\\\/]+
...
@@ -175,7 +204,12 @@ FILE [a-z_A-Z0-9\.\-\+\:\\\/]+
addFile(yytext);
addFile(yytext);
BEGIN(Pass1);
BEGIN(Pass1);
}
}
<ClassName1>{ID}/":" {
<NamespaceName>{SCOPE}/":" {
namespaceName=yytext;
addNamespace(yytext);
BEGIN(Pass1);
}
<ClassName1>{SCOPE}/":" {
className=yytext;
className=yytext;
BEGIN(ClassFile1);
BEGIN(ClassFile1);
}
}
...
...
src/translator.h
View file @
e04496cb
...
@@ -18,32 +18,67 @@
...
@@ -18,32 +18,67 @@
#define TRANSLATOR_H
#define TRANSLATOR_H
#include <qstring.h>
#include <qstring.h>
#include "classdef.h"
#include "util.h"
class
Translator
class
Translator
{
{
public
:
public
:
virtual
QString
latexBabelPackage
()
//--------------------------------------------------------------------
{
return
""
;
}
// NOTICE:
virtual
QString
trInherits
()
// the following functions are now obsolete: these are no longer used and
// will disappear in future versions. You do not have to translate them!
virtual
QString
trInherits
()
{
return
"Inherits"
;
}
{
return
"Inherits"
;
}
virtual
QString
trAnd
()
virtual
QString
trAnd
()
{
return
"and"
;
}
{
return
"and"
;
}
virtual
QString
trInheritedBy
()
virtual
QString
trInheritedBy
()
{
return
"Inherited By"
;
}
{
return
"Inherited By"
;
}
virtual
QString
trReference
()
{
return
"Reference"
;
}
virtual
QString
trReimplementedFrom
()
{
return
"Reimplemented from"
;
}
virtual
QString
trReimplementedIn
()
{
return
"Reimplemented in"
;
}
virtual
QString
trIncludeFile
()
{
return
"Include File"
;
}
virtual
QString
trNamespaces
()
{
return
"Namespace List"
;
}
// end of obsolete functions
//--------------------------------------------------------------------
virtual
QString
latexBabelPackage
()
// returns the name of the package that is included by LaTeX
{
return
""
;
}
virtual
QString
trRelatedFunctions
()
virtual
QString
trRelatedFunctions
()
// used in the compound documentation before a list of related functions.
{
return
"Related Functions"
;
}
{
return
"Related Functions"
;
}
virtual
QString
trRelatedSubscript
()
virtual
QString
trRelatedSubscript
()
// subscript for the related functions.
{
return
"(Note that these are not member functions.)"
;
}
{
return
"(Note that these are not member functions.)"
;
}
virtual
QString
trDetailedDescription
()
virtual
QString
trDetailedDescription
()
// header that is put before the detailed description of files, classes and namespaces.
{
return
"Detailed Description"
;
}
{
return
"Detailed Description"
;
}
virtual
QString
trMemberTypedefDocumentation
()
virtual
QString
trMemberTypedefDocumentation
()
// header that is put before the list of typedefs.
{
return
"Member Typedef Documentation"
;
}
{
return
"Member Typedef Documentation"
;
}
virtual
QString
trMemberEnumerationDocumentation
()
virtual
QString
trMemberEnumerationDocumentation
()
// header that is put before the list of enumerations.
{
return
"Member Enumeration Documentation"
;
}
{
return
"Member Enumeration Documentation"
;
}
virtual
QString
trMemberFunctionDocumentation
()
virtual
QString
trMemberFunctionDocumentation
()
// header that is put before the list of member functions.
{
return
"Member Function Documentation"
;
}
{
return
"Member Function Documentation"
;
}
virtual
QString
trMemberDataDocumentation
()
virtual
QString
trMemberDataDocumentation
()
// header that is put before the list of member attributes.
{
return
"Member Data Documentation"
;
}
{
return
"Member Data Documentation"
;
}
virtual
QString
trGeneratedFrom
(
const
char
*
s
,
bool
single
)
virtual
QString
trGeneratedFrom
(
const
char
*
s
,
bool
single
)
{
// here s is one of " Class", " Struct" or " Union"
{
// here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
// single is true implies a single file
...
@@ -52,62 +87,92 @@ class Translator
...
@@ -52,62 +87,92 @@ class Translator
if
(
single
)
result
+=
":"
;
else
result
+=
"s:"
;
if
(
single
)
result
+=
":"
;
else
result
+=
"s:"
;
return
result
;
return
result
;
}
}
virtual
QString
trMore
()
virtual
QString
trMore
()
// this is the text of a link put after brief descriptions.
{
return
"More..."
;
}
{
return
"More..."
;
}
virtual
QString
trReference
()
{
return
"Reference"
;
}
virtual
QString
trListOfAllMembers
()
virtual
QString
trListOfAllMembers
()
// put in the class documentation
{
return
"List of all members."
;
}
{
return
"List of all members."
;
}
virtual
QString
trMemberList
()
virtual
QString
trMemberList
()
// used as the title of the "list of all members" page of a class
{
return
"Member List"
;
}
{
return
"Member List"
;
}
virtual
QString
trThisIsTheListOfAllMembers
()
virtual
QString
trThisIsTheListOfAllMembers
()
{
return
"This is the complete list of members for"
;
}
// this is the first part of a sentence that is followed by a class name
{
return
"This is the complete list of members for "
;
}
virtual
QString
trIncludingInheritedMembers
()
virtual
QString
trIncludingInheritedMembers
()
{
return
"including all inherited members."
;
}
// this is the remainder of the sentence after the class name
{
return
", including all inherited members."
;
}
virtual
QString
trGeneratedAutomatically
(
const
char
*
s
)
virtual
QString
trGeneratedAutomatically
(
const
char
*
s
)
// this is put at the author sections at the bottom of man pages.
// parameter s is name of the project name.
{
QString
result
=
"Generated automatically by Doxygen"
;
{
QString
result
=
"Generated automatically by Doxygen"
;
if
(
s
)
result
+=
(
QString
)
" for "
+
s
;
if
(
s
)
result
+=
(
QString
)
" for "
+
s
;
result
+=
" from the source code."
;
result
+=
" from the source code."
;
return
result
;
return
result
;
}
}
virtual
QString
trEnumName
()
virtual
QString
trEnumName
()
// put after an enum name in the list of all members
{
return
"enum name"
;
}
{
return
"enum name"
;
}
virtual
QString
trEnumValue
()
virtual
QString
trEnumValue
()
// put after an enum value in the list of all members
{
return
"enum value"
;
}
{
return
"enum value"
;
}
virtual
QString
trDefinedIn
()
virtual
QString
trDefinedIn
()
// put after an undocumented member in the list of all members
{
return
"defined in"
;
}
{
return
"defined in"
;
}
virtual
QString
trIncludeFile
()
{
return
"Include File"
;
}
virtual
QString
trVerbatimText
(
const
char
*
f
)
virtual
QString
trVerbatimText
(
const
char
*
f
)
// put as in introduction in the verbatim header file of a class.
// parameter f is the name of the include file.
{
return
(
QString
)
"This is the verbatim text of the "
+
f
+
" include file."
;
}
{
return
(
QString
)
"This is the verbatim text of the "
+
f
+
" include file."
;
}
// quick reference sections
virtual
QString
trModules
()
virtual
QString
trModules
()
// This is put above each page as a link to the list of all groups of
// compounds or files (see the \group command).
{
return
"Modules"
;
}
{
return
"Modules"
;
}
virtual
QString
trClassHierarchy
()
virtual
QString
trClassHierarchy
()
// This is put above each page as a link to the class hierarchy
{
return
"Class Hierarchy"
;
}
{
return
"Class Hierarchy"
;
}
virtual
QString
trCompoundList
()
virtual
QString
trCompoundList
()
// This is put above each page as a link to the list of annotated classes
{
return
"Compound List"
;
}
{
return
"Compound List"
;
}
virtual
QString
trFileList
()
virtual
QString
trFileList
()
// This is put above each page as a link to the list of documented files
{
return
"File List"
;
}
{
return
"File List"
;
}
virtual
QString
trHeaderFiles
()
virtual
QString
trHeaderFiles
()
// This is put above each page as a link to the list of all verbatim headers
{
return
"Header Files"
;
}
{
return
"Header Files"
;
}
virtual
QString
trCompoundMembers
()
virtual
QString
trCompoundMembers
()
// This is put above each page as a link to all members of compounds.
{
return
"Compound Members"
;
}
{
return
"Compound Members"
;
}
virtual
QString
trFileMembers
()
virtual
QString
trFileMembers
()
// This is put above each page as a link to all members of files.
{
return
"File Members"
;
}
{
return
"File Members"
;
}
virtual
QString
trRelatedPages
()
virtual
QString
trRelatedPages
()
// This is put above each page as a link to all related pages.
{
return
"Related Pages"
;
}
{
return
"Related Pages"
;
}
virtual
QString
trExamples
()
virtual
QString
trExamples
()
// This is put above each page as a link to all examples.
{
return
"Examples"
;
}
{
return
"Examples"
;
}
virtual
QString
trSearch
()
virtual
QString
trSearch
()
// This is put above each page as a link to the search engine.
{
return
"Search"
;
}
{
return
"Search"
;
}
virtual
QString
trClassHierarchyDescription
()
virtual
QString
trClassHierarchyDescription
()
// This is an introduction to the class hierarchy.
{
return
"This inheritance list is sorted roughly, "
{
return
"This inheritance list is sorted roughly, "
"but not completely, alphabetically:"
;
"but not completely, alphabetically:"
;
}
}
virtual
QString
trFileListDescription
(
bool
extractAll
)
virtual
QString
trFileListDescription
(
bool
extractAll
)
// This is an introduction to the list with all files.
{
{
QString
result
=
"Here is a list of all "
;
QString
result
=
"Here is a list of all "
;
if
(
!
extractAll
)
result
+=
"documented "
;
if
(
!
extractAll
)
result
+=
"documented "
;
...
@@ -115,10 +180,12 @@ class Translator
...
@@ -115,10 +180,12 @@ class Translator
return
result
;
return
result
;
}
}
virtual
QString
trCompoundListDescription
()
virtual
QString
trCompoundListDescription
()
// This is an introduction to the annotated compound list
{
return
"Here are the classes, structs and "
{
return
"Here are the classes, structs and "
"unions with brief descriptions:"
;
"unions with brief descriptions:"
;
}
}
virtual
QString
trCompoundMembersDescription
(
bool
extractAll
)
virtual
QString
trCompoundMembersDescription
(
bool
extractAll
)
// This is an introduction to the page with all class members
{
{
QString
result
=
"Here is a list of all "
;
QString
result
=
"Here is a list of all "
;
if
(
!
extractAll
)
result
+=
"documented "
;
if
(
!
extractAll
)
result
+=
"documented "
;
...
@@ -130,6 +197,7 @@ class Translator
...
@@ -130,6 +197,7 @@ class Translator
return
result
;
return
result
;
}
}
virtual
QString
trFileMembersDescription
(
bool
extractAll
)
virtual
QString
trFileMembersDescription
(
bool
extractAll
)
// This is an introduction to the page with all file members
{
{
QString
result
=
"Here is a list of all "
;
QString
result
=
"Here is a list of all "
;
if
(
!
extractAll
)
result
+=
"documented "
;
if
(
!
extractAll
)
result
+=
"documented "
;
...
@@ -141,76 +209,134 @@ class Translator
...
@@ -141,76 +209,134 @@ class Translator
return
result
;
return
result
;
}
}
virtual
QString
trHeaderFilesDescription
()
virtual
QString
trHeaderFilesDescription
()
// This is an introduction to the page with the list of all header files
{
return
"Here are the header files that make up the API:"
;
}
{
return
"Here are the header files that make up the API:"
;
}
virtual
QString
trExamplesDescription
()
virtual
QString
trExamplesDescription
()
// This is an introduction to the page with the list of all examples
{
return
"Here is a list of all examples:"
;
}
{
return
"Here is a list of all examples:"
;
}
virtual
QString
trRelatedPagesDescription
()
virtual
QString
trRelatedPagesDescription
()
// This is an introduction to the page with the list of related pages
{
return
"Here is a list of all related documentation pages:"
;
}
{
return
"Here is a list of all related documentation pages:"
;
}
virtual
QString
trModulesDescription
()
virtual
QString
trModulesDescription
()
// This is an introduction to the page with the list of class/file groups
{
return
"Here is a list of all modules:"
;
}
{
return
"Here is a list of all modules:"
;
}
virtual
QString
trNoDescriptionAvailable
()
virtual
QString
trNoDescriptionAvailable
()
// This sentences is used in the annotated class/file lists if no brief
// description is given.
{
return
"No description available"
;
}
{
return
"No description available"
;
}
// index titles (the project name is prepended for these)
virtual
QString
trDocumentation
()
virtual
QString
trDocumentation
()
// This is used in HTML as the title of index.html.
{
return
"Documentation"
;
}
{
return
"Documentation"
;
}
virtual
QString
trModuleIndex
()
virtual
QString
trModuleIndex
()
// This is used in LaTeX as the title of the chapter with the
// index of all groups.
{
return
"Module Index"
;
}
{
return
"Module Index"
;
}
virtual
QString
trHierarchicalIndex
()
virtual
QString
trHierarchicalIndex
()
// This is used in LaTeX as the title of the chapter with the
// class hierarchy.
{
return
"Hierarchical Index"
;
}
{
return
"Hierarchical Index"
;
}
virtual
QString
trCompoundIndex
()
virtual
QString
trCompoundIndex
()
// This is used in LaTeX as the title of the chapter with the
// annotated compound index
{
return
"Compound Index"
;
}
{
return
"Compound Index"
;
}
virtual
QString
trFileIndex
()
virtual
QString
trFileIndex
()
// This is used in LaTeX as the title of the chapter with the
// list of all files.
{
return
"File Index"
;
}
{
return
"File Index"
;
}
virtual
QString
trModuleDocumentation
()
virtual
QString
trModuleDocumentation
()
// This is used in LaTeX as the title of the chapter containing
// the documentation of all groups.
{
return
"Module Documentation"
;
}
{
return
"Module Documentation"
;
}
virtual
QString
trClassDocumentation
()
virtual
QString
trClassDocumentation
()
// This is used in LaTeX as the title of the chapter containing
// the documentation of all classes, structs and unions.
{
return
"Class Documentation"
;
}
{
return
"Class Documentation"
;
}
virtual
QString
trFileDocumentation
()
virtual
QString
trFileDocumentation
()
// This is used in LaTeX as the title of the chapter containing
// the documentation of all files.
{
return
"File Documentation"
;
}
{
return
"File Documentation"
;
}
virtual
QString
trExampleDocumentation
()
virtual
QString
trExampleDocumentation
()
// This is used in LaTeX as the title of the chapter containing
// the documentation of all examples.
{
return
"Example Documentation"
;
}
{
return
"Example Documentation"
;
}
virtual
QString
trPageDocumentation
()
virtual
QString
trPageDocumentation
()
// This is used in LaTeX as the title of the chapter containing
// the documentation of all related pages.
{
return
"Page Documentation"
;
}
{
return
"Page Documentation"
;
}
virtual
QString
trReferenceManual
()
virtual
QString
trReferenceManual
()
// This is used in LaTeX as the title of the document
{
return
"Reference Manual"
;
}
{
return
"Reference Manual"
;
}
virtual
QString
trDefines
()
virtual
QString
trDefines
()
// This is used in the documentation of a file as a header before the
// list of defines
{
return
"Defines"
;
}
{
return
"Defines"
;
}
virtual
QString
trFuncProtos
()
virtual
QString
trFuncProtos
()
// This is used in the documentation of a file as a header before the
// list of function prototypes
{
return
"Function Prototypes"
;
}
{
return
"Function Prototypes"
;
}
virtual
QString
trTypedefs
()
virtual
QString
trTypedefs
()
// This is used in the documentation of a file as a header before the
// list of typedefs
{
return
"Typedefs"
;
}
{
return
"Typedefs"
;
}
virtual
QString
trEnumerations
()
virtual
QString
trEnumerations
()
// This is used in the documentation of a file as a header before the
// list of enumerations
{
return
"Enumerations"
;
}
{
return
"Enumerations"
;
}
virtual
QString
trFunctions
()
virtual
QString
trFunctions
()
// This is used in the documentation of a file as a header before the
// list of (global) functions
{
return
"Functions"
;
}
{
return
"Functions"
;
}
virtual
QString
trVariables
()
virtual
QString
trVariables
()
// This is used in the documentation of a file as a header before the
// list of (global) variables
{
return
"Variables"
;
}
{
return
"Variables"
;
}
virtual
QString
trEnumerationValues
()
virtual
QString
trEnumerationValues
()
// This is used in the documentation of a file as a header before the
// list of (global) variables
{
return
"Enumeration values"
;
}
{
return
"Enumeration values"
;
}
virtual
QString
trReimplementedFrom
()
{
return
"Reimplemented from"
;
}
virtual
QString
trReimplementedIn
()
{
return
"Reimplemented in"
;
}
virtual
QString
trAuthor
()
virtual
QString
trAuthor
()
// This is used in man pages as the author section.
{
return
"Author"
;
}
{
return
"Author"
;
}
virtual
QString
trDefineDocumentation
()
virtual
QString
trDefineDocumentation
()
// This is used in the documentation of a file before the list of
// documentation blocks for defines
{
return
"Define Documentation"
;
}
{
return
"Define Documentation"
;
}
virtual
QString
trFunctionPrototypeDocumentation
()
virtual
QString
trFunctionPrototypeDocumentation
()
// This is used in the documentation of a file/namespace before the list
// of documentation blocks for function prototypes
{
return
"Function Prototype Documentation"
;
}
{
return
"Function Prototype Documentation"
;
}
virtual
QString
trTypedefDocumentation
()
virtual
QString
trTypedefDocumentation
()
// This is used in the documentation of a file/namespace before the list
// of documentation blocks for typedefs
{
return
"Typedef Documentation"
;
}
{
return
"Typedef Documentation"
;
}
virtual
QString
trEnumerationTypeDocumentation
()
virtual
QString
trEnumerationTypeDocumentation
()
// This is used in the documentation of a file/namespace before the list
// of documentation blocks for enumeration types
{
return
"Enumeration Type Documentation"
;
}
{
return
"Enumeration Type Documentation"
;
}
virtual
QString
trEnumerationValueDocumentation
()
virtual
QString
trEnumerationValueDocumentation
()
// This is used in the documentation of a file/namespace before the list
// of documentation blocks for enumeration values
{
return
"Enumeration Value Documentation"
;
}
{
return
"Enumeration Value Documentation"
;
}
virtual
QString
trFunctionDocumentation
()
virtual
QString
trFunctionDocumentation
()
// This is used in the documentation of a file/namespace before the list
// of documentation blocks for functions
{
return
"Function Documentation"
;
}
{
return
"Function Documentation"
;
}
virtual
QString
trVariableDocumentation
()
virtual
QString
trVariableDocumentation
()
// This is used in the documentation of a file/namespace before the list
// of documentation blocks for variables
{
return
"Variable Documentation"
;
}
{
return
"Variable Documentation"
;
}
virtual
QString
trCompounds
()
virtual
QString
trCompounds
()
// This is used in the documentation of a file/namespace/group before
// the list of links to documented compounds
{
return
"Compounds"
;
}
{
return
"Compounds"
;
}
virtual
QString
trFiles
()
virtual
QString
trFiles
()
// This is used in the documentation of a group before the list of
// links to documented files
{
return
"Files"
;
}
{
return
"Files"
;
}
virtual
QString
trGeneratedAt
(
const
char
*
date
,
const
char
*
projName
)
virtual
QString
trGeneratedAt
(
const
char
*
date
,
const
char
*
projName
)
...
@@ -226,42 +352,56 @@ class Translator
...
@@ -226,42 +352,56 @@ class Translator
}
}
virtual
QString
trClassDiagram
(
const
char
*
clName
)
virtual
QString
trClassDiagram
(
const
char
*
clName
)
// this text is put before a class diagram
{
{
return
(
QString
)
"Class diagram for "
+
clName
;
return
(
QString
)
"Class diagram for "
+
clName
;
}
}
virtual
QString
trForInternalUseOnly
()
virtual
QString
trForInternalUseOnly
()
// this text is generated when the \internal command is used.
{
return
"For internal use only."
;
}
{
return
"For internal use only."
;
}
virtual
QString
trReimplementedForInternalReasons
()
virtual
QString
trReimplementedForInternalReasons
()
// this text is generated when the \reimp command is used.
{
return
"Reimplemented for internal reasons; the API is not affected."
;
}
{
return
"Reimplemented for internal reasons; the API is not affected."
;
}
virtual
QString
trWarning
()
virtual
QString
trWarning
()
// this text is generated when the \warning command is used.
{
return
"Warning"
;
}
{
return
"Warning"
;
}
virtual
QString
trBugsAndLimitations
()
virtual
QString
trBugsAndLimitations
()
// this text is generated when the \bug command is used.
{
return
"Bugs and limitations"
;
}
{
return
"Bugs and limitations"
;
}
virtual
QString
trVersion
()
virtual
QString
trVersion
()
// this text is generated when the \version command is used.
{
return
"Version"
;
}
{
return
"Version"
;
}
virtual
QString
trDate
()
virtual
QString
trDate
()
// this text is generated when the \date command is used.
{
return
"Date"
;
}
{
return
"Date"
;
}
virtual
QString
trAuthors
()
virtual
QString
trAuthors
()
// this text is generated when the \author command is used.
{
return
"Author(s)"
;
}
{
return
"Author(s)"
;
}
virtual
QString
trReturns
()
virtual
QString
trReturns
()
// this text is generated when the \return command is used.
{
return
"Returns"
;
}
{
return
"Returns"
;
}
virtual
QString
trSeeAlso
()
virtual
QString
trSeeAlso
()
// this text is generated when the \sa command is used.
{
return
"See also"
;
}
{
return
"See also"
;
}
virtual
QString
trParameters
()
virtual
QString
trParameters
()
// this text is generated when the \param command is used.
{
return
"Parameters"
;
}
{
return
"Parameters"
;
}
virtual
QString
trExceptions
()
virtual
QString
trExceptions
()
// this text is generated when the \exception command is used.
{
return
"Exceptions"
;
}
{
return
"Exceptions"
;
}
virtual
QString
trGeneratedBy
()
virtual
QString
trGeneratedBy
()
// this text is used in the title page of a LaTeX document.
{
return
"Generated by"
;
}
{
return
"Generated by"
;
}
// new since 0.49-990307
// new since 0.49-990307
virtual
QString
trNamespaces
()
{
return
"Namespaces"
;
}
virtual
QString
trNamespaceList
()
virtual
QString
trNamespaceList
()
// used as the title of page containing all the index of all namespaces.
{
return
"Namespace List"
;
}
{
return
"Namespace List"
;
}
virtual
QString
trNamespaceListDescription
(
bool
extractAll
)
virtual
QString
trNamespaceListDescription
(
bool
extractAll
)
// used as an introduction to the namespace list
{
{
QString
result
=
"Here is a list of all "
;
QString
result
=
"Here is a list of all "
;
if
(
!
extractAll
)
result
+=
"documented "
;
if
(
!
extractAll
)
result
+=
"documented "
;
...
@@ -269,12 +409,147 @@ class Translator
...
@@ -269,12 +409,147 @@ class Translator
return
result
;
return
result
;
}
}
virtual
QString
trFriends
()
virtual
QString
trFriends
()
// used in the class documentation as a header before the list of all
// friends of a class
{
return
"Friends"
;
}
{
return
"Friends"
;
}
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
virtual
QString
trRelatedFunctionDocumentation
()
virtual
QString
trRelatedFunctionDocumentation
()
// used in the class documentation as a header before the list of all
// related classes
{
return
"Friends And Related Function Documentation"
;
}
{
return
"Friends And Related Function Documentation"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
//////////////////////////////////////////////////////////////////////////
virtual
QString
trCompoundReference
(
const
char
*
clName
,
ClassDef
::
CompoundType
compType
)
// used as the title of the HTML page of a class/struct/union
{
QString
result
=
(
QString
)
clName
+
" "
;
switch
(
compType
)
{
case
ClassDef
:
:
Class
:
result
+=
" Class"
;
break
;
case
ClassDef
:
:
Struct
:
result
+=
" Struct"
;
break
;
case
ClassDef
:
:
Union
:
result
+=
" Union"
;
break
;
}
result
+=
" Reference"
;
return
result
;
}
virtual
QString
trFileReference
(
const
char
*
fileName
)
// used as the title of the HTML page of a file
{
QString
result
=
fileName
;
result
+=
" File Reference"
;
return
result
;
}
virtual
QString
trNamespaceReference
(
const
char
*
namespaceName
)
// used as the title of the HTML page of a namespace
{
QString
result
=
namespaceName
;
result
+=
" Namespace Reference"
;
return
result
;
}
// these are for the member sections of a class, struct or union
virtual
QString
trPublicMembers
()
{
return
"Public Members"
;
}
virtual
QString
trPublicSlots
()
{
return
"Public Slots"
;
}
virtual
QString
trSignals
()
{
return
"Signals"
;
}
virtual
QString
trStaticPublicMembers
()
{
return
"Static Public Members"
;
}
virtual
QString
trProtectedMembers
()
{
return
"Protected Members"
;
}
virtual
QString
trProtectedSlots
()
{
return
"Protected Slots"
;
}
virtual
QString
trStaticProtectedMembers
()
{
return
"Static Protected Members"
;
}
virtual
QString
trPrivateMembers
()
{
return
"Private Members"
;
}
virtual
QString
trPrivateSlots
()
{
return
"Private Slots"
;
}
virtual
QString
trStaticPrivateMembers
()
{
return
"Static Private Members"
;
}
// end of member sections
virtual
QString
trWriteList
(
int
numEntries
)
{
// this function is used to produce a comma-separated list of items.
// use generateMarker(i) to indicate where item i should be put.
QString
result
;
int
i
;
// the inherits list contain `numEntries' classes
for
(
i
=
0
;
i
<
numEntries
;
i
++
)
{
// use generateMarker to generate placeholders for the class links!
result
+=
generateMarker
(
i
);
// generate marker for entry i in the list
// (order is left to right)
if
(
i
!=
numEntries
-
1
)
// not the last entry, so we need a separator
{
if
(
i
<
numEntries
-
2
)
// not the fore last entry
result
+=
", "
;
else
// the fore last entry
result
+=
", and "
;
}
}
return
result
;
}
virtual
QString
trInheritsList
(
int
numEntries
)
// used in class documentation to produce a list of base classes,
// if class diagrams are disabled.
{
return
"Inherits "
+
trWriteList
(
numEntries
)
+
"."
;
}
virtual
QString
trInheritedByList
(
int
numEntries
)
// used in class documentation to produce a list of super classes,
// if class diagrams are disabled.
{
return
"Inherited by "
+
trWriteList
(
numEntries
)
+
"."
;
}
virtual
QString
trReimplementedFromList
(
int
numEntries
)
// used in member documentation blocks to produce a list of
// members that are hidden by this one.
{
return
"Reimplemented from "
+
trWriteList
(
numEntries
)
+
"."
;
}
virtual
QString
trReimplementedInList
(
int
numEntries
)
{
// used in member documentation blocks to produce a list of
// all member that overwrite the implementation of this member.
return
"Reimplemented in "
+
trWriteList
(
numEntries
)
+
"."
;
}
virtual
QString
trNamespaceMembers
()
// This is put above each page as a link to all members of namespaces.
{
return
"Namespace Members"
;
}
virtual
QString
trNamespaceMemberDescription
(
bool
extractAll
)
// This is an introduction to the page with all namespace members
{
QString
result
=
"Here is a list of all "
;
if
(
!
extractAll
)
result
+=
"documented "
;
result
+=
"namespace members with links to "
;
if
(
extractAll
)
result
+=
"the namespace documentation for each member:"
;
else
result
+=
"the namespaces they belong to:"
;
return
result
;
}
virtual
QString
trNamespaceIndex
()
// This is used in LaTeX as the title of the chapter with the
// index of all namespaces.
{
return
"Namespace Index"
;
}
virtual
QString
trNamespaceDocumentation
()
// This is used in LaTeX as the title of the chapter containing
// the documentation of all namespaces.
{
return
"Namespace Documentation"
;
}
};
};
#endif
#endif
src/translator_fr.h
View file @
e04496cb
...
@@ -255,7 +255,7 @@ class TranslatorFrench : public Translator
...
@@ -255,7 +255,7 @@ class TranslatorFrench : public Translator
virtual
QString
trNamespaces
()
virtual
QString
trNamespaces
()
{
return
"Namespaces"
;
}
{
return
"Namespaces"
;
}
virtual
QString
trNamespaceList
()
virtual
QString
trNamespaceList
()
{
return
"List des Namespaces"
;
}
{
return
"List
e
des Namespaces"
;
}
virtual
QString
trNamespaceListDescription
(
bool
extractAll
)
virtual
QString
trNamespaceListDescription
(
bool
extractAll
)
{
{
QString
result
=
"Liste de tous les namespaces "
;
QString
result
=
"Liste de tous les namespaces "
;
...
@@ -265,6 +265,11 @@ class TranslatorFrench : public Translator
...
@@ -265,6 +265,11 @@ class TranslatorFrench : public Translator
}
}
virtual
QString
trFriends
()
virtual
QString
trFriends
()
{
return
"Friends"
;
}
{
return
"Friends"
;
}
// new since 0.49-990405
virtual
QString
trRelatedFunctionDocumentation
()
{
return
"Documentation des fonctions amies et associées"
;
}
};
};
#endif
#endif
src/translator_nl.h
View file @
e04496cb
...
@@ -24,12 +24,6 @@ class TranslatorDutch : public Translator
...
@@ -24,12 +24,6 @@ class TranslatorDutch : public Translator
public
:
public
:
QString
latexBabelPackage
()
QString
latexBabelPackage
()
{
return
"dutch"
;
}
{
return
"dutch"
;
}
QString
trInherits
()
{
return
"Erft over van"
;
}
QString
trAnd
()
{
return
"en"
;
}
QString
trInheritedBy
()
{
return
"Wordt overgeërfd door"
;
}
QString
trRelatedFunctions
()
QString
trRelatedFunctions
()
{
return
"Gerelateerde functies"
;
}
{
return
"Gerelateerde functies"
;
}
QString
trRelatedSubscript
()
QString
trRelatedSubscript
()
...
@@ -55,8 +49,6 @@ class TranslatorDutch : public Translator
...
@@ -55,8 +49,6 @@ class TranslatorDutch : public Translator
}
}
QString
trMore
()
QString
trMore
()
{
return
"Meer..."
;
}
{
return
"Meer..."
;
}
QString
trReference
()
{
return
"Referentie"
;
}
QString
trListOfAllMembers
()
QString
trListOfAllMembers
()
{
return
"Lijst van alle members."
;
}
{
return
"Lijst van alle members."
;
}
QString
trMemberList
()
QString
trMemberList
()
...
@@ -64,7 +56,7 @@ class TranslatorDutch : public Translator
...
@@ -64,7 +56,7 @@ class TranslatorDutch : public Translator
QString
trThisIsTheListOfAllMembers
()
QString
trThisIsTheListOfAllMembers
()
{
return
"Dit is de complete lijst van alle members voor"
;
}
{
return
"Dit is de complete lijst van alle members voor"
;
}
QString
trIncludingInheritedMembers
()
QString
trIncludingInheritedMembers
()
{
return
"inclusief alle overgeërfde members."
;
}
{
return
"
,
inclusief alle overgeërfde members."
;
}
QString
trGeneratedAutomatically
(
const
char
*
s
)
QString
trGeneratedAutomatically
(
const
char
*
s
)
{
QString
result
=
"Automatisch gegenereerd door Doxygen"
;
{
QString
result
=
"Automatisch gegenereerd door Doxygen"
;
if
(
s
)
result
+=
(
QString
)
" voor "
+
s
;
if
(
s
)
result
+=
(
QString
)
" voor "
+
s
;
...
@@ -77,8 +69,6 @@ class TranslatorDutch : public Translator
...
@@ -77,8 +69,6 @@ class TranslatorDutch : public Translator
{
return
"enum waarde"
;
}
{
return
"enum waarde"
;
}
QString
trDefinedIn
()
QString
trDefinedIn
()
{
return
"gedefinieerd in"
;
}
{
return
"gedefinieerd in"
;
}
QString
trIncludeFile
()
{
return
"Include File"
;
}
QString
trVerbatimText
(
const
char
*
f
)
QString
trVerbatimText
(
const
char
*
f
)
{
return
(
QString
)
"Dit is de letterlijke tekst van de include file "
+
f
+
"."
;
}
{
return
(
QString
)
"Dit is de letterlijke tekst van de include file "
+
f
+
"."
;
}
QString
trModules
()
QString
trModules
()
...
@@ -182,10 +172,6 @@ class TranslatorDutch : public Translator
...
@@ -182,10 +172,6 @@ class TranslatorDutch : public Translator
{
return
"Variabelen"
;
}
{
return
"Variabelen"
;
}
QString
trEnumerationValues
()
QString
trEnumerationValues
()
{
return
"Enumeratie waarden"
;
}
{
return
"Enumeratie waarden"
;
}
QString
trReimplementedFrom
()
{
return
"Nieuwe implementatie van"
;
}
QString
trReimplementedIn
()
{
return
"Opnieuw geïmplementeerd in"
;
}
QString
trAuthor
()
QString
trAuthor
()
{
return
"auteur"
;
}
{
return
"auteur"
;
}
QString
trDefineDocumentation
()
QString
trDefineDocumentation
()
...
@@ -246,10 +232,10 @@ class TranslatorDutch : public Translator
...
@@ -246,10 +232,10 @@ class TranslatorDutch : public Translator
QString
trGeneratedBy
()
QString
trGeneratedBy
()
{
return
"Gegenereerd door"
;
}
{
return
"Gegenereerd door"
;
}
// new since 0.49-990307
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307
//////////////////////////////////////////////////////////////////////////
QString
trNamespaces
()
{
return
"Namespaces"
;
}
QString
trNamespaceList
()
QString
trNamespaceList
()
{
return
"Namespace Lijst"
;
}
{
return
"Namespace Lijst"
;
}
QString
trNamespaceListDescription
(
bool
extractAll
)
QString
trNamespaceListDescription
(
bool
extractAll
)
...
@@ -261,6 +247,142 @@ class TranslatorDutch : public Translator
...
@@ -261,6 +247,142 @@ class TranslatorDutch : public Translator
}
}
QString
trFriends
()
QString
trFriends
()
{
return
"Friends"
;
}
{
return
"Friends"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
QString
trRelatedFunctionDocumentation
()
{
return
"Documentatie van friends en gerelateerde functies"
;
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
//////////////////////////////////////////////////////////////////////////
virtual
QString
trCompoundReference
(
const
char
*
clName
,
ClassDef
::
CompoundType
compType
)
// used as the title of the HTML page of a class/struct/union
{
QString
result
=
(
QString
)
clName
+
" "
;
switch
(
compType
)
{
case
ClassDef
:
:
Class
:
result
+=
" Class"
;
break
;
case
ClassDef
:
:
Struct
:
result
+=
" Struct"
;
break
;
case
ClassDef
:
:
Union
:
result
+=
" Union"
;
break
;
}
result
+=
" Referentie"
;
return
result
;
}
virtual
QString
trFileReference
(
const
char
*
fileName
)
// used as the title of the HTML page of a file
{
QString
result
=
fileName
;
result
+=
" File Referentie"
;
return
result
;
}
virtual
QString
trNamespaceReference
(
const
char
*
namespaceName
)
// used as the title of the HTML page of a namespace
{
QString
result
=
namespaceName
;
result
+=
" Namespace Referentie"
;
return
result
;
}
// these are for the member sections of a class, struct or union
virtual
QString
trPublicMembers
()
{
return
"Public Members"
;
}
virtual
QString
trPublicSlots
()
{
return
"Public Slots"
;
}
virtual
QString
trSignals
()
{
return
"Signals"
;
}
virtual
QString
trStaticPublicMembers
()
{
return
"Static Public Members"
;
}
virtual
QString
trProtectedMembers
()
{
return
"Protected Members"
;
}
virtual
QString
trProtectedSlots
()
{
return
"Protected Slots"
;
}
virtual
QString
trStaticProtectedMembers
()
{
return
"Static Protected Members"
;
}
virtual
QString
trPrivateMembers
()
{
return
"Private Members"
;
}
virtual
QString
trPrivateSlots
()
{
return
"Private Slots"
;
}
virtual
QString
trStaticPrivateMembers
()
{
return
"Static Private Members"
;
}
// end of member sections
virtual
QString
trWriteList
(
int
numEntries
)
{
// this function is used to produce a comma-separated list of items.
// use generateMarker(i) to indicate where item i should be put.
QString
result
;
int
i
;
// the inherits list contain `numEntries' classes
for
(
i
=
0
;
i
<
numEntries
;
i
++
)
{
// use generateMarker to generate placeholders for the class links!
result
+=
generateMarker
(
i
);
// generate marker for entry i in the list
// (order is left to right)
if
(
i
!=
numEntries
-
1
)
// not the last entry, so we need a separator
{
if
(
i
<
numEntries
-
2
)
// not the fore last entry
result
+=
", "
;
else
// the fore last entry
result
+=
" en "
;
}
}
return
result
;
}
virtual
QString
trInheritsList
(
int
numEntries
)
// used in class documentation to produce a list of base classes,
// if class diagrams are disabled.
{
return
"Erft over van "
+
trWriteList
(
numEntries
)
+
"."
;
}
virtual
QString
trInheritedByList
(
int
numEntries
)
// used in class documentation to produce a list of super classes,
// if class diagrams are disabled.
{
return
"Wordt overgeërfd door "
+
trWriteList
(
numEntries
)
+
"."
;
}
virtual
QString
trReimplementedFromList
(
int
numEntries
)
// used in member documentation blocks to produce a list of
// members that are hidden by this one.
{
return
"Nieuwe implementatie van "
+
trWriteList
(
numEntries
)
+
"."
;
}
virtual
QString
trReimplementedInList
(
int
numEntries
)
{
// used in member documentation blocks to produce a list of
// all member that overwrite the implementation of this member.
return
"Opnieuw geïmplementeerd in "
+
trWriteList
(
numEntries
)
+
"."
;
}
virtual
QString
trNamespaceMembers
()
// This is put above each page as a link to all members of namespaces.
{
return
"Namespace Members"
;
}
virtual
QString
trNamespaceMemberDescription
(
bool
extractAll
)
// This is an introduction to the page with all namespace members
{
QString
result
=
"Hier is een lijst van alle "
;
if
(
!
extractAll
)
result
+=
"gedocumenteerde "
;
result
+=
"namespace members met links naar "
;
if
(
extractAll
)
result
+=
"de namespace documentatie voor iedere member:"
;
else
result
+=
"de namespaces waartoe ze behoren:"
;
return
result
;
}
virtual
QString
trNamespaceIndex
()
// This is used in LaTeX as the title of the chapter with the
// index of all namespaces.
{
return
"Namespace Index"
;
}
virtual
QString
trNamespaceDocumentation
()
// This is used in LaTeX as the title of the chapter containing
// the documentation of all namespaces.
{
return
"Namespace Documentatie"
;
}
};
};
#endif
#endif
src/translator_se.h
View file @
e04496cb
...
@@ -14,6 +14,14 @@
...
@@ -14,6 +14,14 @@
*
*
*/
*/
/*-------------------------------------------------------------------------
Svensk versttning av:
Samuel Hgglund <sahag96@ite.mh.se>
Xet Erixon <xet@xeqt.com>
Skicka grna synpunkter.
--------------------------------------------------------------------------*/
#ifndef TRANSLATOR_SE_H
#ifndef TRANSLATOR_SE_H
#define TRANSLATOR_SE_H
#define TRANSLATOR_SE_H
...
@@ -35,34 +43,32 @@ class TranslatorSwedish : public Translator
...
@@ -35,34 +43,32 @@ class TranslatorSwedish : public Translator
QString
trRelatedSubscript
()
QString
trRelatedSubscript
()
{
return
"(Observera att dessa inte r medlemsfunktioner)"
;
}
{
return
"(Observera att dessa inte r medlemsfunktioner)"
;
}
QString
trDetailedDescription
()
QString
trDetailedDescription
()
{
return
"
Utk
ad beskrivning"
;
}
{
return
"
Detaljer
ad beskrivning"
;
}
QString
trMemberTypedefDocumentation
()
QString
trMemberTypedefDocumentation
()
{
return
"
Har inte en aning...
"
;
}
{
return
"
Dokumentation ver typdefinierade medlemmar
"
;
}
QString
trMemberEnumerationDocumentation
()
QString
trMemberEnumerationDocumentation
()
{
return
"Upprknad dokumentation???"
;
}
{
return
"Dokumentation ver egenupprknande medlemmar"
;
}
QString
trEnumerationValueDocumentation
()
{
return
"Documentatie van enumeratie waarden"
;
}
QString
trMemberFunctionDocumentation
()
QString
trMemberFunctionDocumentation
()
{
return
"Dokumentation
av
medlemsfunktioner"
;
}
{
return
"Dokumentation
ver
medlemsfunktioner"
;
}
QString
trMemberDataDocumentation
()
QString
trMemberDataDocumentation
()
{
return
"Dokumentation
av
datamedlemmar"
;
}
{
return
"Dokumentation
ver
datamedlemmar"
;
}
QString
trGeneratedFrom
(
const
char
*
s
,
bool
single
)
QString
trGeneratedFrom
(
const
char
*
s
,
bool
single
)
{
{
QString
result
=
(
QString
)
"Dokumentationen fr de
tt
a"
+
s
+
QString
result
=
(
QString
)
"Dokumentationen fr de
nn
a"
+
s
+
" r skapad u
r
fljande fil"
;
" r skapad u
tifrn
fljande fil"
;
if
(
single
)
result
+=
":"
;
else
result
+=
"
s
:"
;
if
(
single
)
result
+=
":"
;
else
result
+=
"
er
:"
;
return
result
;
return
result
;
}
}
QString
trMore
()
QString
trMore
()
{
return
"
Fl
er..."
;
}
{
return
"
M
er..."
;
}
QString
trReference
()
QString
trReference
()
{
return
"
Hnvisning?
"
;
}
{
return
"
Referens
"
;
}
QString
trListOfAllMembers
()
QString
trListOfAllMembers
()
{
return
"Lista ver alla medlemmar."
;
}
{
return
"Lista ver alla medlemmar."
;
}
QString
trMemberList
()
QString
trMemberList
()
{
return
"Medlemslista"
;
}
{
return
"Medlemslista"
;
}
QString
trThisIsTheListOfAllMembers
()
QString
trThisIsTheListOfAllMembers
()
{
return
"Det hr r en fullstndig lista
av medlemmar fr?
"
;
}
{
return
"Det hr r en fullstndig lista
ver medlemmar fr
"
;
}
QString
trIncludingInheritedMembers
()
QString
trIncludingInheritedMembers
()
{
return
"med alla rvda medlemmar."
;
}
{
return
"med alla rvda medlemmar."
;
}
QString
trGeneratedAutomatically
(
const
char
*
s
)
QString
trGeneratedAutomatically
(
const
char
*
s
)
...
@@ -72,29 +78,29 @@ class TranslatorSwedish : public Translator
...
@@ -72,29 +78,29 @@ class TranslatorSwedish : public Translator
return
result
;
return
result
;
}
}
QString
trEnumName
()
QString
trEnumName
()
{
return
"enum namn
?
"
;
}
{
return
"enum namn"
;
}
QString
trEnumValue
()
QString
trEnumValue
()
{
return
"enum vrde
?
"
;
}
{
return
"enum vrde"
;
}
QString
trDefinedIn
()
QString
trDefinedIn
()
{
return
"deklarerad i"
;
}
{
return
"deklarerad i"
;
}
QString
trIncludeFile
()
QString
trIncludeFile
()
{
return
"In
clude F
il"
;
}
{
return
"In
kluderingsf
il"
;
}
QString
trVerbatimText
(
const
char
*
f
)
QString
trVerbatimText
(
const
char
*
f
)
{
return
(
QString
)
"Detta r den ordagranna texten
av "
+
f
+
" include fil."
;
}
{
return
(
QString
)
"Detta r den ordagranna texten
frn inkluderingsfilen"
+
f
;
}
QString
trModules
()
QString
trModules
()
{
return
"Moduler
?
"
;
}
{
return
"Moduler"
;
}
QString
trClassHierarchy
()
QString
trClassHierarchy
()
{
return
"Klasshierarki
?
"
;
}
{
return
"Klasshierarki"
;
}
QString
trCompoundList
()
QString
trCompoundList
()
{
return
"
Inhgnad lista???
"
;
}
{
return
"
Sammansatt klasslista
"
;
}
QString
trFileList
()
QString
trFileList
()
{
return
"Fillista"
;
}
{
return
"Fillista"
;
}
QString
trHeaderFiles
()
QString
trHeaderFiles
()
{
return
"Headerfiler"
;
}
{
return
"Headerfiler"
;
}
QString
trCompoundMembers
()
QString
trCompoundMembers
()
{
return
"
Inhgnade medlemmar??
"
;
}
{
return
"
Sammansatta klassmedlemmar
"
;
}
QString
trFileMembers
()
QString
trFileMembers
()
{
return
"Filmedlemmar
???
"
;
}
{
return
"Filmedlemmar"
;
}
QString
trRelatedPages
()
QString
trRelatedPages
()
{
return
"Beslktade sidor"
;
}
{
return
"Beslktade sidor"
;
}
QString
trExamples
()
QString
trExamples
()
...
@@ -102,8 +108,8 @@ class TranslatorSwedish : public Translator
...
@@ -102,8 +108,8 @@ class TranslatorSwedish : public Translator
QString
trSearch
()
QString
trSearch
()
{
return
"Sk"
;
}
{
return
"Sk"
;
}
QString
trClassHierarchyDescription
()
QString
trClassHierarchyDescription
()
{
return
"Denna lista ver arv r grov
sorterad, men inte helt
"
{
return
"Denna lista ver arv r grov
t, men inte helt,
"
"i alfabetisk ordning:"
;
"
sorterad
i alfabetisk ordning:"
;
}
}
QString
trFileListDescription
(
bool
extractAll
)
QString
trFileListDescription
(
bool
extractAll
)
{
{
...
@@ -113,8 +119,8 @@ class TranslatorSwedish : public Translator
...
@@ -113,8 +119,8 @@ class TranslatorSwedish : public Translator
return
result
;
return
result
;
}
}
QString
trCompoundListDescription
()
QString
trCompoundListDescription
()
{
return
"Hr fljer klasserna, struct
s
och "
{
return
"Hr fljer klasserna, struct
erna
och "
"union
s?
med en kort beskrivning:"
;
"union
erna
med en kort beskrivning:"
;
}
}
QString
trCompoundMembersDescription
(
bool
extractAll
)
QString
trCompoundMembersDescription
(
bool
extractAll
)
{
{
...
@@ -129,18 +135,18 @@ class TranslatorSwedish : public Translator
...
@@ -129,18 +135,18 @@ class TranslatorSwedish : public Translator
{
{
QString
result
=
"Hr fljer en lista ver alla "
;
QString
result
=
"Hr fljer en lista ver alla "
;
if
(
!
extractAll
)
result
+=
"dokumenterade "
;
if
(
!
extractAll
)
result
+=
"dokumenterade "
;
result
+=
"filmedlemmar
?
med lnkar till "
;
result
+=
"filmedlemmar med lnkar till "
;
if
(
extractAll
)
result
+=
"dokumentationsfilen fr varje medlem:"
;
if
(
extractAll
)
result
+=
"dokumentationsfilen fr varje medlem:"
;
else
result
+=
"filerna som de tillhr:"
;
else
result
+=
"filerna som de tillhr:"
;
return
result
;
return
result
;
}
}
QString
trHeaderFilesDescription
()
QString
trHeaderFilesDescription
()
{
return
"Hr fljer headerfilerna som API:n bestr av
???
:"
;
}
{
return
"Hr fljer headerfilerna som API:n bestr av:"
;
}
QString
trExamplesDescription
()
QString
trExamplesDescription
()
{
return
"Hr fljer en lista med alla exempel:"
;
}
{
return
"Hr fljer en lista med alla exempel:"
;
}
QString
trRelatedPagesDescription
()
QString
trRelatedPagesDescription
()
{
return
"Hr fljer en lista
med alla relevanta? dokumentationssidor:"
;
}
{
return
"Hr fljer en lista
ver alla relaterade dokumentationssidor:"
;
QString
trModulesDescription
()
}
QString
trModulesDescription
()
{
return
"Hr fljer en lista ver alla moduler:"
;
}
{
return
"Hr fljer en lista ver alla moduler:"
;
}
QString
trNoDescriptionAvailable
()
QString
trNoDescriptionAvailable
()
{
return
"Beskrivning saknas"
;
}
{
return
"Beskrivning saknas"
;
}
...
@@ -148,11 +154,11 @@ class TranslatorSwedish : public Translator
...
@@ -148,11 +154,11 @@ class TranslatorSwedish : public Translator
QString
trDocumentation
()
QString
trDocumentation
()
{
return
"Dokumentation"
;
}
{
return
"Dokumentation"
;
}
QString
trModuleIndex
()
QString
trModuleIndex
()
{
return
"Modul
e
Index"
;
}
{
return
"Modul Index"
;
}
QString
trHierarchicalIndex
()
QString
trHierarchicalIndex
()
{
return
"Hierarkiskt Index"
;
}
{
return
"Hierarkiskt Index"
;
}
QString
trCompoundIndex
()
QString
trCompoundIndex
()
{
return
"
Compound
Index"
;
}
{
return
"
Sammansatt
Index"
;
}
QString
trFileIndex
()
QString
trFileIndex
()
{
return
"Fil Index"
;
}
{
return
"Fil Index"
;
}
QString
trModuleDocumentation
()
QString
trModuleDocumentation
()
...
@@ -169,39 +175,41 @@ class TranslatorSwedish : public Translator
...
@@ -169,39 +175,41 @@ class TranslatorSwedish : public Translator
{
return
"Uppslagsbok"
;
}
{
return
"Uppslagsbok"
;
}
QString
trDefines
()
QString
trDefines
()
{
return
"Defin
era
r"
;
}
{
return
"Defin
itione
r"
;
}
QString
trFuncProtos
()
QString
trFuncProtos
()
{
return
"Funktionsprototyper"
;
}
{
return
"Funktionsprototyper"
;
}
QString
trTypedefs
()
QString
trTypedefs
()
{
return
"Typ
edefs
"
;
}
{
return
"Typ
definitioner
"
;
}
QString
trEnumerations
()
QString
trEnumerations
()
{
return
"
Upprkning???
"
;
}
{
return
"
Egenupprknande typer
"
;
}
QString
trFunctions
()
QString
trFunctions
()
{
return
"Funktioner"
;
}
{
return
"Funktioner"
;
}
QString
trVariables
()
QString
trVariables
()
{
return
"Variabler"
;
}
{
return
"Variabler"
;
}
QString
trEnumerationValues
()
QString
trEnumerationValues
()
{
return
"E
num vrden??
"
;
}
{
return
"E
genupprknade vrden
"
;
}
QString
trReimplementedFrom
()
QString
trReimplementedFrom
()
{
return
"teranvnd frn
???
"
;
}
{
return
"teranvnd frn"
;
}
QString
trReimplementedIn
()
QString
trReimplementedIn
()
{
return
"teranvnd i
??
"
;
}
{
return
"teranvnd i"
;
}
QString
trAuthor
()
QString
trAuthor
()
{
return
"Frfattare"
;
}
{
return
"Frfattare"
;
}
QString
trDefineDocumentation
()
QString
trDefineDocumentation
()
{
return
"D
efiniera dokumentation
"
;
}
{
return
"D
okumentation ver definitioner
"
;
}
QString
trFunctionPrototypeDocumentation
()
QString
trFunctionPrototypeDocumentation
()
{
return
"Dokumentation ver funktionsprototyper"
;
}
{
return
"Dokumentation ver funktionsprototyper"
;
}
QString
trTypedefDocumentation
()
QString
trTypedefDocumentation
()
{
return
"Dokumentation ver typ
edefs
"
;
}
{
return
"Dokumentation ver typ
definitioner
"
;
}
QString
trEnumerationTypeDocumentation
()
QString
trEnumerationTypeDocumentation
()
{
return
"Dokumentation ver enum typer"
;
}
{
return
"Dokumentation ver egenupprknande typer (enum)"
;
}
QString
trEnumerationValueDocumentation
()
{
return
"Dokumentation ver egenupprknande typers vrden"
;
}
QString
trFunctionDocumentation
()
QString
trFunctionDocumentation
()
{
return
"Dokumentation ver funktioner"
;
}
{
return
"Dokumentation ver funktioner"
;
}
QString
trVariableDocumentation
()
QString
trVariableDocumentation
()
{
return
"Dokumentation ver variabler"
;
}
{
return
"Dokumentation ver variabler"
;
}
QString
trCompounds
()
QString
trCompounds
()
{
return
"
Compounds??
"
;
}
{
return
"
Sammansttning
"
;
}
QString
trFiles
()
QString
trFiles
()
{
return
"Filer"
;
}
{
return
"Filer"
;
}
QString
trGeneratedAt
(
const
char
*
date
,
const
char
*
projName
)
QString
trGeneratedAt
(
const
char
*
date
,
const
char
*
projName
)
...
@@ -217,12 +225,12 @@ class TranslatorSwedish : public Translator
...
@@ -217,12 +225,12 @@ class TranslatorSwedish : public Translator
}
}
QString
trClassDiagram
(
const
char
*
clName
)
QString
trClassDiagram
(
const
char
*
clName
)
{
{
return
(
QString
)
"Klass
diagram fr "
+
clName
;
return
(
QString
)
"Klass
-
diagram fr "
+
clName
;
}
}
QString
trForInternalUseOnly
()
QString
trForInternalUseOnly
()
{
return
"Endast fr internt bruk."
;
}
{
return
"Endast fr internt bruk."
;
}
QString
trReimplementedForInternalReasons
()
QString
trReimplementedForInternalReasons
()
{
return
"Omskriven av intern
a orsaker???
; "
{
return
"Omskriven av intern
anledning
; "
"API:n pverkas inte."
;
"API:n pverkas inte."
;
}
}
QString
trWarning
()
QString
trWarning
()
...
...
src/util.cpp
View file @
e04496cb
...
@@ -37,6 +37,12 @@ bool isId(char c)
...
@@ -37,6 +37,12 @@ bool isId(char c)
return
c
==
'_'
||
isalnum
(
c
);
return
c
==
'_'
||
isalnum
(
c
);
}
}
QString
generateMarker
(
int
id
)
{
QString
result
;
result
.
sprintf
(
"@%d
\n
"
,
id
);
return
result
;
}
// try to determine if this files is a source or a header file by looking
// try to determine if this files is a source or a header file by looking
// at the extension (5 variations are allowed in both upper and lower case)
// at the extension (5 variations are allowed in both upper and lower case)
...
@@ -197,6 +203,7 @@ static void linkifyText(OutputList &ol,const char *clName,const char *name,const
...
@@ -197,6 +203,7 @@ static void linkifyText(OutputList &ol,const char *clName,const char *name,const
ClassDef
*
cd
=
0
;
ClassDef
*
cd
=
0
;
FileDef
*
fd
=
0
;
FileDef
*
fd
=
0
;
MemberDef
*
md
=
0
;
MemberDef
*
md
=
0
;
NamespaceDef
*
nd
=
0
;
// check if `word' is a documented class name
// check if `word' is a documented class name
if
(
word
.
length
()
>
0
&&
word
!=
name
&&
word
!=
clName
)
if
(
word
.
length
()
>
0
&&
word
!=
name
&&
word
!=
clName
)
...
@@ -206,24 +213,29 @@ static void linkifyText(OutputList &ol,const char *clName,const char *name,const
...
@@ -206,24 +213,29 @@ static void linkifyText(OutputList &ol,const char *clName,const char *name,const
// add link to the result
// add link to the result
if
(
cd
->
isVisible
())
if
(
cd
->
isVisible
())
{
{
result
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFil
e
(),
0
,
word
);
result
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBas
e
(),
0
,
word
);
}
}
else
else
{
{
result
.
docify
(
word
);
result
.
docify
(
word
);
}
}
}
}
else
if
(
getDefs
(
word
,
clName
,
0
,
md
,
cd
,
fd
)
&&
md
->
hasDocumentation
())
else
if
(
getDefs
(
word
,
clName
,
0
,
md
,
cd
,
fd
,
nd
)
&&
md
->
hasDocumentation
())
{
{
if
(
cd
&&
cd
->
isVisible
()
&&
!
md
->
isFunction
())
// word is a member of cd
if
(
cd
&&
cd
->
isVisible
()
&&
!
md
->
isFunction
())
// word is a member of cd
{
{
result
.
writeObjectLink
(
cd
->
getReference
(),
result
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFile
(),
md
->
anchor
(),
word
);
cd
->
getOutputFileBase
(),
md
->
anchor
(),
word
);
}
else
if
(
nd
&&
nd
->
hasDocumentation
())
{
result
.
writeObjectLink
(
nd
->
getReference
(),
nd
->
getOutputFileBase
(),
md
->
anchor
(),
word
);
}
}
else
if
(
fd
&&
fd
->
hasDocumentation
())
// word is a global in file fd
else
if
(
fd
&&
fd
->
hasDocumentation
())
// word is a global in file fd
{
{
result
.
writeObjectLink
(
fd
->
getReference
(),
result
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
diskNam
e
(),
md
->
anchor
(),
word
);
fd
->
getOutputFileBas
e
(),
md
->
anchor
(),
word
);
}
}
else
// add word to the result
else
// add word to the result
{
{
...
@@ -313,6 +325,28 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
...
@@ -313,6 +325,28 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
}
}
}
}
void
writeExample
(
OutputList
&
ol
,
ExampleList
*
el
)
{
QString
exampleLine
=
theTranslator
->
trWriteList
(
el
->
count
());
QRegExp
marker
(
"@[0-9]+"
);
int
index
=
0
,
newIndex
,
matchLen
;
// now replace all markers in inheritLine with links to the classes
while
((
newIndex
=
marker
.
match
(
exampleLine
,
index
,
&
matchLen
))
!=-
1
)
{
bool
ok
;
parseText
(
ol
,
exampleLine
.
mid
(
index
,
newIndex
-
index
));
uint
entryIndex
=
exampleLine
.
mid
(
newIndex
+
1
,
matchLen
-
1
).
toUInt
(
&
ok
);
Example
*
e
=
el
->
at
(
entryIndex
);
if
(
ok
&&
e
)
ol
.
writeObjectLink
(
0
,
e
->
file
,
e
->
anchor
,
e
->
name
);
index
=
newIndex
+
matchLen
;
}
parseText
(
ol
,
exampleLine
.
right
(
exampleLine
.
length
()
-
index
));
ol
.
writeString
(
"."
);
}
QString
argListToString
(
ArgumentList
*
al
)
QString
argListToString
(
ArgumentList
*
al
)
{
{
QString
result
;
QString
result
;
...
@@ -335,11 +369,14 @@ static void writeLink(OutputList &ol,ClassDef *cd,NamespaceDef *nd,
...
@@ -335,11 +369,14 @@ static void writeLink(OutputList &ol,ClassDef *cd,NamespaceDef *nd,
FileDef
*
fd
,
MemberDef
*
md
,
const
char
*
name
)
FileDef
*
fd
,
MemberDef
*
md
,
const
char
*
name
)
{
{
if
(
nd
)
if
(
nd
)
ol
.
writeObjectLink
(
0
/*TODO: references */
,
nd
->
namespaceFile
(),
md
->
anchor
(),
name
);
ol
.
writeObjectLink
(
nd
->
getReference
(),
nd
->
getOutputFileBase
(),
md
->
anchor
(),
name
);
else
if
(
fd
)
else
if
(
fd
)
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
diskName
(),
md
->
anchor
(),
name
);
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
getOutputFileBase
(),
md
->
anchor
(),
name
);
else
else
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFile
(),
md
->
anchor
(),
name
);
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
md
->
anchor
(),
name
);
}
}
static
void
warnForUndocumentedMember
(
MemberDef
*
md
)
static
void
warnForUndocumentedMember
(
MemberDef
*
md
)
...
@@ -388,77 +425,84 @@ void writeQuickLinks(OutputList &ol,bool compact,bool ext)
...
@@ -388,77 +425,84 @@ void writeQuickLinks(OutputList &ol,bool compact,bool ext)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"modules.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"modules.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trModules
());
parse
Text
(
ol
,
theTranslator
->
trModules
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
documentedNamespaces
>
0
)
if
(
documentedNamespaces
>
0
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"namespaces.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"namespaces.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trNamespaces
());
parse
Text
(
ol
,
theTranslator
->
trNamespaceList
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
hierarchyClasses
>
0
)
if
(
hierarchyClasses
>
0
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"hierarchy.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"hierarchy.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trClassHierarchy
());
parse
Text
(
ol
,
theTranslator
->
trClassHierarchy
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
annotatedClasses
>
0
)
if
(
annotatedClasses
>
0
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"annotated.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"annotated.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trCompoundList
());
parse
Text
(
ol
,
theTranslator
->
trCompoundList
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
documentedFiles
>
0
)
if
(
documentedFiles
>
0
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"files.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"files.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFileList
());
parse
Text
(
ol
,
theTranslator
->
trFileList
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
includeFiles
.
count
()
>
0
&&
verbatimHeaderFlag
)
if
(
includeFiles
.
count
()
>
0
&&
verbatimHeaderFlag
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"headers.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"headers.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trHeaderFiles
());
parse
Text
(
ol
,
theTranslator
->
trHeaderFiles
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
documentedNamespaceMembers
>
0
)
{
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"namespacemembers.html"
);
parseText
(
ol
,
theTranslator
->
trNamespaceMembers
());
ol
.
endQuickIndexItem
();
}
if
(
documentedMembers
>
0
)
if
(
documentedMembers
>
0
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"functions.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"functions.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trCompoundMembers
());
parse
Text
(
ol
,
theTranslator
->
trCompoundMembers
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
documentedFunctions
>
0
)
if
(
documentedFunctions
>
0
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"globals.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"globals.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFileMembers
());
parse
Text
(
ol
,
theTranslator
->
trFileMembers
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
pageList
.
count
()
>
0
)
if
(
pageList
.
count
()
>
0
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"pages.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"pages.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trRelatedPages
());
parse
Text
(
ol
,
theTranslator
->
trRelatedPages
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
exampleList
.
count
()
>
0
)
if
(
exampleList
.
count
()
>
0
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"examples.html"
);
ol
.
startQuickIndexItem
(
extLink
,
absPath
+
"examples.html"
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trExamples
());
parse
Text
(
ol
,
theTranslator
->
trExamples
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
searchEngineFlag
)
if
(
searchEngineFlag
)
{
{
if
(
!
compact
)
ol
.
writeListItem
();
if
(
!
compact
)
ol
.
writeListItem
();
ol
.
startQuickIndexItem
(
"_cgi:"
,
""
);
ol
.
startQuickIndexItem
(
"_cgi:"
,
""
);
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trSearch
());
parse
Text
(
ol
,
theTranslator
->
trSearch
());
ol
.
endQuickIndexItem
();
ol
.
endQuickIndexItem
();
}
}
if
(
compact
)
if
(
compact
)
...
@@ -489,7 +533,7 @@ void endFile(OutputList &ol,bool external)
...
@@ -489,7 +533,7 @@ void endFile(OutputList &ol,bool external)
ol
.
writeFooter
(
0
,
external
);
// write the footer
ol
.
writeFooter
(
0
,
external
);
// write the footer
if
(
footerFile
.
length
()
==
0
)
if
(
footerFile
.
length
()
==
0
)
{
{
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trGeneratedAt
(
parse
Text
(
ol
,
theTranslator
->
trGeneratedAt
(
dateToString
(
TRUE
),
dateToString
(
TRUE
),
projectName
projectName
));
));
...
@@ -497,7 +541,7 @@ void endFile(OutputList &ol,bool external)
...
@@ -497,7 +541,7 @@ void endFile(OutputList &ol,bool external)
ol
.
writeFooter
(
1
,
external
);
// write the link to the picture
ol
.
writeFooter
(
1
,
external
);
// write the link to the picture
if
(
footerFile
.
length
()
==
0
)
if
(
footerFile
.
length
()
==
0
)
{
{
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trWrittenBy
());
parse
Text
(
ol
,
theTranslator
->
trWrittenBy
());
}
}
ol
.
writeFooter
(
2
,
external
);
// end the footer
ol
.
writeFooter
(
2
,
external
);
// end the footer
if
(
latexEnabled
)
ol
.
enable
(
OutputGenerator
::
Latex
);
if
(
latexEnabled
)
ol
.
enable
(
OutputGenerator
::
Latex
);
...
@@ -516,7 +560,7 @@ static void writeMemberDef(OutputList &ol, ClassDef *cd, NamespaceDef *nd,
...
@@ -516,7 +560,7 @@ static void writeMemberDef(OutputList &ol, ClassDef *cd, NamespaceDef *nd,
md
->
documentation
().
isEmpty
()
&&
md
->
documentation
().
isEmpty
()
&&
!
briefMemDescFlag
&&
!
briefMemDescFlag
&&
!
repeatBriefFlag
!
repeatBriefFlag
)
)
)
return
;
)
return
;
QString
type
=
md
->
typeString
();
QString
type
=
md
->
typeString
();
QRegExp
r
(
"@[0-9]+"
);
QRegExp
r
(
"@[0-9]+"
);
...
@@ -539,14 +583,24 @@ static void writeMemberDef(OutputList &ol, ClassDef *cd, NamespaceDef *nd,
...
@@ -539,14 +583,24 @@ static void writeMemberDef(OutputList &ol, ClassDef *cd, NamespaceDef *nd,
else
if
(
fd
)
cname
=
fd
->
name
();
else
if
(
fd
)
cname
=
fd
->
name
();
// If there is no detailed description we need to write the anchor here.
// If there is no detailed description we need to write the anchor here.
if
(
!
md
->
detailsAreVisible
()
&&
!
extractAllFlag
)
bool
detailsVisible
=
md
->
detailsAreVisible
();
if
(
!
detailsVisible
&&
!
extractAllFlag
)
{
{
ol
.
writeDoxyAnchor
(
cname
,
md
->
anchor
(),
md
->
name
());
QString
doxyName
=
md
->
name
().
copy
();
if
(
!
cname
.
isEmpty
())
doxyName
.
prepend
(
cname
+
"::"
);
ol
.
writeDoxyAnchor
(
cname
,
md
->
anchor
(),
doxyName
);
ol
.
addToIndex
(
md
->
name
(),
cname
);
ol
.
addToIndex
(
md
->
name
(),
cname
);
ol
.
addToIndex
(
cname
,
md
->
name
());
ol
.
addToIndex
(
cname
,
md
->
name
());
ol
.
docify
(
"
\n
"
);
ol
.
docify
(
"
\n
"
);
}
}
else
if
(
!
detailsVisible
)
// when extractAll it true we have to write
// a index reference and label in LaTeX because
// detailed section not shown in LaTeX
{
ol
.
addToIndex
(
md
->
name
(),
cname
);
ol
.
addToIndex
(
cname
,
md
->
name
());
ol
.
writeLatexLabel
(
cname
,
md
->
anchor
());
}
ol
.
startMemberItem
();
ol
.
startMemberItem
();
// write type
// write type
...
@@ -564,6 +618,8 @@ static void writeMemberDef(OutputList &ol, ClassDef *cd, NamespaceDef *nd,
...
@@ -564,6 +618,8 @@ static void writeMemberDef(OutputList &ol, ClassDef *cd, NamespaceDef *nd,
QString
name
=
md
->
name
().
copy
();
QString
name
=
md
->
name
().
copy
();
if
(
type
.
length
()
>
0
)
ol
.
writeString
(
" "
);
if
(
type
.
length
()
>
0
)
ol
.
writeString
(
" "
);
ol
.
insertMemberAlign
();
// write name
// write name
if
(
extractAllFlag
||
if
(
extractAllFlag
||
(
md
->
briefDescription
().
isEmpty
()
||
!
briefMemDescFlag
)
&&
(
md
->
briefDescription
().
isEmpty
()
||
!
briefMemDescFlag
)
&&
...
@@ -610,7 +666,7 @@ static void writeMemberDef(OutputList &ol, ClassDef *cd, NamespaceDef *nd,
...
@@ -610,7 +666,7 @@ static void writeMemberDef(OutputList &ol, ClassDef *cd, NamespaceDef *nd,
ol
.
docify
(
" "
);
ol
.
docify
(
" "
);
ol
.
startTextLink
(
0
,
md
->
anchor
());
ol
.
startTextLink
(
0
,
md
->
anchor
());
//ol.writeObjectLink(0,0,md->anchor()," More...");
//ol.writeObjectLink(0,0,md->anchor()," More...");
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMore
());
parse
Text
(
ol
,
theTranslator
->
trMore
());
ol
.
endTextLink
();
ol
.
endTextLink
();
ol
.
startEmphasis
();
ol
.
startEmphasis
();
ol
.
enableAll
();
ol
.
enableAll
();
...
@@ -634,11 +690,13 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -634,11 +690,13 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
if
(
title
)
if
(
title
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
title
);
parse
Text
(
ol
,
title
);
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
}
}
if
(
subtitle
)
ol
.
writeString
(
subtitle
);
if
(
subtitle
)
{
parseText
(
ol
,
subtitle
);
}
if
(
!
fd
&&
!
nd
)
ol
.
startMemberList
();
if
(
!
fd
&&
!
nd
)
ol
.
startMemberList
();
MemberDef
*
md
;
MemberDef
*
md
;
...
@@ -646,7 +704,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -646,7 +704,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
if
(
fd
&&
ml
->
defineCount
()
>
0
)
if
(
fd
&&
ml
->
defineCount
()
>
0
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trDefines
());
parse
Text
(
ol
,
theTranslator
->
trDefines
());
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
ol
.
startMemberList
();
ol
.
startMemberList
();
MemberListIterator
mli
(
*
ml
);
MemberListIterator
mli
(
*
ml
);
...
@@ -663,7 +721,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -663,7 +721,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
if
((
fd
||
nd
)
&&
ml
->
protoCount
()
>
0
)
if
((
fd
||
nd
)
&&
ml
->
protoCount
()
>
0
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFuncProtos
());
parse
Text
(
ol
,
theTranslator
->
trFuncProtos
());
ol
.
startMemberList
();
ol
.
startMemberList
();
MemberListIterator
mli
(
*
ml
);
MemberListIterator
mli
(
*
ml
);
for
(
;
(
md
=
mli
.
current
());
++
mli
)
for
(
;
(
md
=
mli
.
current
());
++
mli
)
...
@@ -678,7 +736,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -678,7 +736,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
if
(
fd
||
nd
)
if
(
fd
||
nd
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trTypedefs
());
parse
Text
(
ol
,
theTranslator
->
trTypedefs
());
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
//ol.writeMemberHeader("Typedefs");
//ol.writeMemberHeader("Typedefs");
ol
.
startMemberList
();
ol
.
startMemberList
();
...
@@ -697,36 +755,21 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -697,36 +755,21 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
if
(
fd
||
nd
)
if
(
fd
||
nd
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trEnumerations
());
parse
Text
(
ol
,
theTranslator
->
trEnumerations
());
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
ol
.
startMemberList
();
ol
.
startMemberList
();
}
}
MemberListIterator
mli
(
*
ml
);
MemberListIterator
mli
(
*
ml
);
for
(
;
(
md
=
mli
.
current
())
;
++
mli
)
for
(
;
(
md
=
mli
.
current
())
;
++
mli
)
{
{
bool
hasDocs
=
md
->
hasDocumentation
();
/*bool hasDocs=md->hasDocumentation();*/
QString
type
=
md
->
typeString
();
QString
type
=
md
->
typeString
();
type
=
type
.
stripWhiteSpace
();
type
=
type
.
stripWhiteSpace
();
if
(
md
->
isEnumerate
()
&&
(
hasDocs
||
!
hideMemberFlag
)
)
if
(
md
->
isEnumerate
()
/*&& (hasDocs || !hideMemberFlag)*/
)
{
{
// see if there are any documented enum values
// we need this info to decide if we need to generate a link.
QList
<
MemberDef
>
*
fmdl
=
md
->
enumFieldList
();
int
documentedEnumValues
=
0
;
if
(
fmdl
)
{
MemberDef
*
fmd
=
fmdl
->
first
();
while
(
fmd
)
{
if
(
fmd
->
hasDocumentation
())
documentedEnumValues
++
;
fmd
=
fmdl
->
next
();
}
}
if
(
documentedEnumValues
>
0
)
md
->
setDocumentedEnumValues
(
TRUE
);
if
(
!
hideMemberFlag
||
// do not hide undocumented members or
if
(
!
hideMemberFlag
||
// do not hide undocumented members or
!
md
->
documentation
().
isEmpty
()
||
// member has detailed descr. or
!
md
->
documentation
().
isEmpty
()
||
// member has detailed descr. or
documentedEnumValues
>
0
||
// member has documented enum vales.
md
->
hasDocumentedEnumValues
()
||
// member has documented enum vales.
briefMemDescFlag
||
// brief descr. is shown or
briefMemDescFlag
||
// brief descr. is shown or
repeatBriefFlag
// brief descr. is repeated.
repeatBriefFlag
// brief descr. is repeated.
)
)
...
@@ -739,7 +782,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -739,7 +782,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
{
{
if
(
extractAllFlag
||
if
(
extractAllFlag
||
(
md
->
briefDescription
().
isEmpty
()
||
!
briefMemDescFlag
)
&&
(
md
->
briefDescription
().
isEmpty
()
||
!
briefMemDescFlag
)
&&
(
!
md
->
documentation
().
isEmpty
()
||
documentedEnumValues
>
0
||
(
!
md
->
documentation
().
isEmpty
()
||
md
->
hasDocumentedEnumValues
()
||
(
!
md
->
briefDescription
().
isEmpty
()
&&
(
!
md
->
briefDescription
().
isEmpty
()
&&
!
briefMemDescFlag
&&
!
briefMemDescFlag
&&
repeatBriefFlag
repeatBriefFlag
...
@@ -760,6 +803,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -760,6 +803,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
}
}
typeDecl
.
docify
(
"{ "
);
typeDecl
.
docify
(
"{ "
);
QList
<
MemberDef
>
*
fmdl
=
md
->
enumFieldList
();
if
(
fmdl
)
if
(
fmdl
)
{
{
MemberDef
*
fmd
=
fmdl
->
first
();
MemberDef
*
fmd
=
fmdl
->
first
();
...
@@ -798,6 +842,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -798,6 +842,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
{
{
ol
.
startMemberItem
();
ol
.
startMemberItem
();
ol
.
writeString
(
"enum "
);
ol
.
writeString
(
"enum "
);
ol
.
insertMemberAlign
();
ol
+=
typeDecl
;
ol
+=
typeDecl
;
ol
.
endMemberItem
();
ol
.
endMemberItem
();
//QString brief=md->briefDescription();
//QString brief=md->briefDescription();
...
@@ -807,14 +852,14 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -807,14 +852,14 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
ol
.
startMemberDescription
();
ol
.
startMemberDescription
();
parseDoc
(
ol
,
cd
?
cd
->
name
().
data
()
:
0
,
parseDoc
(
ol
,
cd
?
cd
->
name
().
data
()
:
0
,
md
->
name
().
data
(),
md
->
briefDescription
());
md
->
name
().
data
(),
md
->
briefDescription
());
if
(
!
md
->
documentation
().
isEmpty
()
||
documentedEnumValues
>
0
)
if
(
!
md
->
documentation
().
isEmpty
()
||
md
->
hasDocumentedEnumValues
()
)
{
{
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
endEmphasis
();
ol
.
endEmphasis
();
ol
.
docify
(
" "
);
ol
.
docify
(
" "
);
ol
.
startTextLink
(
0
,
md
->
anchor
());
ol
.
startTextLink
(
0
,
md
->
anchor
());
//ol.writeObjectLink(0,0,md->anchor()," More...");
//ol.writeObjectLink(0,0,md->anchor()," More...");
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trMore
());
parse
Text
(
ol
,
theTranslator
->
trMore
());
ol
.
endTextLink
();
ol
.
endTextLink
();
ol
.
startEmphasis
();
ol
.
startEmphasis
();
ol
.
enableAll
();
ol
.
enableAll
();
...
@@ -838,7 +883,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -838,7 +883,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
if
(
fd
||
nd
)
if
(
fd
||
nd
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trFunctions
());
parse
Text
(
ol
,
theTranslator
->
trFunctions
());
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
ol
.
startMemberList
();
ol
.
startMemberList
();
}
}
...
@@ -873,6 +918,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -873,6 +918,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
{
{
ol
.
startMemberItem
();
ol
.
startMemberItem
();
ol
.
docify
(
"class "
);
ol
.
docify
(
"class "
);
ol
.
insertMemberAlign
();
ol
.
writeObjectLink
(
0
,
0
,
md
->
anchor
(),
md
->
name
());
ol
.
writeObjectLink
(
0
,
0
,
md
->
anchor
(),
md
->
name
());
ol
.
endMemberItem
();
ol
.
endMemberItem
();
}
}
...
@@ -880,13 +926,15 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -880,13 +926,15 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
{
{
ol
.
startMemberItem
();
ol
.
startMemberItem
();
ol
.
docify
(
"class "
);
ol
.
docify
(
"class "
);
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFile
(),
0
,
cd
->
name
());
ol
.
insertMemberAlign
();
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
,
cd
->
name
());
ol
.
endMemberItem
();
ol
.
endMemberItem
();
}
}
else
if
(
!
hideMemberFlag
)
// no documentation
else
if
(
!
hideMemberFlag
)
// no documentation
{
{
ol
.
startMemberItem
();
ol
.
startMemberItem
();
ol
.
docify
(
"class "
);
ol
.
docify
(
"class "
);
ol
.
insertMemberAlign
();
ol
.
writeBoldString
(
md
->
name
());
ol
.
writeBoldString
(
md
->
name
());
ol
.
endMemberItem
();
ol
.
endMemberItem
();
}
}
...
@@ -901,7 +949,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
...
@@ -901,7 +949,7 @@ void writeMemberDecs(OutputList &ol,ClassDef *cd,NamespaceDef *nd, FileDef *fd,
if
(
fd
||
nd
)
if
(
fd
||
nd
)
{
{
ol
.
startMemberHeader
();
ol
.
startMemberHeader
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trVariables
());
parse
Text
(
ol
,
theTranslator
->
trVariables
());
ol
.
endMemberHeader
();
ol
.
endMemberHeader
();
ol
.
startMemberList
();
ol
.
startMemberList
();
}
}
...
@@ -1109,11 +1157,11 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
...
@@ -1109,11 +1157,11 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
{
{
ol
.
newParagraph
();
ol
.
newParagraph
();
ol
.
startBold
();
ol
.
startBold
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trEnumerationValues
());
parse
Text
(
ol
,
theTranslator
->
trEnumerationValues
());
//ol.writeBoldString("Enumeration values:");
//ol.writeBoldString("Enumeration values:");
ol
.
docify
(
":"
);
ol
.
docify
(
":"
);
ol
.
endBold
();
ol
.
endBold
();
ol
.
start
Member
List
();
ol
.
start
Item
List
();
}
}
ol
.
writeDoxyAnchor
(
cname
,
fmd
->
anchor
(),
fmd
->
name
());
ol
.
writeDoxyAnchor
(
cname
,
fmd
->
anchor
(),
fmd
->
name
());
ol
.
addToIndex
(
fmd
->
name
(),
cname
);
ol
.
addToIndex
(
fmd
->
name
(),
cname
);
...
@@ -1141,7 +1189,7 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
...
@@ -1141,7 +1189,7 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
fmd
=
fmdl
->
next
();
fmd
=
fmdl
->
next
();
}
}
}
}
if
(
!
first
)
{
ol
.
end
Member
List
();
ol
.
writeChar
(
'\n'
);
}
if
(
!
first
)
{
ol
.
end
Item
List
();
ol
.
writeChar
(
'\n'
);
}
}
}
MemberDef
*
bmd
=
md
->
reimplements
();
MemberDef
*
bmd
=
md
->
reimplements
();
...
@@ -1159,33 +1207,49 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
...
@@ -1159,33 +1207,49 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
// write class that contains a member that is reimplemented by this one
// write class that contains a member that is reimplemented by this one
ClassDef
*
bcd
=
bmd
->
memberClass
();
ClassDef
*
bcd
=
bmd
->
memberClass
();
ol
.
newParagraph
();
ol
.
newParagraph
();
parseDoc
(
ol
,
0
,
0
,
theTranslator
->
trReimplementedFrom
());
//parseText(ol,theTranslator->trReimplementedFrom());
//ol.writeString("Reimplemented from ");
//ol.docify(" ");
ol
.
docify
(
" "
);
if
(
bmd
->
hasDocumentation
())
QString
reimplFromLine
=
theTranslator
->
trReimplementedFromList
(
1
);
int
markerPos
=
reimplFromLine
.
find
(
"@0"
);
if
(
markerPos
!=-
1
)
// should always pass this.
{
{
ol
.
writeObjectLink
(
bcd
->
getReference
(),
bcd
->
classFile
(),
parseText
(
ol
,
reimplFromLine
.
left
(
markerPos
));
//text left from marker
bmd
->
anchor
(),
bcd
->
name
());
if
(
bmd
->
hasDocumentation
()
&&
if
(
(
bmd
->
protection
()
!=
Private
||
extractPrivateFlag
)
!
bcd
->
isReference
()
&&
)
// replace marker with link
//(bcd->hasDocumentation() || !hideClassFlag) &&
{
//(bcd->protection()!=Private || extractPrivateFlag)
ol
.
writeObjectLink
(
bcd
->
getReference
(),
bcd
->
getOutputFileBase
(),
bcd
->
isVisible
()
bmd
->
anchor
(),
bcd
->
name
());
/*&& bmd->detailsAreVisible()*/
if
(
)
ol
.
writePageRef
(
bcd
->
name
(),
bmd
->
anchor
());
!
bcd
->
isReference
()
&&
//(bcd->hasDocumentation() || !hideClassFlag) &&
//(bcd->protection()!=Private || extractPrivateFlag)
bcd
->
isVisible
()
/*&& bmd->detailsAreVisible()*/
)
ol
.
writePageRef
(
bcd
->
name
(),
bmd
->
anchor
());
}
else
{
ol
.
writeObjectLink
(
bcd
->
getReference
(),
bcd
->
getOutputFileBase
(),
0
,
bcd
->
name
());
if
(
!
bcd
->
isReference
()
&&
//(bcd->hasDocumentation() || !hideClassFlag) &&
//(bcd->protection()!=Private || extractPrivateFlag)
bcd
->
isVisible
()
)
ol
.
writePageRef
(
bcd
->
name
(),
0
);
}
parseText
(
ol
,
reimplFromLine
.
right
(
reimplFromLine
.
length
()
-
markerPos
-
2
));
// text right from marker
}
}
else
else
{
{
ol
.
writeObjectLink
(
bcd
->
getReference
(),
bcd
->
classFile
(),
err
(
"Error: translation error: no marker in trReimplementsFromList()
\n
"
);
0
,
bcd
->
name
());
if
(
!
bcd
->
isReference
()
&&
//(bcd->hasDocumentation() || !hideClassFlag) &&
//(bcd->protection()!=Private || extractPrivateFlag)
bcd
->
isVisible
()
)
ol
.
writePageRef
(
bcd
->
name
(),
0
);
}
}
ol
.
writeString
(
"."
);
//ol.writeString(".");
}
}
MemberList
*
bml
=
md
->
reimplementedBy
();
MemberList
*
bml
=
md
->
reimplementedBy
();
int
count
;
int
count
;
...
@@ -1193,16 +1257,53 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
...
@@ -1193,16 +1257,53 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
{
{
// write the list of classes that overwrite this member
// write the list of classes that overwrite this member
ol
.
newParagraph
();
ol
.
newParagraph
();
parseDoc
(
ol
,
0
,
0
,
theTranslator
->
trReimplementedIn
());
//parseText(ol
,theTranslator->trReimplementedIn());
//ol.writeString("Reimplemented in ");
//ol.writeString("Reimplemented in ");
ol
.
docify
(
" "
);
//ol.docify(" ");
QString
reimplInLine
=
theTranslator
->
trReimplementedInList
(
bml
->
count
());
QRegExp
marker
(
"@[0-9]+"
);
int
index
=
0
,
newIndex
,
matchLen
;
// now replace all markers in reimplInLine with links to the classes
while
((
newIndex
=
marker
.
match
(
reimplInLine
,
index
,
&
matchLen
))
!=-
1
)
{
parseText
(
ol
,
reimplInLine
.
mid
(
index
,
newIndex
-
index
));
bool
ok
;
uint
entryIndex
=
reimplInLine
.
mid
(
newIndex
+
1
,
matchLen
-
1
).
toUInt
(
&
ok
);
bmd
=
bml
->
at
(
entryIndex
);
if
(
ok
&&
bmd
)
// write link for marker
{
ClassDef
*
bcd
=
bmd
->
memberClass
();
if
(
bmd
->
hasDocumentation
()
&&
(
bmd
->
protection
()
!=
Private
||
extractPrivateFlag
)
)
{
ol
.
writeObjectLink
(
bcd
->
getReference
(),
bcd
->
getOutputFileBase
(),
bmd
->
anchor
(),
bcd
->
name
());
if
(
!
bcd
->
isReference
()
&&
bcd
->
isVisible
())
ol
.
writePageRef
(
bcd
->
name
(),
bmd
->
anchor
());
}
else
{
ol
.
writeObjectLink
(
bcd
->
getReference
(),
bcd
->
getOutputFileBase
(),
0
,
bcd
->
name
());
if
(
!
bcd
->
isReference
()
&&
bcd
->
isVisible
())
ol
.
writePageRef
(
bcd
->
name
(),
0
);
}
}
index
=
newIndex
+
matchLen
;
}
parseText
(
ol
,
reimplInLine
.
right
(
reimplInLine
.
length
()
-
index
));
#if 0
bmd=bml->first();
bmd=bml->first();
while (bmd)
while (bmd)
{
{
ClassDef *bcd = bmd->memberClass();
ClassDef *bcd = bmd->memberClass();
if (bmd->hasDocumentation())
if (bmd->hasDocumentation())
{
{
ol
.
writeObjectLink
(
bcd
->
getReference
(),
bcd
->
classFil
e
(),
ol.writeObjectLink(bcd->getReference(),bcd->
getOutputFileBas
e(),
bmd->anchor(),bcd->name());
bmd->anchor(),bcd->name());
if (
if (
!bcd->isReference() &&
!bcd->isReference() &&
...
@@ -1214,7 +1315,7 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
...
@@ -1214,7 +1315,7 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
}
}
else
else
{
{
ol
.
writeObjectLink
(
bcd
->
getReference
(),
bcd
->
classFil
e
(),
ol.writeObjectLink(bcd->getReference(),bcd->
getOutputFileBas
e(),
0,bcd->name());
0,bcd->name());
if (
if (
!bcd->isReference() &&
!bcd->isReference() &&
...
@@ -1228,24 +1329,25 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
...
@@ -1228,24 +1329,25 @@ void writeMemberDocs(OutputList &ol,MemberList *ml,const char *scopeName,
{
{
if (bml->at()==count-1)
if (bml->at()==count-1)
//ol.writeString(" and ");
//ol.writeString(" and ");
parse
Doc
(
ol
,
0
,
0
,
" "
+
theTranslator
->
trAnd
()
+
" "
);
parse
Text(ol
," "+theTranslator->trAnd()+" ");
else
else
ol.writeString(", ");
ol.writeString(", ");
}
}
}
}
ol.writeString(".");
ol.writeString(".");
#endif
}
}
// write the list of examples that use this member
// write the list of examples that use this member
if
(
md
->
hasExamples
())
if
(
md
->
hasExamples
())
{
{
ol
.
startDescList
();
ol
.
startDescList
();
ol
.
startBold
();
ol
.
startBold
();
parse
Doc
(
ol
,
0
,
0
,
theTranslator
->
trExamples
()
+
": "
);
parse
Text
(
ol
,
theTranslator
->
trExamples
()
+
": "
);
//ol.writeBoldString("Examples: ");
//ol.writeBoldString("Examples: ");
ol
.
endBold
();
ol
.
endBold
();
ol
.
endDescTitle
();
ol
.
endDescTitle
();
ol
.
writeDescItem
();
ol
.
writeDescItem
();
md
->
writeExample
(
ol
);
writeExample
(
ol
,
md
->
getExampleList
()
);
//ol.endDescItem();
//ol.endDescItem();
ol
.
endDescList
();
ol
.
endDescList
();
}
}
...
@@ -1388,8 +1490,7 @@ static QString trimTemplateSpecifiers(const QString &className,const QString &s)
...
@@ -1388,8 +1490,7 @@ static QString trimTemplateSpecifiers(const QString &className,const QString &s)
// removes the (one and only) occurrence of name:: from s.
// removes the (one and only) occurrence of name:: from s.
static
QString
trimScope
(
const
QString
&
name
,
const
QString
&
s
)
static
QString
trimScope
(
const
QString
&
name
,
const
QString
&
s
)
{
{
int
spos
;
int
spos
=
s
.
find
(
name
+
"::"
);
spos
=
s
.
find
(
name
+
"::"
);
if
(
spos
!=-
1
)
if
(
spos
!=-
1
)
{
{
return
s
.
left
(
spos
)
+
s
.
right
(
s
.
length
()
-
spos
-
name
.
length
()
-
2
);
return
s
.
left
(
spos
)
+
s
.
right
(
s
.
length
()
-
spos
-
name
.
length
()
-
2
);
...
@@ -1486,8 +1587,12 @@ bool matchArguments(ArgumentList *srcAl,ArgumentList *dstAl,
...
@@ -1486,8 +1587,12 @@ bool matchArguments(ArgumentList *srcAl,ArgumentList *dstAl,
{
{
srcAType
=
trimScope
(
className
,
srcAType
);
srcAType
=
trimScope
(
className
,
srcAType
);
dstAType
=
trimScope
(
className
,
dstAType
);
dstAType
=
trimScope
(
className
,
dstAType
);
ClassDef
*
cd
=
getClass
(
className
);
ClassDef
*
cd
;
if
(
cd
->
baseClasses
()
->
count
()
>
0
)
if
(
!
namespaceName
.
isEmpty
())
cd
=
getClass
(
namespaceName
+
"::"
+
className
);
else
cd
=
getClass
(
className
);
if
(
cd
&&
cd
->
baseClasses
()
->
count
()
>
0
)
{
{
srcAType
=
trimBaseClassScope
(
cd
->
baseClasses
(),
srcAType
);
srcAType
=
trimBaseClassScope
(
cd
->
baseClasses
(),
srcAType
);
dstAType
=
trimBaseClassScope
(
cd
->
baseClasses
(),
dstAType
);
dstAType
=
trimBaseClassScope
(
cd
->
baseClasses
(),
dstAType
);
...
@@ -1703,17 +1808,19 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl)
...
@@ -1703,17 +1808,19 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl)
// returns TRUE if the class and member both could be found
// returns TRUE if the class and member both could be found
bool
getDefs
(
const
QString
&
memberName
,
const
QString
&
className
,
bool
getDefs
(
const
QString
&
memberName
,
const
QString
&
className
,
const
char
*
args
,
MemberDef
*&
md
,
ClassDef
*&
cd
,
FileDef
*&
fd
)
const
char
*
args
,
MemberDef
*&
md
,
ClassDef
*&
cd
,
FileDef
*&
fd
,
NamespaceDef
*&
nd
)
{
{
//printf("Search for %s::%s %s\n",className.data(),memberName.data(),args);
//printf("Search for %s::%s %s\n",className.data(),memberName.data(),args);
fd
=
0
;
md
=
0
;
c
d
=
0
;
fd
=
0
,
md
=
0
,
cd
=
0
,
n
d
=
0
;
if
(
memberName
.
length
()
==
0
)
return
FALSE
;
if
(
memberName
.
length
()
==
0
)
return
FALSE
;
MemberName
*
mn
;
MemberName
*
mn
;
if
((
mn
=
memberNameDict
[
memberName
])
&&
className
.
length
()
>
0
)
if
((
mn
=
memberNameDict
[
memberName
])
&&
className
.
length
()
>
0
)
{
{
//printf(" >member name found\n");
//printf(" >member name found\n");
ClassDef
*
fcd
=
0
;
ClassDef
*
fcd
=
0
;
if
((
fcd
=
getClass
(
className
)))
//printf("className=%s\n",className.data());
if
((
fcd
=
getClass
(
className
))
&&
fcd
->
hasDocumentation
())
{
{
//printf(" >member class found\n");
//printf(" >member class found\n");
MemberDef
*
mmd
=
mn
->
first
();
MemberDef
*
mmd
=
mn
->
first
();
...
@@ -1744,7 +1851,6 @@ bool getDefs(const QString &memberName,const QString &className,
...
@@ -1744,7 +1851,6 @@ bool getDefs(const QString &memberName,const QString &className,
mdist
=
m
;
mdist
=
m
;
cd
=
mcd
;
cd
=
mcd
;
md
=
mmd
;
md
=
mmd
;
fd
=
0
;
}
}
}
}
if
(
argList
)
if
(
argList
)
...
@@ -1778,7 +1884,6 @@ bool getDefs(const QString &memberName,const QString &className,
...
@@ -1778,7 +1884,6 @@ bool getDefs(const QString &memberName,const QString &className,
mdist
=
m
;
mdist
=
m
;
cd
=
mcd
;
cd
=
mcd
;
md
=
mmd
;
md
=
mmd
;
fd
=
0
;
}
}
}
}
mmd
=
mn
->
next
();
mmd
=
mn
->
next
();
...
@@ -1788,11 +1893,28 @@ bool getDefs(const QString &memberName,const QString &className,
...
@@ -1788,11 +1893,28 @@ bool getDefs(const QString &memberName,const QString &className,
return
mdist
<
maxInheritanceDepth
;
return
mdist
<
maxInheritanceDepth
;
}
}
}
}
else
// maybe an
unrelated
member ?
else
// maybe an
namespace or file
member ?
{
{
MemberName
*
mn
;
MemberName
*
mn
;
if
((
mn
=
functionNameDict
[
memberName
]))
if
((
mn
=
functionNameDict
[
memberName
]))
// name is known
{
{
NamespaceDef
*
fnd
=
0
;
if
(
className
.
length
()
>
0
&&
(
fnd
=
namespaceDict
[
className
])
&&
fnd
->
hasDocumentation
())
{
// inside a namespace
MemberDef
*
mmd
=
mn
->
first
();
while
(
mmd
)
{
if
(
mmd
->
getNamespace
()
==
fnd
&&
mmd
->
hasDocumentation
())
{
// namespace is found
nd
=
fnd
;
md
=
mmd
;
return
TRUE
;
}
mmd
=
mn
->
next
();
}
}
// maybe a file member (e.g. global function or variable)
md
=
mn
->
first
();
md
=
mn
->
first
();
while
(
md
)
while
(
md
)
{
{
...
@@ -1801,7 +1923,6 @@ bool getDefs(const QString &memberName,const QString &className,
...
@@ -1801,7 +1923,6 @@ bool getDefs(const QString &memberName,const QString &className,
fd
=
md
->
getFileDef
();
fd
=
md
->
getFileDef
();
if
(
fd
&&
fd
->
hasDocumentation
())
if
(
fd
&&
fd
->
hasDocumentation
())
{
{
cd
=
0
;
return
TRUE
;
return
TRUE
;
}
}
}
}
...
@@ -1828,12 +1949,18 @@ void generateClassRef(OutputList &ol,const char *clName,const char *linkTxt)
...
@@ -1828,12 +1949,18 @@ void generateClassRef(OutputList &ol,const char *clName,const char *linkTxt)
ol
.
docify
(
linkText
);
ol
.
docify
(
linkText
);
return
;
return
;
}
}
ClassDef
*
cd
;
ClassDef
*
cd
=
0
;
NamespaceDef
*
nd
=
0
;
if
((
cd
=
getClass
(
className
))
&&
cd
->
isVisible
())
if
((
cd
=
getClass
(
className
))
&&
cd
->
isVisible
())
{
{
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFil
e
(),
0
,
linkText
);
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBas
e
(),
0
,
linkText
);
if
(
!
cd
->
isReference
())
ol
.
writePageRef
(
cd
->
name
(),
0
);
if
(
!
cd
->
isReference
())
ol
.
writePageRef
(
cd
->
name
(),
0
);
}
}
else
if
((
nd
=
namespaceDict
[
className
])
&&
nd
->
hasDocumentation
())
{
ol
.
writeObjectLink
(
nd
->
getReference
(),
nd
->
getOutputFileBase
(),
0
,
linkText
);
ol
.
writePageRef
(
nd
->
name
(),
0
);
}
else
else
ol
.
docify
(
linkText
);
ol
.
docify
(
linkText
);
}
}
...
@@ -1887,8 +2014,11 @@ void generateRef(OutputList &ol,const char *clName,
...
@@ -1887,8 +2014,11 @@ void generateRef(OutputList &ol,const char *clName,
}
}
// extract scope
// extract scope
QString
scopeStr
;
QString
scopeContext
=
clName
;
if
(
scopePos
>
0
)
scopeStr
=
tmpName
.
left
(
scopePos
);
else
scopeStr
=
clName
;
QString
scopeUser
;
if
(
scopePos
>
0
)
scopeUser
=
tmpName
.
left
(
scopePos
);
//printf("scopeContext=%s scopeUser=%s\n",scopeContext.data(),scopeUser.data());
// extract name
// extract name
int
startNamePos
=
scopePos
!=-
1
?
scopePos
+
2
:
0
;
int
startNamePos
=
scopePos
!=-
1
?
scopePos
+
2
:
0
;
...
@@ -1898,96 +2028,115 @@ void generateRef(OutputList &ol,const char *clName,
...
@@ -1898,96 +2028,115 @@ void generateRef(OutputList &ol,const char *clName,
// extract arguments
// extract arguments
QString
argsStr
;
QString
argsStr
;
if
(
bracePos
!=-
1
)
argsStr
=
tmpName
.
right
(
tmpName
.
length
()
-
bracePos
);
if
(
bracePos
!=-
1
)
argsStr
=
tmpName
.
right
(
tmpName
.
length
()
-
bracePos
);
bool
explicitLink
=
TRUE
;
// create a default link text if none was explicitly given
// create a default link text if none was explicitly given
bool
explicitLink
=
TRUE
;
if
(
linkText
.
isNull
())
if
(
linkText
.
isNull
())
{
{
if
(
!
scope
Str
.
isNull
()
&&
scopePos
>
0
)
linkText
=
scopeSt
r
+
"::"
;
if
(
!
scope
User
.
isEmpty
())
linkText
=
scopeUse
r
+
"::"
;
linkText
+=
nameStr
;
linkText
+=
nameStr
;
explicitLink
=
FALSE
;
explicitLink
=
FALSE
;
}
}
//printf("scope=`%s' name=`%s' arg=`%s' linkText=`%s'\n",
//printf("scope=`%s' name=`%s' arg=`%s' linkText=`%s'\n",
// scopeStr.data(),nameStr.data(),argsStr.data(),linkText.data());
// scopeStr.data(),nameStr.data(),argsStr.data(),linkText.data());
//Define *d=0;
//Define *d=0;
MemberDef
*
md
;
MemberDef
*
md
=
0
;
ClassDef
*
cd
;
ClassDef
*
cd
=
0
;
FileDef
*
fd
;
FileDef
*
fd
=
0
;
// check if nameStr is a member or global.
NamespaceDef
*
nd
=
0
;
if
(
getDefs
(
nameStr
,
scopeStr
,
argsStr
,
md
,
cd
,
fd
))
int
scopeOffset
=
scopeContext
.
length
();
{
do
QString
anchor
=
md
->
hasDocumentation
()
?
md
->
anchor
()
:
0
;
{
QString
cName
,
aName
;
QString
totalScope
=
scopeUser
.
copy
();
if
(
cd
)
// nameStr is a member of cd
if
(
scopeOffset
>
0
)
{
//printf("addObjectLink(%s,%s,%s,%s)\n",cd->getReference(),
// cd->classFile(),anchor.data(),resultName.stripWhiteSpace().data());
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
classFile
(),
anchor
,
linkText
.
stripWhiteSpace
());
cName
=
cd
->
name
();
aName
=
md
->
anchor
();
}
else
if
(
fd
)
// nameStr is a global in file fd
{
//printf("addFileLink(%s,%s,%s)\n",fd->diskName(),anchor.data(),
// resultName.stripWhiteSpace().data());
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
diskName
(),
anchor
,
linkText
.
stripWhiteSpace
());
cName
=
fd
->
name
();
aName
=
md
->
anchor
();
}
else
// should not be reached
{
{
//printf("add no link fd=cd=0\n
");
if
(
!
totalScope
.
isEmpty
())
totalScope
.
prepend
(
"::
"
);
ol
.
docify
(
linkText
);
totalScope
.
prepend
(
scopeContext
.
left
(
scopeOffset
)
);
}
}
//printf("Try with totalScope=`%s'\n",totalScope.data());
//
for functions we add the arguments if explicitly specified or else "()"
//
check if nameStr is a member or global.
if
(
!
rt
&&
(
md
->
isFunction
()
||
md
->
isPrototype
()
||
md
->
isSignal
()
||
md
->
isSlot
()))
if
(
getDefs
(
nameStr
,
totalScope
,
argsStr
,
md
,
cd
,
fd
,
nd
))
{
{
if
(
argsStr
.
isNull
())
QString
anchor
=
md
->
hasDocumentation
()
?
md
->
anchor
()
:
0
;
ol
.
writeString
(
"()"
);
QString
cName
,
aName
;
else
if
(
cd
)
// nameStr is a member of cd
ol
.
docify
(
argsStr
);
{
}
//printf("addObjectLink(%s,%s,%s,%s)\n",cd->getReference(),
// cd->getOutputFileBase(),anchor.data(),resultName.stripWhiteSpace().data());
// generate the page reference (for LaTeX)
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
if
(
cName
.
length
()
>
0
||
aName
.
length
()
>
0
)
anchor
,
linkText
.
stripWhiteSpace
());
{
cName
=
cd
->
name
();
if
(
/*md->detailsAreVisible() &&*/
aName
=
md
->
anchor
();
(
}
(
cd
&&
!
cd
->
isReference
()
&&
else
if
(
nd
)
// nameStr is a member of nd
// (cd->hasDocumentation() || !hideClassFlag) &&
{
// (cd->protection()!=Private || extractPrivateFlag)
ol
.
writeObjectLink
(
nd
->
getReference
(),
nd
->
getOutputFileBase
(),
cd
->
isVisible
()
anchor
,
linkText
.
stripWhiteSpace
());
)
||
cName
=
nd
->
name
();
(
fd
&&
!
fd
->
isReference
())
aName
=
md
->
anchor
();
)
}
)
ol
.
writePageRef
(
cName
,
aName
);
else
if
(
fd
)
// nameStr is a global in file fd
{
//printf("addFileLink(%s,%s,%s)\n",fd->getOutputFileBase(),anchor.data(),
// resultName.stripWhiteSpace().data());
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
getOutputFileBase
(),
anchor
,
linkText
.
stripWhiteSpace
());
cName
=
fd
->
name
();
aName
=
md
->
anchor
();
}
else
// should not be reached
{
//printf("add no link fd=cd=0\n");
ol
.
docify
(
linkText
);
}
// for functions we add the arguments if explicitly specified or else "()"
if
(
!
rt
&&
(
md
->
isFunction
()
||
md
->
isPrototype
()
||
md
->
isSignal
()
||
md
->
isSlot
()))
{
if
(
argsStr
.
isNull
())
ol
.
writeString
(
"()"
);
else
ol
.
docify
(
argsStr
);
}
// generate the page reference (for LaTeX)
if
(
cName
.
length
()
>
0
||
aName
.
length
()
>
0
)
{
if
(
(
cd
&&
!
cd
->
isReference
()
&&
cd
->
isVisible
())
||
(
fd
&&
!
fd
->
isReference
())
||
(
nd
/* TODO: && !nd->isReference() */
)
)
{
ol
.
writePageRef
(
cName
,
aName
);
}
}
return
;
}
}
}
// else if (!nameStr.isNull() && (d=defineDict[nameStr]))
// else if (!nameStr.isNull() && (d=defineDict[nameStr]))
// // check if nameStr is perhaps a define
// // check if nameStr is perhaps a define
// {
// {
// if (d->hasDocumentation() && d->fileDef)
// if (d->hasDocumentation() && d->fileDef)
// {
// {
// ol.writeObjectLink(0,d->fileDef->getOutputFileBase(),d->anchor,
// ol.writeObjectLink(0,d->fileDef->diskName(),d->anchor,
// linkText.stripWhiteSpace());
// linkText.stripWhiteSpace());
// if (!explicitLink) ol.docify(argsStr);
// if (!explicitLink) ol.docify(argsStr);
// }
// }
// }
// }
if
(
scopeOffset
==
0
)
else
// nameStr is a false alarm or a typo.
scopeOffset
=-
1
;
else
if
((
scopeOffset
=
scopeContext
.
findRev
(
"::"
,
scopeOffset
-
1
))
==-
1
)
scopeOffset
=
0
;
}
while
(
scopeOffset
>=
0
);
// nothing found
if
(
rt
)
ol
.
docify
(
rt
);
else
{
{
if
(
rt
)
ol
.
docify
(
linkText
);
ol
.
docify
(
rt
);
if
(
!
argsStr
.
isNull
())
ol
.
docify
(
argsStr
);
else
{
ol
.
docify
(
linkText
);
if
(
!
argsStr
.
isNull
())
ol
.
docify
(
argsStr
);
}
}
}
return
;
return
;
}
}
...
@@ -2016,7 +2165,7 @@ void generateLink(OutputList &ol,const char *clName,
...
@@ -2016,7 +2165,7 @@ void generateLink(OutputList &ol,const char *clName,
else
if
((
fd
=
findFileDef
(
&
inputNameDict
,
linkRef
,
ambig
))
else
if
((
fd
=
findFileDef
(
&
inputNameDict
,
linkRef
,
ambig
))
&&
fd
->
hasDocumentation
())
&&
fd
->
hasDocumentation
())
// link to documented input file
// link to documented input file
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
diskNam
e
(),
0
,
lt
);
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
getOutputFileBas
e
(),
0
,
lt
);
else
// probably a class or member reference
else
// probably a class or member reference
generateRef
(
ol
,
clName
,
lr
,
inSeeBlock
,
lt
);
generateRef
(
ol
,
clName
,
lr
,
inSeeBlock
,
lt
);
}
}
...
@@ -2030,7 +2179,7 @@ void generateFileRef(OutputList &ol,const char *name,const char *text)
...
@@ -2030,7 +2179,7 @@ void generateFileRef(OutputList &ol,const char *name,const char *text)
if
((
fd
=
findFileDef
(
&
inputNameDict
,
name
,
ambig
))
&&
if
((
fd
=
findFileDef
(
&
inputNameDict
,
name
,
ambig
))
&&
fd
->
hasDocumentation
())
fd
->
hasDocumentation
())
// link to documented input file
// link to documented input file
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
diskNam
e
(),
0
,
linkText
);
ol
.
writeObjectLink
(
fd
->
getReference
(),
fd
->
getOutputFileBas
e
(),
0
,
linkText
);
else
else
ol
.
docify
(
linkText
);
ol
.
docify
(
linkText
);
}
}
...
@@ -2172,3 +2321,17 @@ void showFileDefMatches(const FileNameDict *fnDict,const char *n)
...
@@ -2172,3 +2321,17 @@ void showFileDefMatches(const FileNameDict *fnDict,const char *n)
}
}
}
}
//----------------------------------------------------------------------
void
setFileNameForSections
(
QList
<
QString
>
*
anchorList
,
const
char
*
fileName
)
{
if
(
!
anchorList
)
return
;
QString
*
s
=
anchorList
->
first
();
while
(
s
)
{
SectionInfo
*
si
;
if
(
!
s
->
isEmpty
()
&&
(
si
=
sectionDict
[
*
s
]))
si
->
fileName
=
fileName
;
s
=
anchorList
->
next
();
}
}
src/util.h
View file @
e04496cb
...
@@ -46,7 +46,8 @@ extern QString dateToString(bool);
...
@@ -46,7 +46,8 @@ extern QString dateToString(bool);
//extern OutputList linkifyText(const char *clName,const char *name,
//extern OutputList linkifyText(const char *clName,const char *name,
// const char *text);
// const char *text);
extern
bool
getDefs
(
const
QString
&
memberName
,
const
QString
&
className
,
extern
bool
getDefs
(
const
QString
&
memberName
,
const
QString
&
className
,
const
char
*
,
MemberDef
*&
md
,
ClassDef
*&
cd
,
FileDef
*&
fd
);
const
char
*
,
MemberDef
*&
md
,
ClassDef
*&
cd
,
FileDef
*&
fd
,
NamespaceDef
*&
nd
);
extern
void
generateRef
(
OutputList
&
ol
,
const
char
*
,
extern
void
generateRef
(
OutputList
&
ol
,
const
char
*
,
const
char
*
,
bool
inSeeBlock
,
const
char
*
=
0
);
const
char
*
,
bool
inSeeBlock
,
const
char
*
=
0
);
extern
void
generateLink
(
OutputList
&
ol
,
const
char
*
,
extern
void
generateLink
(
OutputList
&
ol
,
const
char
*
,
...
@@ -78,5 +79,8 @@ void startFile(OutputList &ol,const char *name,
...
@@ -78,5 +79,8 @@ void startFile(OutputList &ol,const char *name,
void
endFile
(
OutputList
&
ol
,
bool
external
=
FALSE
);
void
endFile
(
OutputList
&
ol
,
bool
external
=
FALSE
);
void
writeQuickLinks
(
OutputList
&
ol
,
bool
compact
,
bool
external
=
FALSE
);
void
writeQuickLinks
(
OutputList
&
ol
,
bool
compact
,
bool
external
=
FALSE
);
QString
argListToString
(
ArgumentList
*
al
);
QString
argListToString
(
ArgumentList
*
al
);
QString
generateMarker
(
int
id
);
void
writeExample
(
OutputList
&
ol
,
ExampleList
*
el
);
void
setFileNameForSections
(
QList
<
QString
>
*
anchorList
,
const
char
*
fileName
);
#endif
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment