Commit 2ddfaa1d authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.5.5-20080307

parent b8ff6878
DOXYGEN Version 1.5.5 DOXYGEN Version 1.5.5-20080307
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (10 February 2008) Dimitri van Heesch (07 March 2008)
DOXYGEN Version 1.5.5 DOXYGEN Version 1.5.5_20080307
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (10 February 2008) Dimitri van Heesch (dimitri@stack.nl) (07 March 2008)
...@@ -506,8 +506,8 @@ Step4::Step4(QWidget *parent) : QWidget(parent,"Step4") ...@@ -506,8 +506,8 @@ Step4::Step4(QWidget *parent) : QWidget(parent,"Step4")
connect(m_diagramMode,SIGNAL(clicked(int)), connect(m_diagramMode,SIGNAL(clicked(int)),
this,SLOT(diagramModeChanged(int))); this,SLOT(diagramModeChanged(int)));
connect(m_dotCall,SIGNAL(stateChanged(int)), //connect(m_dotCall,SIGNAL(stateChanged(int)),
parent,SLOT(changeCallGraphState(int))); // parent,SLOT(changeCallGraphState(int)));
} }
void Step4::diagramModeChanged(int buttonId) void Step4::diagramModeChanged(int buttonId)
...@@ -515,15 +515,15 @@ void Step4::diagramModeChanged(int buttonId) ...@@ -515,15 +515,15 @@ void Step4::diagramModeChanged(int buttonId)
m_dotOptions->setEnabled(buttonId==2); m_dotOptions->setEnabled(buttonId==2);
} }
void Step4::disableCallGraphs() //void Step4::disableCallGraphs()
{ //{
m_dotCall->setChecked(FALSE); // m_dotCall->setChecked(FALSE);
} //}
bool Step4::callGraphEnabled() const //bool Step4::callGraphEnabled() const
{ //{
return m_dotCall->isOn(); // return m_dotCall->isOn();
} //}
DiagramMode Step4::diagramMode() const DiagramMode Step4::diagramMode() const
{ {
...@@ -880,7 +880,7 @@ void MainWidget::launchWizard() ...@@ -880,7 +880,7 @@ void MainWidget::launchWizard()
{ {
wizard.setHtmlStyle(HS_CHM); wizard.setHtmlStyle(HS_CHM);
} }
else if (Config_getBool("GENERATE_TREEVIEW")) else if (Config_getEnum("GENERATE_TREEVIEW")!="NONE")
{ {
wizard.setHtmlStyle(HS_TreeView); wizard.setHtmlStyle(HS_TreeView);
} }
...@@ -1008,15 +1008,15 @@ void MainWidget::launchWizard() ...@@ -1008,15 +1008,15 @@ void MainWidget::launchWizard()
{ {
case HS_Plain: case HS_Plain:
Config_getBool("GENERATE_HTMLHELP")=FALSE; Config_getBool("GENERATE_HTMLHELP")=FALSE;
Config_getBool("GENERATE_TREEVIEW")=FALSE; Config_getEnum("GENERATE_TREEVIEW")="NONE";
break; break;
case HS_TreeView: case HS_TreeView:
Config_getBool("GENERATE_HTMLHELP")=FALSE; Config_getBool("GENERATE_HTMLHELP")=FALSE;
Config_getBool("GENERATE_TREEVIEW")=TRUE; Config_getEnum("GENERATE_TREEVIEW")="ALL";
break; break;
case HS_CHM: case HS_CHM:
Config_getBool("GENERATE_HTMLHELP")=TRUE; Config_getBool("GENERATE_HTMLHELP")=TRUE;
Config_getBool("GENERATE_TREEVIEW")=FALSE; Config_getEnum("GENERATE_TREEVIEW")="NONE";
break; break;
} }
} }
......
...@@ -126,8 +126,8 @@ class Step4 : public QWidget ...@@ -126,8 +126,8 @@ class Step4 : public QWidget
public: public:
Step4(QWidget *parent); Step4(QWidget *parent);
void disableCallGraphs(); //void disableCallGraphs();
bool callGraphEnabled() const; //bool callGraphEnabled() const;
DiagramMode diagramMode() const; DiagramMode diagramMode() const;
bool classDiagram() const; bool classDiagram() const;
...@@ -165,7 +165,7 @@ class Wizard : public QTabDialog ...@@ -165,7 +165,7 @@ class Wizard : public QTabDialog
public: public:
Wizard(QWidget *parent); Wizard(QWidget *parent);
void disableCallGraphs(); //void disableCallGraphs();
// step1 // step1
QString getProjectName() const { return m_step1->getProjectName(); } QString getProjectName() const { return m_step1->getProjectName(); }
......
...@@ -169,6 +169,8 @@ void InputString::addValue(const char *s) ...@@ -169,6 +169,8 @@ void InputString::addValue(const char *s)
void InputString::init() void InputString::init()
{ {
if (sm==StringFixed) if (sm==StringFixed)
{
if (m_values)
{ {
int *itemIndex = m_values->find(str); int *itemIndex = m_values->find(str);
if (itemIndex) if (itemIndex)
...@@ -180,6 +182,7 @@ void InputString::init() ...@@ -180,6 +182,7 @@ void InputString::init()
com->setCurrentItem(0); com->setCurrentItem(0);
} }
} }
}
else else
{ {
le->setText(str); le->setText(str);
......
...@@ -20,7 +20,7 @@ doxygen_version_minor=5 ...@@ -20,7 +20,7 @@ doxygen_version_minor=5
doxygen_version_revision=5 doxygen_version_revision=5
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package. #NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=NO doxygen_version_mmn=20080307
bin_dirs=`echo $PATH | sed -e "s/:/ /g"` bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
...@@ -36,6 +36,8 @@ f_english=NO ...@@ -36,6 +36,8 @@ f_english=NO
f_wizard=NO f_wizard=NO
f_app=NO f_app=NO
f_thread=NO f_thread=NO
f_flex=NO
f_bison=NO
f_langs=nl,se,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa f_langs=nl,se,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa
while test -n "$1"; do while test -n "$1"; do
...@@ -76,6 +78,12 @@ while test -n "$1"; do ...@@ -76,6 +78,12 @@ while test -n "$1"; do
--perl | -perl) --perl | -perl)
shift; f_perl=$1 shift; f_perl=$1
;; ;;
--flex | -flex)
shift; f_flex=$1
;;
--bison | -bison)
shift; f_bison=$1
;;
--install | -install) --install | -install)
shift; f_insttool=$1 shift; f_insttool=$1
;; ;;
...@@ -100,9 +108,10 @@ done ...@@ -100,9 +108,10 @@ done
if test "$f_help" = y; then if test "$f_help" = y; then
cat <<EOF cat <<EOF
Usage: $0 [--help] [--shared] [--static] [--release] [--debug] Usage: $0 [--help] [--shared] [--static] [--release] [--debug]
[--perl name] [--make name] [--dot name] [--platform target] [--perl name] [--flex name] [--bison name] [--make name]
[--prefix dir] [--docdir dir] [--install name] [--english-only] [--dot name] [--platform target] [--prefix dir] [--docdir dir]
[----enable-langs list] [--with-doxywizard] [--install name] [--english-only] [----enable-langs list]
[--with-doxywizard]
Options: Options:
...@@ -113,6 +122,10 @@ Options: ...@@ -113,6 +122,10 @@ Options:
[default: release] [default: release]
--perl name Use \`name' as the name of the perl interpreter --perl name Use \`name' as the name of the perl interpreter
[default: autodetect] [default: autodetect]
--flex name Use \`name' as the name of the GNU lexical scanner
[default: autodetect]
--bison name Use \`name' as the name of the GNU compiler generator
[default: autodetect]
--make name Use \`name' as the name of the GNU make tool --make name Use \`name' as the name of the GNU make tool
[default: autodetect] [default: autodetect]
--dot name Use \`name' as the name of the dot tool that --dot name Use \`name' as the name of the dot tool that
...@@ -299,7 +312,7 @@ fi ...@@ -299,7 +312,7 @@ fi
echo -n " Checking for GNU make tool... " echo -n " Checking for GNU make tool... "
if test "$f_make" = NO; then if test "$f_make" = NO; then
make_names="gmake make" make_names="gmake make"
make_dirs="/usr/bin /usr/local/bin /bin /sbin $bin_dirs" make_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin"
make_prog=NO make_prog=NO
for i in $make_names; do for i in $make_names; do
for j in $make_dirs; do for j in $make_dirs; do
...@@ -326,7 +339,7 @@ echo "using $f_make" ...@@ -326,7 +339,7 @@ echo "using $f_make"
echo -n " Checking for GNU install tool... " echo -n " Checking for GNU install tool... "
if test "$f_insttool" = NO; then if test "$f_insttool" = NO; then
install_names="ginstall install" install_names="ginstall install"
install_dirs="/usr/bin /usr/local/bin /bin /sbin /usr/ucb $bin_dirs" install_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin /usr/ucb"
install_prog=NO install_prog=NO
install_found=NO install_found=NO
for i in $install_names; do for i in $install_names; do
...@@ -362,7 +375,7 @@ echo "using $f_insttool"; ...@@ -362,7 +375,7 @@ echo "using $f_insttool";
echo -n " Checking for dot (part of GraphViz)... " echo -n " Checking for dot (part of GraphViz)... "
if test "$f_dot" = NO; then if test "$f_dot" = NO; then
dot_dirs="$bin_dirs" dot_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin"
dot_prog=NO dot_prog=NO
for j in $dot_dirs; do for j in $dot_dirs; do
if test -x "$j/dot"; then if test -x "$j/dot"; then
...@@ -384,7 +397,7 @@ fi ...@@ -384,7 +397,7 @@ fi
echo -n " Checking for perl... " echo -n " Checking for perl... "
if test "$f_perl" = NO; then if test "$f_perl" = NO; then
perl_names="perl perl5" perl_names="perl perl5"
perl_dirs="/usr/bin /usr/local/bin /bin /sbin $bin_dirs" perl_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin"
perl_prog=NO perl_prog=NO
perl_found=NO perl_found=NO
for i in $perl_names; do for i in $perl_names; do
...@@ -412,6 +425,53 @@ if test "$f_perl" = NO; then ...@@ -412,6 +425,53 @@ if test "$f_perl" = NO; then
fi fi
echo "using $f_perl"; echo "using $f_perl";
# - check for flex ------------------------------------------------------------
echo -n " Checking for flex... "
if test "$f_flex" = NO; then
flex_dirs="$bin_dirs /usr/bin /usr/local/bin /bin"
flex_prog=NO
flex_found=NO
for j in $flex_dirs; do
if test -x "$j/flex"; then
flex_found=YES
flex_prog="$j/flex"
break
fi
done
f_flex="$flex_prog"
fi
if test "$f_flex" = NO; then
echo "not found!";
exit 2
else
echo "using $f_flex"
fi
# - check for bison ------------------------------------------------------------
echo -n " Checking for bison... "
if test "$f_bison" = NO; then
bison_dirs="$bin_dirs /usr/bin /usr/local/bin /bin"
bison_prog=NO
bison_found=NO
for j in $bison_dirs; do
if test -x "$j/bison"; then
bison_found=YES
bison_prog="$j/bison"
break
fi
done
f_bison="$bison_prog"
fi
if test "$f_bison" = NO; then
echo "not found!";
exit 2
else
echo "using $f_bison"
fi
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
...@@ -514,10 +574,10 @@ if test "$f_platform" = "hpux-g++"; then ...@@ -514,10 +574,10 @@ if test "$f_platform" = "hpux-g++"; then
EOF EOF
fi fi
if test "$f_platform" = "macosx-uni-c++"; then if test "$f_platform" = "macosx-uni-c++"; then
if test -n "`ls /Developer/SDKs/MacOSX10.*.sdk`"; then if test -n "`ls /Developer/SDKs/MacOSX10.*.sdk 2>/dev/null`"; then
mac_sdk=MacOSX10.4u.sdk mac_sdk=MacOSX10.4u.sdk
fi fi
if test -n "`ls /Developer/SDKs/MacOSX10.5*.sdk`"; then if test -n "`ls /Developer/SDKs/MacOSX10.5*.sdk 2>/dev/null`"; then
mac_sdk=MacOSX10.5.sdk mac_sdk=MacOSX10.5.sdk
fi fi
if test -n $mac_sdk; then if test -n $mac_sdk; then
......
...@@ -1313,11 +1313,20 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn" ...@@ -1313,11 +1313,20 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
\anchor cfg_generate_treeview \anchor cfg_generate_treeview
<dt>\c GENERATE_TREEVIEW <dd> <dt>\c GENERATE_TREEVIEW <dd>
\addindex GENERATE_TREEVIEW \addindex GENERATE_TREEVIEW
If the \c GENERATE_TREEVIEW tag is set to YES, a side panel will be The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
generated containing a tree-like index structure (just like the one that structure should be generated to display hierarchical information.
If the tag value is set to FRAME, a side panel will be generated
containing a tree-like index structure (just like the one that
is generated for HTML Help). For this to work a browser that supports is generated for HTML Help). For this to work a browser that supports
JavaScript and frames is required (for instance Mozilla 1.0+, Netscape 6.0+ JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
or Internet explorer 5.0+ or Konqueror). Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
probably better off using the HTML help feature. Other possible values
for this tag are: \c HIERARCHIES, which will generate the Groups, Directories,
and Class Hiererachy pages using a tree view instead of an ordered list;
ALL, which combines the behavior of \c FRAME and \c HIERARCHIES, and \c NONE,
which disables this behavior completely. For backwards compatibility
with previous releases of Doxygen, the values YES and NO are equivalent
to FRAME and NONE respectively.
\anchor cfg_treeview_width \anchor cfg_treeview_width
<dt>\c TREEVIEW_WIDTH <dd> <dt>\c TREEVIEW_WIDTH <dd>
......
...@@ -27,7 +27,7 @@ Version: $(VERSION) ...@@ -27,7 +27,7 @@ Version: $(VERSION)
<h2>Introduction</h2> <h2>Introduction</h2>
Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL
(Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extend D. (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.
It can help you in three ways: It can help you in three ways:
<ol> <ol>
......
...@@ -302,9 +302,10 @@ ce_parse.cpp: ...@@ -302,9 +302,10 @@ ce_parse.cpp:
<b>Sun compiler problems</b> <b>Sun compiler problems</b>
It appears that doxygen doesn't work properly if it is compiled It appears that doxygen doesn't work properly if it is compiled
with Sun's C++ WorkShop Compiler. I cannot verify this myself as I do with Sun's C++ WorkShop 6 Compiler. I cannot verify this myself as I do
not have access to a Solaris machine with this compiler. With GNU compiler not have access to a Solaris machine with this compiler. With GNU compiler
it does work. it does work and installing Sun patch 111679-13 has also been reported
as a way to fix the problem.
when configuring with <code>--static</code> I got: when configuring with <code>--static</code> I got:
......
...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other ...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile). configuration file (with default name and known as Doxyfile).
Currently (version 1.5.4), 34 languages Currently (version 1.5.5), 34 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
...@@ -67,7 +67,7 @@ when the translator was updated. ...@@ -67,7 +67,7 @@ when the translator was updated.
<td>Brazilian Portuguese</td> <td>Brazilian Portuguese</td>
<td>Fabio "FJTC" Jun Takada Chino</td> <td>Fabio "FJTC" Jun Takada Chino</td>
<td>jun-chino at uol dot com dot br</td> <td>jun-chino at uol dot com dot br</td>
<td>1.5.4</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Catalan</td> <td>Catalan</td>
...@@ -79,13 +79,13 @@ when the translator was updated. ...@@ -79,13 +79,13 @@ when the translator was updated.
<td>Chinese</td> <td>Chinese</td>
<td>Li Daobing<br>Wei Liu</td> <td>Li Daobing<br>Wei Liu</td>
<td>lidaobing at gmail dot com<br>liuwei at asiainfo dot com</td> <td>lidaobing at gmail dot com<br>liuwei at asiainfo dot com</td>
<td>1.5.4</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Chinese Traditional</td> <td>Chinese Traditional</td>
<td>Daniel YC Lin<br>Gary Lee</td> <td>Daniel YC Lin<br>Gary Lee</td>
<td>dlin at taifex dot com dot tw<br>garywlee at gmail dot com</td> <td>dlin.tw at gmail dot com<br>garywlee at gmail dot com</td>
<td>1.4.6</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Croatian</td> <td>Croatian</td>
...@@ -133,7 +133,7 @@ when the translator was updated. ...@@ -133,7 +133,7 @@ when the translator was updated.
<td>German</td> <td>German</td>
<td>Jens Seidel</td> <td>Jens Seidel</td>
<td>jensseidel at users dot sf dot net</td> <td>jensseidel at users dot sf dot net</td>
<td>1.5.4</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Greek</td> <td>Greek</td>
...@@ -204,8 +204,8 @@ when the translator was updated. ...@@ -204,8 +204,8 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Persian</td> <td>Persian</td>
<td>Ali Nadalizadeh</td> <td>Ali Nadalizadeh</td>
<td>nadalisoft at yahoo dot com</td> <td>nadalizadeh at gmail dot com</td>
<td>1.4.6</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Polish</td> <td>Polish</td>
...@@ -253,7 +253,7 @@ when the translator was updated. ...@@ -253,7 +253,7 @@ when the translator was updated.
<td>Spanish</td> <td>Spanish</td>
<td>Bartomeu<br>Francisco Oltra Thennet</td> <td>Bartomeu<br>Francisco Oltra Thennet</td>
<td>bartomeu at loteria3cornella dot com<br>foltra at puc dot cl</td> <td>bartomeu at loteria3cornella dot com<br>foltra at puc dot cl</td>
<td>1.5.4</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Swedish</td> <td>Swedish</td>
...@@ -286,15 +286,15 @@ when the translator was updated. ...@@ -286,15 +286,15 @@ when the translator was updated.
\hline \hline
Arabic & Moaz Reyad & {\tt\tiny moazreyad@yahoo.com} & 1.4.6 \\ Arabic & Moaz Reyad & {\tt\tiny moazreyad@yahoo.com} & 1.4.6 \\
\hline \hline
Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} & 1.5.4 \\ Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} & up-to-date \\
\hline \hline
Catalan & Maximiliano Pin & {\tt\tiny mcpin@emtesistemas.com} & 1.5.4 \\ Catalan & Maximiliano Pin & {\tt\tiny mcpin@emtesistemas.com} & 1.5.4 \\
~ & Albert Mora & {\tt\tiny amora@iua.upf.es} & ~ \\ ~ & Albert Mora & {\tt\tiny amora@iua.upf.es} & ~ \\
\hline \hline
Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} & 1.5.4 \\ Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} & up-to-date \\
~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\ ~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\
\hline \hline
Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin@taifex.com.tw} & 1.4.6 \\ Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin.tw@gmail.com} & up-to-date \\
~ & Gary Lee & {\tt\tiny garywlee@gmail.com} & ~ \\ ~ & Gary Lee & {\tt\tiny garywlee@gmail.com} & ~ \\
\hline \hline
Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & up-to-date \\ Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & up-to-date \\
...@@ -311,7 +311,7 @@ when the translator was updated. ...@@ -311,7 +311,7 @@ when the translator was updated.
\hline \hline
French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.5.4 \\ French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.5.4 \\
\hline \hline
German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & 1.5.4 \\ German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & up-to-date \\
\hline \hline
Greek & Paul Gessos & {\tt\tiny nickreserved@yahoo.com} & 1.5.4 \\ Greek & Paul Gessos & {\tt\tiny nickreserved@yahoo.com} & 1.5.4 \\
\hline \hline
...@@ -343,7 +343,7 @@ when the translator was updated. ...@@ -343,7 +343,7 @@ when the translator was updated.
\hline \hline
Norwegian & Lars Erik Jordet & {\tt\tiny lejordet@gmail.com} & 1.4.6 \\ Norwegian & Lars Erik Jordet & {\tt\tiny lejordet@gmail.com} & 1.4.6 \\
\hline \hline
Persian & Ali Nadalizadeh & {\tt\tiny nadalisoft@yahoo.com} & 1.4.6 \\ Persian & Ali Nadalizadeh & {\tt\tiny nadalizadeh@gmail.com} & up-to-date \\
\hline \hline
Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.4.6 \\ Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.4.6 \\
~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\ ~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\
...@@ -360,7 +360,7 @@ when the translator was updated. ...@@ -360,7 +360,7 @@ when the translator was updated.
\hline \hline
Slovene & Matja\v{z} Ostrover\v{s}nik & {\tt\tiny matjaz.ostroversnik@ostri.org} & 1.4.6 \\ Slovene & Matja\v{z} Ostrover\v{s}nik & {\tt\tiny matjaz.ostroversnik@ostri.org} & 1.4.6 \\
\hline \hline
Spanish & Bartomeu & {\tt\tiny bartomeu@loteria3cornella.com} & 1.5.4 \\ Spanish & Bartomeu & {\tt\tiny bartomeu@loteria3cornella.com} & up-to-date \\
~ & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & ~ \\ ~ & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & ~ \\
\hline \hline
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.4.6 \\ Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.4.6 \\
......
This diff is collapsed.
...@@ -55,8 +55,7 @@ ...@@ -55,8 +55,7 @@
#elif !defined(_OS_MAC_) #elif !defined(_OS_MAC_)
# include <sys/types.h> # include <sys/types.h>
# include <sys/stat.h> # include <sys/stat.h>
#elif defined(_OS_MAC_) \ #elif defined(_OS_MAC_)
&& (MAC_OS_X_VERSION_MAX_ALLOWED==MAC_OS_X_VERSION_10_5)
# include <sys/types.h> # include <sys/types.h>
# include <sys/stat.h> # include <sys/stat.h>
# define _OS_UNIX_ # define _OS_UNIX_
......
...@@ -1326,7 +1326,7 @@ void Config::check() ...@@ -1326,7 +1326,7 @@ void Config::check()
bool b2 = Config_getBool("INHERIT_DOCS"); bool b2 = Config_getBool("INHERIT_DOCS");
bool b3 = Config_getBool("HIDE_SCOPE_NAMES"); bool b3 = Config_getBool("HIDE_SCOPE_NAMES");
bool b4 = Config_getBool("EXTRACT_PRIVATE"); bool b4 = Config_getBool("EXTRACT_PRIVATE");
char *s1,*s2,*s3,*s4; const char *s1,*s2,*s3,*s4;
if (b1) s1=" INLINDE_INHERITED_MEMB = NO (was YES)\n"; else s1=""; if (b1) s1=" INLINDE_INHERITED_MEMB = NO (was YES)\n"; else s1="";
if (b2) s2=" INHERIT_DOCS = NO (was YES)\n"; else s2=""; if (b2) s2=" INHERIT_DOCS = NO (was YES)\n"; else s2="";
if (!b3) s3=" HIDE_SCOPE_NAMES = YES (was NO)\n"; else s3=""; if (!b3) s3=" HIDE_SCOPE_NAMES = YES (was NO)\n"; else s3="";
...@@ -2415,16 +2415,28 @@ void Config::create() ...@@ -2415,16 +2415,28 @@ void Config::create()
1,20,4 1,20,4
); );
ci->addDependency("GENERATE_HTML"); ci->addDependency("GENERATE_HTML");
cb = addBool( ce = addEnum(
"GENERATE_TREEVIEW", "GENERATE_TREEVIEW",
"If the GENERATE_TREEVIEW tag is set to YES, a side panel will be\n" "The GENERATE_TREEVIEW tag is used to specify whether a tree-like index\n"
"generated containing a tree-like index structure (just like the one that \n" "structure should be generated to display hierarchical information.\n"
"If the tag value is set to FRAME, a side panel will be generated\n"
"containing a tree-like index structure (just like the one that \n"
"is generated for HTML Help). For this to work a browser that supports \n" "is generated for HTML Help). For this to work a browser that supports \n"
"JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, \n" "JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, \n"
"Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are \n" "Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are \n"
"probably better off using the HTML help feature. \n", "probably better off using the HTML help feature. Other possible values \n"
FALSE "for this tag are: HIERARCHIES, which will generate the Groups, Directories,\n"
); "and Class Hiererachy pages using a tree view instead of an ordered list;\n"
"ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which\n"
"disables this behavior completely. For backwards compatibility with previous\n"
"releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE\n"
"respectively.\n",
"NONE"
);
ce->addValue("NONE");
ce->addValue("FRAME");
ce->addValue("HIERARCHIES");
ce->addValue("ALL");
cb->addDependency("GENERATE_HTML"); cb->addDependency("GENERATE_HTML");
ci = addInt( ci = addInt(
"TREEVIEW_WIDTH", "TREEVIEW_WIDTH",
......
...@@ -320,6 +320,7 @@ static void checkArgumentName(const QString &name,bool isParam) ...@@ -320,6 +320,7 @@ static void checkArgumentName(const QString &name,bool isParam)
LockingPtr<ArgumentList> al=g_memberDef->isDocsForDefinition() ? LockingPtr<ArgumentList> al=g_memberDef->isDocsForDefinition() ?
g_memberDef->argumentList() : g_memberDef->argumentList() :
g_memberDef->declArgumentList(); g_memberDef->declArgumentList();
//printf("isDocsForDefinition()=%d\n",g_memberDef->isDocsForDefinition());
if (al==0) return; // no argument list if (al==0) return; // no argument list
static QRegExp re("[a-zA-Z0-9_]+\\.*"); static QRegExp re("[a-zA-Z0-9_]+\\.*");
......
...@@ -129,8 +129,7 @@ void DocSets::initialize() ...@@ -129,8 +129,7 @@ void DocSets::initialize()
err("Could not open file %s for writing\n",notes.data()); err("Could not open file %s for writing\n",notes.data());
exit(1); exit(1);
} }
QCString indexName="index"; QCString indexName=usingTreeIndex()?"main":"index";
if (Config_getBool("GENERATE_TREEVIEW")) indexName="main";
m_nts.setDevice(m_nf); m_nts.setDevice(m_nf);
m_nts.setEncoding(QTextStream::UnicodeUTF8); m_nts.setEncoding(QTextStream::UnicodeUTF8);
m_nts << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl; m_nts << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl;
......
...@@ -326,7 +326,7 @@ OPMASK ({BLANK}*{OPNORM}{FUNCARG}) ...@@ -326,7 +326,7 @@ OPMASK ({BLANK}*{OPNORM}{FUNCARG})
OPMASKOPT ({BLANK}*{OPNORM}{FUNCARG}?)|({OPCAST}{FUNCARG}) OPMASKOPT ({BLANK}*{OPNORM}{FUNCARG}?)|({OPCAST}{FUNCARG})
LNKWORD1 ("::"|"#")?{SCOPEMASK} LNKWORD1 ("::"|"#")?{SCOPEMASK}
CVSPEC {BLANK}*("const"|"volatile") CVSPEC {BLANK}*("const"|"volatile")
LNKWORD2 ({SCOPEPRE}*"operator"{OPMASK})|(("::"|"#"){SCOPEPRE}*"operator"{OPMASKOPT}) LNKWORD2 ({SCOPEPRE}*"operator"{OPMASK})|({SCOPEPRE}"operator"{OPMASKOPT})|(("::"|"#"){SCOPEPRE}*"operator"{OPMASKOPT})
LNKWORD3 ([0-9a-z_A-Z\-]+("/"|"\\"))*[0-9a-z_A-Z\-]+("."[0-9a-z_A-Z]+)+ LNKWORD3 ([0-9a-z_A-Z\-]+("/"|"\\"))*[0-9a-z_A-Z\-]+("."[0-9a-z_A-Z]+)+
CHARWORD [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,.] CHARWORD [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,.]
CHARWORDQ [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,."] CHARWORDQ [^ \t\n\r\\@<>()\[\]:;\?{}&%$#,."]
......
...@@ -241,7 +241,6 @@ struct STLInfo ...@@ -241,7 +241,6 @@ struct STLInfo
static STLInfo g_stlinfo[] = static STLInfo g_stlinfo[] =
{ {
// className baseClass1 baseClass2 templType1 templName1 templType2 templName2 virtInheritance // iterators // className baseClass1 baseClass2 templType1 templName1 templType2 templName2 virtInheritance // iterators
#if 0
{ "allocator", 0, 0, "T", "elements", 0, 0, FALSE, FALSE }, { "allocator", 0, 0, "T", "elements", 0, 0, FALSE, FALSE },
{ "auto_ptr", 0, 0, "T", "ptr", 0, 0, FALSE, FALSE }, { "auto_ptr", 0, 0, "T", "ptr", 0, 0, FALSE, FALSE },
{ "ios_base", 0, 0, 0, 0, 0, 0, FALSE, FALSE }, { "ios_base", 0, 0, 0, 0, 0, 0, FALSE, FALSE },
...@@ -284,9 +283,7 @@ static STLInfo g_stlinfo[] = ...@@ -284,9 +283,7 @@ static STLInfo g_stlinfo[] =
{ "multimap", 0, 0, "K", "keys", "T", "elements", FALSE, TRUE }, { "multimap", 0, 0, "K", "keys", "T", "elements", FALSE, TRUE },
{ "set", 0, 0, "K", "keys", 0, 0, FALSE, TRUE }, { "set", 0, 0, "K", "keys", 0, 0, FALSE, TRUE },
{ "multiset", 0, 0, "K", "keys", 0, 0, FALSE, TRUE }, { "multiset", 0, 0, "K", "keys", 0, 0, FALSE, TRUE },
#endif
{ "vector", 0, 0, "T", "elements", 0, 0, FALSE, TRUE }, { "vector", 0, 0, "T", "elements", 0, 0, FALSE, TRUE },
#if 0
{ "queue", 0, 0, "T", "elements", 0, 0, FALSE, FALSE }, { "queue", 0, 0, "T", "elements", 0, 0, FALSE, FALSE },
{ "priority_queue", 0, 0, "T", "elements", 0, 0, FALSE, FALSE }, { "priority_queue", 0, 0, "T", "elements", 0, 0, FALSE, FALSE },
{ "stack", 0, 0, "T", "elements", 0, 0, FALSE, FALSE }, { "stack", 0, 0, "T", "elements", 0, 0, FALSE, FALSE },
...@@ -306,7 +303,6 @@ static STLInfo g_stlinfo[] = ...@@ -306,7 +303,6 @@ static STLInfo g_stlinfo[] =
{ "range_error", "runtime_error", 0, 0, 0, 0, 0, FALSE, FALSE }, { "range_error", "runtime_error", 0, 0, 0, 0, 0, FALSE, FALSE },
{ "overflow_error", "runtime_error", 0, 0, 0, 0, 0, FALSE, FALSE }, { "overflow_error", "runtime_error", 0, 0, 0, 0, 0, FALSE, FALSE },
{ "underflow_error", "runtime_error", 0, 0, 0, 0, 0, FALSE, FALSE }, { "underflow_error", "runtime_error", 0, 0, 0, 0, 0, FALSE, FALSE },
#endif
{ 0, 0, 0, 0, 0, 0, 0, FALSE, FALSE } { 0, 0, 0, 0, 0, 0, 0, FALSE, FALSE }
}; };
...@@ -2237,7 +2233,7 @@ static bool isVarWithConstructor(EntryNav *rootNav) ...@@ -2237,7 +2233,7 @@ static bool isVarWithConstructor(EntryNav *rootNav)
goto done; goto done;
} }
else if ((fd = rootNav->fileDef()) && else if ((fd = rootNav->fileDef()) &&
fd->name().right(2)==".c" (fd->name().right(2)==".c" || fd->name().right(2)==".h")
) )
{ // inside a .c file { // inside a .c file
result=FALSE; result=FALSE;
...@@ -2333,9 +2329,9 @@ static bool isVarWithConstructor(EntryNav *rootNav) ...@@ -2333,9 +2329,9 @@ static bool isVarWithConstructor(EntryNav *rootNav)
} }
done: done:
rootNav->releaseEntry(); //printf("isVarWithConstructor(%s,%s)=%d\n",rootNav->parent()->name().data(),
//printf("isVarWithConstructor(%s,%s)=%d\n",root->parent->name.data(),
// root->type.data(),result); // root->type.data(),result);
rootNav->releaseEntry();
return result; return result;
} }
...@@ -6828,14 +6824,15 @@ static void computeMemberRelations() ...@@ -6828,14 +6824,15 @@ static void computeMemberRelations()
{ {
MemberNameIterator mdi(*mn); MemberNameIterator mdi(*mn);
MemberDef *md; MemberDef *md;
for ( ; (md=mdi.current()) ; ++mdi ) // for each member with a specific arg list for ( ; (md=mdi.current()) ; ++mdi ) // for each member with a specific name
{ {
MemberNameIterator bmdi(*mn); MemberDef *bmd = mn->first(); // for each other member with the same name
MemberDef *bmd; while (bmd)
for ( ; (bmd=bmdi.current()) ; ++bmdi ) // for each other member with that signature
{ {
ClassDef *bmcd = bmd->getClassDef();
ClassDef *mcd = md->getClassDef(); ClassDef *mcd = md->getClassDef();
if (mcd && mcd->baseClasses())
{
ClassDef *bmcd = bmd->getClassDef();
//printf("Check relation between `%s'::`%s' (%p) and `%s'::`%s' (%p)\n", //printf("Check relation between `%s'::`%s' (%p) and `%s'::`%s' (%p)\n",
// mcd->name().data(),md->name().data(),md, // mcd->name().data(),md->name().data(),md,
// bmcd->name().data(),bmd->name().data(),bmd // bmcd->name().data(),bmd->name().data(),bmd
...@@ -6876,6 +6873,8 @@ static void computeMemberRelations() ...@@ -6876,6 +6873,8 @@ static void computeMemberRelations()
} }
} }
} }
bmd = mn->next();
}
} }
} }
} }
...@@ -7671,7 +7670,7 @@ static void buildPageList(EntryNav *rootNav) ...@@ -7671,7 +7670,7 @@ static void buildPageList(EntryNav *rootNav)
QCString title=root->args.stripWhiteSpace(); QCString title=root->args.stripWhiteSpace();
if (title.isEmpty()) title=theTranslator->trMainPage(); if (title.isEmpty()) title=theTranslator->trMainPage();
addRefItem(root->sli,"page", addRefItem(root->sli,"page",
Config_getBool("GENERATE_TREEVIEW")?"main":"index", usingTreeIndex()?"main":"index",
title title
); );
...@@ -7691,7 +7690,7 @@ static void findMainPage(EntryNav *rootNav) ...@@ -7691,7 +7690,7 @@ static void findMainPage(EntryNav *rootNav)
{ {
//printf("Found main page! \n======\n%s\n=======\n",root->doc.data()); //printf("Found main page! \n======\n%s\n=======\n",root->doc.data());
QCString title=root->args.stripWhiteSpace(); QCString title=root->args.stripWhiteSpace();
QCString indexName=Config_getBool("GENERATE_TREEVIEW")?"main":"index"; QCString indexName=usingTreeIndex()?"main":"index";
Doxygen::mainPage = new PageDef(root->fileName,root->startLine, Doxygen::mainPage = new PageDef(root->fileName,root->startLine,
indexName, root->brief+root->doc,title); indexName, root->brief+root->doc,title);
//setFileNameForSections(root->anchors,"index",Doxygen::mainPage); //setFileNameForSections(root->anchors,"index",Doxygen::mainPage);
...@@ -9963,7 +9962,7 @@ void generateOutput() ...@@ -9963,7 +9962,7 @@ void generateOutput()
outputList->add(new HtmlGenerator); outputList->add(new HtmlGenerator);
HtmlGenerator::init(); HtmlGenerator::init();
if (Config_getBool("GENERATE_HTMLHELP")) Doxygen::indexList.addIndex(new HtmlHelp); if (Config_getBool("GENERATE_HTMLHELP")) Doxygen::indexList.addIndex(new HtmlHelp);
if (Config_getBool("GENERATE_TREEVIEW")) Doxygen::indexList.addIndex(new FTVHelp); if (usingTreeIndex()) Doxygen::indexList.addIndex(new FTVHelp);
if (Config_getBool("GENERATE_DOCSET")) Doxygen::indexList.addIndex(new DocSets); if (Config_getBool("GENERATE_DOCSET")) Doxygen::indexList.addIndex(new DocSets);
Doxygen::indexList.initialize(); Doxygen::indexList.initialize();
if (Config_getBool("HTML_DYNAMIC_SECTIONS")) HtmlGenerator::generateSectionImages(); if (Config_getBool("HTML_DYNAMIC_SECTIONS")) HtmlGenerator::generateSectionImages();
......
...@@ -407,6 +407,7 @@ ...@@ -407,6 +407,7 @@
" font-family: sans-serif;\n" " font-family: sans-serif;\n"
" margin:0.5em;\n" " margin:0.5em;\n"
"}\n" "}\n"
"/* these are for tree view when used as main index */\n"
".directory { \n" ".directory { \n"
" font-size: 9pt; \n" " font-size: 9pt; \n"
" font-weight: bold; \n" " font-weight: bold; \n"
...@@ -430,4 +431,28 @@ ...@@ -430,4 +431,28 @@
".directory img { \n" ".directory img { \n"
" vertical-align: -30%; \n" " vertical-align: -30%; \n"
"}\n" "}\n"
"/* these are for tree view when not used as main index */\n"
".directory-alt { \n"
" font-size: 100%; \n"
" font-weight: bold; \n"
"}\n"
".directory-alt h3 { \n"
" margin: 0px; \n"
" margin-top: 1em; \n"
" font-size: 11pt; \n"
"}\n"
".directory-alt > h3 { \n"
" margin-top: 0; \n"
"}\n"
".directory-alt p { \n"
" margin: 0px; \n"
" white-space: nowrap; \n"
"}\n"
".directory-alt div { \n"
" display: none; \n"
" margin: 0px; \n"
"}\n"
".directory-alt img { \n"
" vertical-align: -30%; \n"
"}\n"
"\n" "\n"
...@@ -325,7 +325,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC} ...@@ -325,7 +325,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
yy_push_state(InterfaceBody); yy_push_state(InterfaceBody);
startScope(last_entry); startScope(last_entry);
} }
<InterfaceBody>"end"({BS_}"interface")?.* { <InterfaceBody>^{BS}"end"({BS_}"interface")? {
if (!endScope(current_root)) if (!endScope(current_root))
yyterminate(); yyterminate();
yy_pop_state(); yy_pop_state();
...@@ -349,7 +349,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC} ...@@ -349,7 +349,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
BEGIN(Module); BEGIN(Module);
defaultProtection = Public; defaultProtection = Public;
} }
<Start,ModuleBody>"end"({BS_}(module|program))?.* { // end module <Start,ModuleBody>^{BS}"end"({BS_}(module|program))?{BS} { // end module
resolveModuleProcedures(moduleProcedures, current_root); resolveModuleProcedures(moduleProcedures, current_root);
if (!endScope(current_root)) if (!endScope(current_root))
yyterminate(); yyterminate();
...@@ -415,7 +415,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC} ...@@ -415,7 +415,7 @@ ATTR_STMT {ATTR_SPEC}|DIMENSION|{ACCESS_SPEC}
/*------- module/global/typedef variable ---------------------------------------------------*/ /*------- module/global/typedef variable ---------------------------------------------------*/
<SubprogBody>"end"({BS_}{SUBPROG})?.* { <SubprogBody>^{BS}"end"({BS_}{SUBPROG})?{BS} {
//cout << "1e=========> got end subprog: " << yytext << endl; //cout << "1e=========> got end subprog: " << yytext << endl;
/* args is used for parameters in list of functions, argList for /* args is used for parameters in list of functions, argList for
......
...@@ -326,20 +326,17 @@ struct FTVNode ...@@ -326,20 +326,17 @@ struct FTVNode
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
FTVHelp *FTVHelp::m_theInstance = 0; /*! Constructs an ftv help object.
/*! Construm_cts an ftv help object.
* The object has to be \link initialize() initialized\endlink before it can * The object has to be \link initialize() initialized\endlink before it can
* be used. * be used.
*/ */
FTVHelp::FTVHelp() FTVHelp::FTVHelp(bool TLI)
{ {
/* initial depth */ /* initial depth */
//m_dc = 0;
//m_cf = 0;
m_indentNodes = new QList<FTVNode>[MAX_INDENT]; m_indentNodes = new QList<FTVNode>[MAX_INDENT];
m_indentNodes[0].setAutoDelete(TRUE); m_indentNodes[0].setAutoDelete(TRUE);
m_indent=0; m_indent=0;
m_topLevelIndex = TLI;
} }
FTVHelp::~FTVHelp() FTVHelp::~FTVHelp()
...@@ -347,16 +344,6 @@ FTVHelp::~FTVHelp() ...@@ -347,16 +344,6 @@ FTVHelp::~FTVHelp()
delete[] m_indentNodes; delete[] m_indentNodes;
} }
#if 0
/*! return a reference to the one and only instance of this class.
*/
FTVHelp *FTVHelp::getInstance()
{
if (m_theInstance==0) m_theInstance = new FTVHelp;
return m_theInstance;
}
#endif
/*! This will create a folder tree view table of contents file (tree.js). /*! This will create a folder tree view table of contents file (tree.js).
* \sa finalize() * \sa finalize()
*/ */
...@@ -371,9 +358,6 @@ void FTVHelp::initialize() ...@@ -371,9 +358,6 @@ void FTVHelp::initialize()
void FTVHelp::finalize() void FTVHelp::finalize()
{ {
generateTreeView(); generateTreeView();
generateTreeViewImages();
delete m_theInstance;
m_theInstance=0;
} }
/*! Increase the level of the contents hierarchy. /*! Increase the level of the contents hierarchy.
...@@ -382,10 +366,8 @@ void FTVHelp::finalize() ...@@ -382,10 +366,8 @@ void FTVHelp::finalize()
*/ */
void FTVHelp::incContentsDepth() void FTVHelp::incContentsDepth()
{ {
//int i; for (i=0;i<m_dc+1;i++) m_cts << " ";
m_indent++; m_indent++;
ASSERT(m_indent<MAX_INDENT); ASSERT(m_indent<MAX_INDENT);
//return m_indent;
} }
/*! Decrease the level of the contents hierarchy. /*! Decrease the level of the contents hierarchy.
...@@ -394,8 +376,6 @@ void FTVHelp::incContentsDepth() ...@@ -394,8 +376,6 @@ void FTVHelp::incContentsDepth()
*/ */
void FTVHelp::decContentsDepth() void FTVHelp::decContentsDepth()
{ {
//int i; for (i=0;i<m_dc;i++) m_cts << " ";
ASSERT(m_indent>0); ASSERT(m_indent>0);
if (m_indent>0) if (m_indent>0)
{ {
...@@ -408,7 +388,6 @@ void FTVHelp::decContentsDepth() ...@@ -408,7 +388,6 @@ void FTVHelp::decContentsDepth()
parent->children.append(children->take(0)); parent->children.append(children->take(0));
} }
} }
//return m_indent;
} }
/*! Add a list item to the contents file. /*! Add a list item to the contents file.
...@@ -516,7 +495,10 @@ void FTVHelp::generateLink(QTextStream &t,FTVNode *n) ...@@ -516,7 +495,10 @@ void FTVHelp::generateLink(QTextStream &t,FTVNode *n)
} }
t << n->file << Doxygen::htmlFileExtension; t << n->file << Doxygen::htmlFileExtension;
if (!n->anchor.isEmpty()) t << "#" << n->anchor; if (!n->anchor.isEmpty()) t << "#" << n->anchor;
if (m_topLevelIndex)
t << "\" target=\"basefrm\">"; t << "\" target=\"basefrm\">";
else
t << "\" target=\"_self\">";
t << n->name; t << n->name;
t << "</a>"; t << "</a>";
if (!n->ref.isEmpty()) if (!n->ref.isEmpty())
...@@ -580,11 +562,17 @@ void FTVHelp::generateTreeViewImages() ...@@ -580,11 +562,17 @@ void FTVHelp::generateTreeViewImages()
} }
} }
void FTVHelp::generateTreeView() void FTVHelp::generateTreeView(QString* OutString)
{ {
// Generate alternative index.html as a frame QCString fileName;
QCString fileName=Config_getString("HTML_OUTPUT")+"/index"+Doxygen::htmlFileExtension;
QFile f; QFile f;
generateTreeViewImages();
// If top level index, generate alternative index.html as a frame
if (m_topLevelIndex)
{
fileName=Config_getString("HTML_OUTPUT")+"/index"+Doxygen::htmlFileExtension;
f.setName(fileName); f.setName(fileName);
if (!f.open(IO_WriteOnly)) if (!f.open(IO_WriteOnly))
{ {
...@@ -620,19 +608,16 @@ void FTVHelp::generateTreeView() ...@@ -620,19 +608,16 @@ void FTVHelp::generateTreeView()
t << "</html>" << endl; t << "</html>" << endl;
f.close(); f.close();
} }
// Generate tree view frame
fileName=Config_getString("HTML_OUTPUT")+"/tree"+Doxygen::htmlFileExtension;
f.setName(fileName);
if (!f.open(IO_WriteOnly))
{
err("Cannot open file %s for writing!\n",fileName.data());
return;
} }
else
{ // Generate tree view
QTextStream t(&f); if (!OutString)
OutString = new QString;
QTextOStream t(OutString);
t.setEncoding(QTextStream::UnicodeUTF8); t.setEncoding(QTextStream::UnicodeUTF8);
if (m_topLevelIndex)
{
t << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n"; t << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
t << " <head>\n"; t << " <head>\n";
t << " <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\" />\n"; t << " <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\" />\n";
...@@ -655,6 +640,7 @@ void FTVHelp::generateTreeView() ...@@ -655,6 +640,7 @@ void FTVHelp::generateTreeView()
} }
t << "\">" << endl; t << "\">" << endl;
t << " <title>TreeView</title>\n"; t << " <title>TreeView</title>\n";
}
t << " <script type=\"text/javascript\">\n"; t << " <script type=\"text/javascript\">\n";
t << " <!-- // Hide script from old browsers\n"; t << " <!-- // Hide script from old browsers\n";
t << " \n"; t << " \n";
...@@ -713,6 +699,8 @@ void FTVHelp::generateTreeView() ...@@ -713,6 +699,8 @@ void FTVHelp::generateTreeView()
t << "\n"; t << "\n";
t << " // End script hiding --> \n"; t << " // End script hiding --> \n";
t << " </script>\n"; t << " </script>\n";
if (m_topLevelIndex)
{
t << " </head>\n"; t << " </head>\n";
t << "\n"; t << "\n";
t << " <body class=\"ftvtree\">\n"; t << " <body class=\"ftvtree\">\n";
...@@ -728,16 +716,40 @@ void FTVHelp::generateTreeView() ...@@ -728,16 +716,40 @@ void FTVHelp::generateTreeView()
t << projName; t << projName;
} }
t << "</h3>\n"; t << "</h3>\n";
}
else
{
t << " <div class=\"directory-alt\">\n";
t << " <br>\n";
}
t << " <div style=\"display: block;\">\n"; t << " <div style=\"display: block;\">\n";
generateTree(t,m_indentNodes[0],0); generateTree(t,m_indentNodes[0],0);
t << " </div>\n"; t << " </div>\n";
t << " </div>\n"; t << " </div>\n";
if (!m_topLevelIndex)
{
t << " </body>\n"; t << " </body>\n";
t << "</html>\n"; t << "</html>\n";
} }
generateTreeViewImages();
if (m_topLevelIndex)
{
fileName=Config_getString("HTML_OUTPUT")+"/tree"+Doxygen::htmlFileExtension;
f.setName(fileName);
if (!f.open(IO_WriteOnly))
{
err("Cannot open file %s for writing!\n",fileName.data());
return;
}
else
{
QTextStream t(&f);
t << *OutString << endl;
f.close();
}
}
} }
/******************************************************************************
*
* Copyright (C) 1997-2008 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.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
/****************************************************************************** /******************************************************************************
* ftvhelp.h,v 1.0 2000/09/06 16:09:00 * ftvhelp.h,v 1.0 2000/09/06 16:09:00
* *
* Kenney Wong <kwong@ea.com> * Kenney Wong <kwong@ea.com>
* *
* Folder Tree View for offline help on browsers that do not support HTML Help. * Folder Tree View for offline help on browsers that do not support HTML Help.
* Uses the FTV structure from:
* http://www.geocities.com/Paris/LeftBank/2178/ftexample.html
*/ */
#ifndef FTVHELP_H #ifndef FTVHELP_H
...@@ -58,8 +71,8 @@ extern FTVImageInfo image_info[]; ...@@ -58,8 +71,8 @@ extern FTVImageInfo image_info[];
class FTVHelp : public IndexIntf class FTVHelp : public IndexIntf
{ {
public: public:
FTVHelp(); FTVHelp(bool topLevelIndex = true);
//static FTVHelp *getInstance(); ~FTVHelp();
void initialize(); void initialize();
void finalize(); void finalize();
void incContentsDepth(); void incContentsDepth();
...@@ -73,17 +86,15 @@ class FTVHelp : public IndexIntf ...@@ -73,17 +86,15 @@ class FTVHelp : public IndexIntf
const char *, const char *, const char *, const char *,
const char *, const MemberDef *) {} const char *, const MemberDef *) {}
void addIndexFile(const char *) {} void addIndexFile(const char *) {}
void generateTreeView(QString* = NULL);
private: private:
void generateTreeViewImages(); void generateTreeViewImages();
void generateTreeView();
void generateTree(QTextStream &t,const QList<FTVNode> &nl,int level); void generateTree(QTextStream &t,const QList<FTVNode> &nl,int level);
void generateIndent(QTextStream &t,FTVNode *n,int level); void generateIndent(QTextStream &t,FTVNode *n,int level);
void generateLink(QTextStream &t,FTVNode *n); void generateLink(QTextStream &t,FTVNode *n);
~FTVHelp();
static FTVHelp *m_theInstance;
QList<FTVNode> *m_indentNodes; QList<FTVNode> *m_indentNodes;
int m_indent; int m_indent;
bool m_topLevelIndex;
}; };
......
...@@ -39,6 +39,7 @@ class PageSDict; ...@@ -39,6 +39,7 @@ class PageSDict;
class PageDef; class PageDef;
class DirDef; class DirDef;
class DirList; class DirList;
class FTVHelp;
class GroupDef : public Definition class GroupDef : public Definition
{ {
...@@ -86,7 +87,7 @@ class GroupDef : public Definition ...@@ -86,7 +87,7 @@ class GroupDef : public Definition
bool visited; // number of times accessed for output - KPW bool visited; // number of times accessed for output - KPW
friend void writeGroupTreeNode(OutputList&, GroupDef*, int); friend void writeGroupTreeNode(OutputList&, GroupDef*, int, FTVHelp*);
// make accessible for writing tree view of group in index.cpp - KPW // make accessible for writing tree view of group in index.cpp - KPW
void setGroupScope(Definition *d) { groupScope = d; } void setGroupScope(Definition *d) { groupScope = d; }
......
...@@ -978,7 +978,7 @@ void HtmlGenerator::endTextLink() ...@@ -978,7 +978,7 @@ void HtmlGenerator::endTextLink()
void HtmlGenerator::startHtmlLink(const char *url) void HtmlGenerator::startHtmlLink(const char *url)
{ {
t << "<a "; t << "<a ";
if (Config_getBool("GENERATE_TREEVIEW")) t << "target=\"top\" "; if (usingTreeIndex()) t << "target=\"top\" ";
t << "href=\""; t << "href=\"";
if (url) t << url; if (url) t << url;
t << "\">"; t << "\">";
...@@ -1618,17 +1618,17 @@ void HtmlGenerator::writeNonBreakableSpace(int n) ...@@ -1618,17 +1618,17 @@ void HtmlGenerator::writeNonBreakableSpace(int n)
} }
} }
void HtmlGenerator::writeLineNumber(const char *ref,const char *file, void HtmlGenerator::writeLineNumber(const char *ref,const char *filename,
const char *anchor,int l) const char *anchor,int l)
{ {
QCString lineNumber,lineAnchor; QCString lineNumber,lineAnchor;
lineNumber.sprintf("%05d",l); lineNumber.sprintf("%05d",l);
lineAnchor.sprintf("l%05d",l); lineAnchor.sprintf("l%05d",l);
if (file) if (filename)
{ {
startCodeAnchor(lineAnchor); startCodeAnchor(lineAnchor);
writeCodeLink(ref,file,anchor,lineNumber,0); writeCodeLink(ref,filename,anchor,lineNumber,0);
endCodeAnchor(); endCodeAnchor();
} }
else else
...@@ -1641,13 +1641,13 @@ void HtmlGenerator::writeLineNumber(const char *ref,const char *file, ...@@ -1641,13 +1641,13 @@ void HtmlGenerator::writeLineNumber(const char *ref,const char *file,
} }
void HtmlGenerator::startSimpleSect(SectionTypes, void HtmlGenerator::startSimpleSect(SectionTypes,
const char *file,const char *anchor, const char *filename,const char *anchor,
const char *title) const char *title)
{ {
t << "<dl compact><dt><b>"; t << "<dl compact><dt><b>";
if (file) if (filename)
{ {
writeObjectLink(0,file,anchor,title); writeObjectLink(0,filename,anchor,title);
} }
else else
{ {
...@@ -1867,7 +1867,7 @@ static void writeDefaultQuickLinks(QTextStream &t,bool compact, ...@@ -1867,7 +1867,7 @@ static void writeDefaultQuickLinks(QTextStream &t,bool compact,
bool vhdlOpt = Config_getBool("OPTIMIZE_OUTPUT_VHDL"); bool vhdlOpt = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
startQuickIndexList(t,compact); startQuickIndexList(t,compact);
if (Config_getBool("GENERATE_TREEVIEW")) if (usingTreeIndex())
{ {
startQuickIndexItem(t,"main"+Doxygen::htmlFileExtension, startQuickIndexItem(t,"main"+Doxygen::htmlFileExtension,
hli==HLI_Main,compact,relPath); hli==HLI_Main,compact,relPath);
......
...@@ -415,7 +415,7 @@ void HtmlHelp::createProjectFile() ...@@ -415,7 +415,7 @@ void HtmlHelp::createProjectFile()
QCString indexName="index"+Doxygen::htmlFileExtension; QCString indexName="index"+Doxygen::htmlFileExtension;
if (Config_getBool("GENERATE_TREEVIEW")) indexName="main"+Doxygen::htmlFileExtension; if (usingTreeIndex()) indexName="main"+Doxygen::htmlFileExtension;
t << "[OPTIONS]\n"; t << "[OPTIONS]\n";
if (!Config_getString("CHM_FILE").isEmpty()) if (!Config_getString("CHM_FILE").isEmpty())
{ {
...@@ -433,9 +433,16 @@ void HtmlHelp::createProjectFile() ...@@ -433,9 +433,16 @@ void HtmlHelp::createProjectFile()
t << "Title=" << Config_getString("PROJECT_NAME") << endl << endl; t << "Title=" << Config_getString("PROJECT_NAME") << endl << endl;
t << "[WINDOWS]" << endl; t << "[WINDOWS]" << endl;
// NOTE: the 0x10387e number is a set of bits specifying the buttons
// which should appear in the CHM viewer; that specific value
// means "show all buttons including the font-size one";
// the font-size one is not normally settable by the HTML Help Workshop
// utility but the way to set it is described here:
// http://support.microsoft.com/?scid=kb%3Ben-us%3B240062&x=17&y=18
t << "main=\"" << Config_getString("PROJECT_NAME") << "\",\"index.hhc\"," t << "main=\"" << Config_getString("PROJECT_NAME") << "\",\"index.hhc\","
"\"index.hhk\",\"" << indexName << "\",\"" << "\"index.hhk\",\"" << indexName << "\",\"" <<
indexName << "\",,,,,0x23520,,0x387e,,,,,,,,0" << endl << endl; indexName << "\",,,,,0x23520,,0x10387e,,,,,,,,0" << endl << endl;
t << "[FILES]" << endl; t << "[FILES]" << endl;
char *s = indexFiles.first(); char *s = indexFiles.first();
......
This diff is collapsed.
...@@ -606,8 +606,7 @@ void LatexGenerator::endIndexSection(IndexSections is) ...@@ -606,8 +606,7 @@ void LatexGenerator::endIndexSection(IndexSections is)
break; break;
case isMainPage: case isMainPage:
{ {
QCString indexName="index"; QCString indexName=usingTreeIndex()?"main":"index";
if (Config_getBool("GENERATE_TREEVIEW")) indexName="main";
t << "}\n\\label{index}"; t << "}\n\\label{index}";
if (Config_getBool("PDF_HYPERLINKS")) t << "\\hypertarget{index}{}"; if (Config_getBool("PDF_HYPERLINKS")) t << "\\hypertarget{index}{}";
t << "\\input{" << indexName << "}\n"; t << "\\input{" << indexName << "}\n";
......
...@@ -73,22 +73,22 @@ sub GenerateDep { ...@@ -73,22 +73,22 @@ sub GenerateDep {
$(LEX) -PpreYY -t pre.l | $(INCBUFSIZE) >pre.cpp $(LEX) -PpreYY -t pre.l | $(INCBUFSIZE) >pre.cpp
#$ GenerateDep("declinfo.cpp","declinfo.l"); #$ GenerateDep("declinfo.cpp","declinfo.l");
$(LEX) -PdeclinfoYY -t declinfo.l >declinfo.cpp $(LEX) -PdeclinfoYY -t declinfo.l | $(INCBUFSIZE) >declinfo.cpp
#$ GenerateDep("defargs.cpp","defargs.l"); #$ GenerateDep("defargs.cpp","defargs.l");
$(LEX) -PdefargsYY -t defargs.l >defargs.cpp $(LEX) -PdefargsYY -t defargs.l | $(INCBUFSIZE) >defargs.cpp
#$ GenerateDep("doctokenizer.cpp","doctokenizer.l"); #$ GenerateDep("doctokenizer.cpp","doctokenizer.l");
$(LEX) -PdoctokenizerYY -t doctokenizer.l >doctokenizer.cpp $(LEX) -PdoctokenizerYY -t doctokenizer.l | $(INCBUFSIZE) >doctokenizer.cpp
#$ GenerateDep("commentcnv.cpp","commentcnv.l"); #$ GenerateDep("commentcnv.cpp","commentcnv.l");
$(LEX) -PcommentcnvYY -t commentcnv.l >commentcnv.cpp $(LEX) -PcommentcnvYY -t commentcnv.l | $(INCBUFSIZE) >commentcnv.cpp
#$GenerateDep("commentscan.cpp","commentscan.l"); #$GenerateDep("commentscan.cpp","commentscan.l");
$(LEX) -PcommentScanYY -t commentscan.l >commentscan.cpp $(LEX) -PcommentScanYY -t commentscan.l | $(INCBUFSIZE) >commentscan.cpp
#$ GenerateDep("ce_lex.cpp","constexp.l","ce_parse.h"); #$ GenerateDep("ce_lex.cpp","constexp.l","ce_parse.h");
$(LEX) -PcppExpYY -t constexp.l >ce_lex.cpp $(LEX) -PcppExpYY -t constexp.l | $(INCBUFSIZE) >ce_lex.cpp
#$ GenerateDep("ce_parse.cpp","constexp.y"); #$ GenerateDep("ce_parse.cpp","constexp.y");
$(YACC) -l -p cppExpYY constexp.y -o ce_parse.cpp $(YACC) -l -p cppExpYY constexp.y -o ce_parse.cpp
......
...@@ -833,7 +833,7 @@ bool MemberDef::isLinkableInProject() const ...@@ -833,7 +833,7 @@ bool MemberDef::isLinkableInProject() const
//printf("private and invisible!\n"); //printf("private and invisible!\n");
return FALSE; // hidden due to protection return FALSE; // hidden due to protection
} }
if (isStatic() && m_impl->classDef==0 && !extractStatic) if (m_impl->stat && m_impl->classDef==0 && !extractStatic)
{ {
//printf("static and invisible!\n"); //printf("static and invisible!\n");
return FALSE; // hidden due to staticness return FALSE; // hidden due to staticness
......
...@@ -320,6 +320,11 @@ void MemberList::writeDeclarations(OutputList &ol, ...@@ -320,6 +320,11 @@ void MemberList::writeDeclarations(OutputList &ol,
{ {
//printf("----- writeDeclaration() this=%p ----\n",this); //printf("----- writeDeclaration() this=%p ----\n",this);
countDecMembers(showEnumValues); // count member not in group countDecMembers(showEnumValues); // count member not in group
Definition *ctx = cd;
if (ctx==0 && nd) ctx = nd;
if (ctx==0 && gd) ctx = gd;
if (ctx==0 && fd) ctx = fd;
if (numDecMembers()==0) return; if (numDecMembers()==0) return;
//printf("%p: MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d\n", //printf("%p: MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d\n",
// this,title,subtitle,numDecMembers()); // this,title,subtitle,numDecMembers());
...@@ -333,7 +338,7 @@ void MemberList::writeDeclarations(OutputList &ol, ...@@ -333,7 +338,7 @@ void MemberList::writeDeclarations(OutputList &ol,
{ {
//printf("subtitle=`%s'\n",subtitle); //printf("subtitle=`%s'\n",subtitle);
ol.startMemberSubtitle(); ol.startMemberSubtitle();
ol.parseDoc("[generated]",-1,0,0,subtitle,FALSE,FALSE); ol.parseDoc("[generated]",-1,ctx,0,subtitle,FALSE,FALSE);
ol.endMemberSubtitle(); ol.endMemberSubtitle();
} }
...@@ -358,7 +363,7 @@ void MemberList::writeDeclarations(OutputList &ol, ...@@ -358,7 +363,7 @@ void MemberList::writeDeclarations(OutputList &ol,
{ {
//printf("Member group has docs!\n"); //printf("Member group has docs!\n");
ol.startMemberGroupDocs(); ol.startMemberGroupDocs();
ol.parseDoc("[generated]",-1,0,0,mg->documentation()+"\n",FALSE,FALSE); ol.parseDoc("[generated]",-1,ctx,0,mg->documentation()+"\n",FALSE,FALSE);
ol.endMemberGroupDocs(); ol.endMemberGroupDocs();
} }
ol.startMemberGroup(); ol.startMemberGroup();
......
...@@ -895,7 +895,7 @@ void RTFDocVisitor::visitPre(DocHtmlRow *r) ...@@ -895,7 +895,7 @@ void RTFDocVisitor::visitPre(DocHtmlRow *r)
{ {
if (m_hide) return; if (m_hide) return;
DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlRow)}\n"); DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlRow)}\n");
uint i,columnWidth=rtf_pageWidth/r->numCells(); uint i,columnWidth=r->numCells()>0 ? rtf_pageWidth/r->numCells() : 10;
m_t << "\\trowd \\trgaph108\\trleft-108" m_t << "\\trowd \\trgaph108\\trleft-108"
"\\trbrdrt\\brdrs\\brdrw10 " "\\trbrdrt\\brdrs\\brdrw10 "
"\\trbrdrl\\brdrs\\brdrw10 " "\\trbrdrl\\brdrs\\brdrw10 "
......
...@@ -607,7 +607,7 @@ void RTFGenerator::endIndexSection(IndexSections is) ...@@ -607,7 +607,7 @@ void RTFGenerator::endIndexSection(IndexSections is)
t << "{\\tc \\v " << substitute(Doxygen::mainPage->title(),"%","") << "}"<< endl; t << "{\\tc \\v " << substitute(Doxygen::mainPage->title(),"%","") << "}"<< endl;
} }
t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \""; t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
if (Config_getBool("GENERATE_TREEVIEW")) t << "main"; else t << "index"; if (usingTreeIndex()) t << "main"; else t << "index";
t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n"; t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
break; break;
//case isPackageIndex: //case isPackageIndex:
......
...@@ -170,6 +170,7 @@ static QCString idlAttr; ...@@ -170,6 +170,7 @@ static QCString idlAttr;
static QCString idlProp; static QCString idlProp;
static bool g_lexInit = FALSE; static bool g_lexInit = FALSE;
static bool externC;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
...@@ -902,6 +903,12 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -902,6 +903,12 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
curlyCount=0; curlyCount=0;
BEGIN( CliPropertyType ); BEGIN( CliPropertyType );
} }
else if (insideCS)
{
lineCount() ;
current->mtype = Event;
current->bodyLine = yyLineNr;
}
else else
{ {
REJECT; REJECT;
...@@ -3006,8 +3013,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -3006,8 +3013,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
} }
else else
{ {
current->doc.resize(0); //current->doc.resize(0);
current->brief.resize(0); //current->brief.resize(0);
BEGIN( MemberSpec ) ; BEGIN( MemberSpec ) ;
} }
} }
...@@ -4324,7 +4331,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4324,7 +4331,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
{ {
current->name += "-p"; current->name += "-p";
} }
if ((current->section & Entry::Protocol) || if ((current->spec & Entry::Protocol) ||
current->section == Entry::OBJCIMPL_SEC) current->section == Entry::OBJCIMPL_SEC)
{ {
unput('{'); // fake start of body unput('{'); // fake start of body
...@@ -4453,6 +4460,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4453,6 +4460,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
unput('{'); unput('{');
BEGIN( lastCSConstraint ); BEGIN( lastCSConstraint );
} }
<CSConstraintType,CSConstraintName>";" {
handleParametersCommentBlocks(current->typeConstr);
unput(';');
BEGIN( lastCSConstraint );
}
<CSConstraintName>":" { <CSConstraintName>":" {
BEGIN( CSConstraintType ); BEGIN( CSConstraintType );
} }
...@@ -4719,6 +4731,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4719,6 +4731,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
if (*yytext=='>') if (*yytext=='>')
{ // end of a ObjC protocol list { // end of a ObjC protocol list
insideProtocolList=FALSE; insideProtocolList=FALSE;
unput('{'); // dummy start body
} }
else else
{ {
...@@ -4831,6 +4844,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4831,6 +4844,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar,SkipInits,Bases,OldStyleArgs>("//"{B}*)?"/**"/[^/*] { <FindMembers,FindFields,MemberSpec,FuncQual,SkipCurly,Operator,ClassVar,SkipInits,Bases,OldStyleArgs>("//"{B}*)?"/**"/[^/*] {
removeSlashes=(yytext[1]=='/'); removeSlashes=(yytext[1]=='/');
lastDocContext = YY_START; lastDocContext = YY_START;
//printf("Found comment block at %s:%d\n",yyFileName,yyLineNr); //printf("Found comment block at %s:%d\n",yyFileName,yyLineNr);
if (current_root->section & Entry::SCOPE_MASK) if (current_root->section & Entry::SCOPE_MASK)
{ {
...@@ -4918,9 +4932,14 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -4918,9 +4932,14 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
} }
<FindMembers>"extern"{BN}*"\"C"("++")?"\""{BN}*("{")? { <FindMembers>"extern"{BN}*"\"C"("++")?"\""{BN}*("{")? {
lineCount(); lineCount();
externC=TRUE;
} }
<FindMembers>"{" { <FindMembers>"{" {
if (insideCS && if (externC)
{
externC=FALSE;
}
else if (insideCS &&
!current->name.isEmpty() && !current->name.isEmpty() &&
!current->type.isEmpty()) !current->type.isEmpty())
{ {
......
...@@ -672,8 +672,8 @@ class TranslatorGerman : public Translator ...@@ -672,8 +672,8 @@ class TranslatorGerman : public Translator
case ClassDef::Struct: result+="Struktur"; break; case ClassDef::Struct: result+="Struktur"; break;
case ClassDef::Union: result+="Varianten"; break; case ClassDef::Union: result+="Varianten"; break;
case ClassDef::Interface: result+="Schnittstellen"; break; case ClassDef::Interface: result+="Schnittstellen"; break;
case ClassDef::Protocol: result+="Protocol"; break; // translate me! case ClassDef::Protocol: result+="Protokoll"; break;
case ClassDef::Category: result+="Category"; break; // translate me! case ClassDef::Category: result+="Kategorie"; break;
case ClassDef::Exception: result+="Ausnahmen"; break; case ClassDef::Exception: result+="Ausnahmen"; break;
} }
result+="referenz"; result+="referenz";
...@@ -840,8 +840,8 @@ class TranslatorGerman : public Translator ...@@ -840,8 +840,8 @@ class TranslatorGerman : public Translator
case ClassDef::Struct: result+=" Struktur"; break; case ClassDef::Struct: result+=" Struktur"; break;
case ClassDef::Union: result+=" Variante"; break; case ClassDef::Union: result+=" Variante"; break;
case ClassDef::Interface: result+=" Schnittstelle"; break; case ClassDef::Interface: result+=" Schnittstelle"; break;
case ClassDef::Protocol: result+=" Protocol"; break; // translate me! case ClassDef::Protocol: result+="s Protokoll"; break;
case ClassDef::Category: result+=" Category"; break; // translate me! case ClassDef::Category: result+=" Kategorie"; break;
case ClassDef::Exception: result+=" Ausnahme"; break; case ClassDef::Exception: result+=" Ausnahme"; break;
} }
result+=" wurde erzeugt aufgrund der Datei"; result+=" wurde erzeugt aufgrund der Datei";
......
...@@ -3400,6 +3400,7 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr ...@@ -3400,6 +3400,7 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr
if (srcA->type==dstA->type) if (srcA->type==dstA->type)
{ {
//printf("1. merging %s:%s <-> %s:%s\n",srcA->type.data(),srcA->name.data(),dstA->type.data(),dstA->name.data());
if (srcA->name.isEmpty() && !dstA->name.isEmpty()) if (srcA->name.isEmpty() && !dstA->name.isEmpty())
{ {
//printf("type: `%s':=`%s'\n",srcA->type.data(),dstA->type.data()); //printf("type: `%s':=`%s'\n",srcA->type.data(),dstA->type.data());
...@@ -3436,7 +3437,9 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr ...@@ -3436,7 +3437,9 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr
} }
else else
{ {
//printf("merging %s:%s <-> %s:%s\n",srcA->type.data(),srcA->name.data(),dstA->type.data(),dstA->name.data()); //printf("2. merging '%s':'%s' <-> '%s':'%s'\n",srcA->type.data(),srcA->name.data(),dstA->type.data(),dstA->name.data());
srcA->type=srcA->type.stripWhiteSpace();
dstA->type=dstA->type.stripWhiteSpace();
if (srcA->type+" "+srcA->name==dstA->type) // "unsigned long:int" <-> "unsigned long int:bla" if (srcA->type+" "+srcA->name==dstA->type) // "unsigned long:int" <-> "unsigned long int:bla"
{ {
srcA->type+=" "+srcA->name; srcA->type+=" "+srcA->name;
...@@ -3833,7 +3836,7 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -3833,7 +3836,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
// md->name().data(),args,fd,gd); // md->name().data(),args,fd,gd);
if ( if (
((gd && gd->isLinkable()) || (fd && fd->isLinkable())) && ((gd && gd->isLinkable()) || (fd && fd->isLinkable())) &&
md->getNamespaceDef()==0 md->getNamespaceDef()==0 && md->isLinkable()
) )
{ {
//printf(" fd=%p gd=%p args=`%s'\n",fd,gd,args); //printf(" fd=%p gd=%p args=`%s'\n",fd,gd,args);
...@@ -3905,7 +3908,6 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -3905,7 +3908,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
} }
if (bmd) md=bmd; if (bmd) md=bmd;
} }
if (md && !md->isLinkable()) md=0; // ignore things we cannot link to
if (md) // found a matching global member if (md) // found a matching global member
{ {
fd=md->getFileDef(); fd=md->getFileDef();
...@@ -4469,12 +4471,13 @@ FileDef *findFileDef(const FileNameDict *fnDict,const char *n,bool &ambig) ...@@ -4469,12 +4471,13 @@ FileDef *findFileDef(const FileNameDict *fnDict,const char *n,bool &ambig)
for (fni.toFirst();(fd=fni.current());++fni) for (fni.toFirst();(fd=fni.current());++fni)
{ {
QCString fdStripPath = stripFromIncludePath(fd->getPath()); QCString fdStripPath = stripFromIncludePath(fd->getPath());
if (path.isEmpty() || fdStripPath==pathStripped) if (path.isEmpty() || fdStripPath.right(pathStripped.length())==pathStripped)
{ {
count++; count++;
lastMatch=fd; lastMatch=fd;
} }
} }
ambig=(count>1); ambig=(count>1);
cachedResult->isAmbig = ambig; cachedResult->isAmbig = ambig;
cachedResult->fileDef = lastMatch; cachedResult->fileDef = lastMatch;
...@@ -6593,3 +6596,9 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al) ...@@ -6593,3 +6596,9 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al)
ol.endConstraintList(); ol.endConstraintList();
} }
bool usingTreeIndex()
{
QCString& TreeView=Config_getEnum("GENERATE_TREEVIEW");
return TreeView=="FRAME" || TreeView=="ALL" || TreeView=="YES";
}
...@@ -351,5 +351,7 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al); ...@@ -351,5 +351,7 @@ void writeTypeConstraints(OutputList &ol,Definition *d,ArgumentList *al);
QCString convertCharEntitiesToUTF8(const QCString &s); QCString convertCharEntitiesToUTF8(const QCString &s);
bool usingTreeIndex();
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment