Commit 868208ab authored by dimitri's avatar dimitri

Release-1.2.2-20001015

parent 49947579
DOXYGEN Version 1.2.2-20001001 DOXYGEN Version 1.2.2-20001015
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (01 October 2000) Dimitri van Heesch (15 October 2000)
all: src/version.cpp configgen doxywizard all: src/version.cpp configgen doxywizard
cd qtools ; $(MAKE)
cd src ; $(MAKE) cd src ; $(MAKE)
clean: FORCE clean: FORCE
cd examples ; $(MAKE) clean cd examples ; $(MAKE) clean
cd doc ; $(MAKE) clean cd doc ; $(MAKE) clean
cd qtools ; $(MAKE) clean
cd src ; $(MAKE) clean cd src ; $(MAKE) clean
cd addon/configgen ; $(MAKE) clean cd addon/configgen ; $(MAKE) clean
cd addon/doxywizard ; $(MAKE) clean cd addon/doxywizard ; $(MAKE) clean
...@@ -13,16 +15,14 @@ clean: FORCE ...@@ -13,16 +15,14 @@ clean: FORCE
-rm -f objects/*.o -rm -f objects/*.o
distclean: clean distclean: clean
cd examples ; $(MAKE) clean
cd doc ; $(MAKE) clean
cd src ; $(MAKE) distclean cd src ; $(MAKE) distclean
cd addon/configgen ; $(MAKE) distclean cd addon/configgen ; $(MAKE) distclean
cd addon/doxywizard ; $(MAKE) distclean cd addon/doxywizard ; $(MAKE) distclean
-rm -f bin/doxy* -rm -f bin/doxy*
-rm -f html -rm -f html
-rm -f objects/*.o -rm -f objects/*.o
-rm -f src/Makefile.doxygen src/Makefile.doxytag src/Makefile.doxysearch -rm -f src/Makefile.doxygen src/Makefile.doxytag src/Makefile.doxysearch qtools/Makefile.qtools
-rm -f Makefile src/Makefile examples/Makefile doc/Makefile -rm -f Makefile qtools/Makefile src/Makefile examples/Makefile doc/Makefile
-rm -f .makeconfig .tmakeconfig -rm -f .makeconfig .tmakeconfig
-rm -f src/doxygen.pro src/doxytag.pro src/doxysearch.pro -rm -f src/doxygen.pro src/doxytag.pro src/doxysearch.pro
-rm -f src/version.cpp -rm -f src/version.cpp
...@@ -69,7 +69,7 @@ pdf: docs ...@@ -69,7 +69,7 @@ pdf: docs
archive: clean archive: clean
tar zcvf dx`date +%y%m%d`.tgz addon tmake doc wintools examples bin objects \ tar zcvf dx`date +%y%m%d`.tgz addon tmake doc wintools examples bin objects \
src configure configure.bin Makefile.in Makefile.win.in INSTALL \ qtools src configure configure.bin Makefile.in Makefile.win.in INSTALL \
make.bat LANGUAGE.HOWTO LICENSE PLATFORMS VERSION packages make.bat LANGUAGE.HOWTO LICENSE PLATFORMS VERSION packages
src/version.cpp: Makefile src/version.cpp: Makefile
......
all: src\version.cpp all: src\version.cpp
set TMAKEPATH=$(TMAKEPATH) set TMAKEPATH=$(TMAKEPATH)
cd qtools
$(MAKE)
cd ..
cd src cd src
$(MAKE) $(MAKE)
......
DOXYGEN Version 1.2.2-20001001 DOXYGEN Version 1.2.2-20001015
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 (01 October 2000) Dimitri van Heesch (15 October 2000)
1.2.2-20001001 1.2.2-20001015
...@@ -1075,6 +1075,14 @@ void init() ...@@ -1075,6 +1075,14 @@ void init()
"tags, which will be replaced by the file and line number from which the \n" "tags, which will be replaced by the file and line number from which the \n"
"warning originated and the warning text. \n" "warning originated and the warning text. \n"
); );
ConfigString::add("warnLogFile",
"WARN_LOGFILE",
"",
"log file to write warning to",
"The WARN_LOGFILE tag can be used to specify a file to which warning \n"
"and error messages should be written. If left blank the output is written \n"
"to stderr. \n"
);
//----------------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------------
ConfigInfo::add( "Input","configuration options related to the input files"); ConfigInfo::add( "Input","configuration options related to the input files");
//----------------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------------
...@@ -1658,7 +1666,15 @@ void init() ...@@ -1658,7 +1666,15 @@ void init()
100,30000 100,30000
); );
addDependency("maxDotGraphHeight","haveDotFlag"); addDependency("maxDotGraphHeight","haveDotFlag");
ConfigBool::add( "generateLegend",
"GENERATE_LEGEND",
"TRUE",
"generate legend page",
"If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will \n"
"generate a legend page explaining the meaning of the various boxes and \n"
"arrows in the dot generated graphs. \n"
);
addDependency("generateLegend","haveDotFlag");
//----------------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------------
ConfigInfo::add( "Search","Configuration::addtions related to the search engine "); ConfigInfo::add( "Search","Configuration::addtions related to the search engine ");
......
...@@ -218,27 +218,27 @@ if test "$f_plf_auto" = NO; then ...@@ -218,27 +218,27 @@ if test "$f_plf_auto" = NO; then
fi fi
#- check for qt -------------------------------------------------------------- #- check for qt --------------------------------------------------------------
#
echo -n " Checking for Qt..." # echo -n " Checking for Qt..."
if test -z "$QTDIR"; then # if test -z "$QTDIR"; then
echo "QTDIR not set!" # echo "QTDIR not set!"
echo # echo
echo "tmake requires the QTDIR environment variable to be set." # echo "tmake requires the QTDIR environment variable to be set."
echo "check your Qt installation!" # echo "check your Qt installation!"
exit 2 # exit 2
else # else
if test ! -d "$QTDIR/lib"; then # if test ! -d "$QTDIR/lib"; then
echo "QTDIR is set, but library directory does not exist!" # echo "QTDIR is set, but library directory does not exist!"
exit 2 # exit 2
fi # fi
if test ! -d "$QTDIR/include"; then # if test ! -d "$QTDIR/include"; then
echo "QTDIR is set, but include directory does not exist!" # echo "QTDIR is set, but include directory does not exist!"
exit 2 # exit 2
fi # fi
echo " headers $QTDIR/include," # echo " headers $QTDIR/include,"
echo " libraries $QTDIR/lib" # echo " libraries $QTDIR/lib"
fi # fi
#
# - check for make ------------------------------------------------------------ # - check for make ------------------------------------------------------------
echo -n " Checking for GNU make tool... " echo -n " Checking for GNU make tool... "
...@@ -268,7 +268,7 @@ echo "using $f_make" ...@@ -268,7 +268,7 @@ echo "using $f_make"
# - check for dot ------------------------------------------------------------ # - check for dot ------------------------------------------------------------
echo -n " Checking for dot... " 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"
dot_prog=NO dot_prog=NO
...@@ -374,7 +374,7 @@ TMAKE_CXXFLAGS = -DENGLISH_ONLY ...@@ -374,7 +374,7 @@ TMAKE_CXXFLAGS = -DENGLISH_ONLY
EOF EOF
fi fi
f_inmakefiles="Makefile.in src/Makefile.in examples/Makefile.in doc/Makefile.in addon/configgen/Makefile.in addon/doxywizard/Makefile.in addon/xmlread/Makefile.in" f_inmakefiles="Makefile.in qtools/Makefile.in src/Makefile.in examples/Makefile.in doc/Makefile.in addon/configgen/Makefile.in addon/doxywizard/Makefile.in addon/xmlread/Makefile.in"
for i in $f_inmakefiles ; do for i in $f_inmakefiles ; do
SRC=$i SRC=$i
...@@ -404,7 +404,7 @@ EOF ...@@ -404,7 +404,7 @@ EOF
echo " Created $DST from $SRC..." echo " Created $DST from $SRC..."
done done
f_inprofiles="src/doxygen.pro.in src/doxytag.pro.in src/doxysearch.pro.in addon/configgen/configgen.pro.in addon/doxywizard/doxywizard.pro.in addon/xmlread/xmlread.pro.in" f_inprofiles="qtools/qtools.pro.in src/doxygen.pro.in src/doxytag.pro.in src/doxysearch.pro.in addon/configgen/configgen.pro.in addon/doxywizard/doxywizard.pro.in addon/xmlread/xmlread.pro.in"
for i in $f_inprofiles ; do for i in $f_inprofiles ; do
SRC=$i SRC=$i
......
...@@ -103,6 +103,7 @@ followed by the descriptions of the tags grouped by category. ...@@ -103,6 +103,7 @@ followed by the descriptions of the tags grouped by category.
<li> \refitem cfg_generate_html GENERATE_HTML <li> \refitem cfg_generate_html GENERATE_HTML
<li> \refitem cfg_generate_htmlhelp GENERATE_HTMLHELP <li> \refitem cfg_generate_htmlhelp GENERATE_HTMLHELP
<li> \refitem cfg_generate_latex GENERATE_LATEX <li> \refitem cfg_generate_latex GENERATE_LATEX
<li> \refitem cfg_generate_legend GENERATE_LEGEND
<li> \refitem cfg_generate_man GENERATE_MAN <li> \refitem cfg_generate_man GENERATE_MAN
<li> \refitem cfg_generate_rtf GENERATE_RTF <li> \refitem cfg_generate_rtf GENERATE_RTF
<li> \refitem cfg_generate_tagfile GENERATE_TAGFILE <li> \refitem cfg_generate_tagfile GENERATE_TAGFILE
...@@ -163,6 +164,7 @@ followed by the descriptions of the tags grouped by category. ...@@ -163,6 +164,7 @@ followed by the descriptions of the tags grouped by category.
<li> \refitem cfg_verbatim_headers VERBATIM_HEADERS <li> \refitem cfg_verbatim_headers VERBATIM_HEADERS
<li> \refitem cfg_warn_format WARN_FORMAT <li> \refitem cfg_warn_format WARN_FORMAT
<li> \refitem cfg_warn_if_undocumented WARN_IF_UNDOCUMENTED <li> \refitem cfg_warn_if_undocumented WARN_IF_UNDOCUMENTED
<li> \refitem cfg_warn_logfile WARN_LOGFILE
<li> \refitem cfg_warnings WARNINGS <li> \refitem cfg_warnings WARNINGS
\htmlonly \htmlonly
</ul> </ul>
...@@ -481,12 +483,19 @@ followed by the descriptions of the tags grouped by category. ...@@ -481,12 +483,19 @@ followed by the descriptions of the tags grouped by category.
\anchor cfg_warn_format \anchor cfg_warn_format
<dt>\c WARN_FORMAT <dd> <dt>\c WARN_FORMAT <dd>
\addindex WARN_FORMAT \addindex WARN_FORMAT
The WARN_FORMAT tag determines the format of the warning messages that The \c WARN_FORMAT tag determines the format of the warning messages that
doxygen can produce. The string should contain the <code>\$file</code>, doxygen can produce. The string should contain the <code>\$file</code>,
<code>\$line</code>, and <code>\$text</code> <code>\$line</code>, and <code>\$text</code>
tags, which will be replaced by the file and line number from which the tags, which will be replaced by the file and line number from which the
warning originated and the warning text. warning originated and the warning text.
\anchor cfg_warn_logfile
<dt>\c WARN_LOGFILE <dd>
\addindex WARN_LOGFILE
The \c WARN_LOGFILE tag can be used to specify a file to which warning
and error messages should be written. If left blank the output is written
to stderr.
</dl> </dl>
\subsection config_input Input related options \subsection config_input Input related options
...@@ -1061,6 +1070,13 @@ TAGFILES = file1=loc1 "file2 = loc2" ... </pre> ...@@ -1061,6 +1070,13 @@ TAGFILES = file1=loc1 "file2 = loc2" ... </pre>
the specified constraint. Beware that most browsers cannot cope with very the specified constraint. Beware that most browsers cannot cope with very
large images. large images.
\anchor cfg_generate_legend <dd>
<dt>\c GENERATE_LEGEND <dd>
\addindex GENERATE_LEGEND
If the \c GENERATE_LEGEND tag is set to \c YES (the default) Doxygen will
generate a legend page explaining the meaning of the various boxes and
arrows in the dot generated graphs.
</dl> </dl>
\subsection config_search Search engine options \subsection config_search Search engine options
\anchor cfg_searchengine \anchor cfg_searchengine
......
...@@ -337,7 +337,7 @@ Here is what is required: ...@@ -337,7 +337,7 @@ Here is what is required:
variables (if you did not select to do this automatically during variables (if you did not select to do this automatically during
installation). installation).
<li>Perl 5.0 or higher for Windows. This can be download from: <li>Perl 5.0 or higher for Windows. This can be download from:
http://www.ActiveState.com/pw32 http://www.ActiveState.com/Products/ActivePerl/
<li>The GNU tools flex, bison and sed. <li>The GNU tools flex, bison and sed.
To get these working on Windows you should install the To get these working on Windows you should install the
<a href="http://sourceware.cygnus.com/cygwin/">cygwin tools</a> <a href="http://sourceware.cygnus.com/cygwin/">cygwin tools</a>
...@@ -351,8 +351,8 @@ Here is what is required: ...@@ -351,8 +351,8 @@ Here is what is required:
the directory they are in to the search path. the directory they are in to the search path.
<li>A professional license of <li>A professional license of
<A HREF="http://www.trolltech.com/products/qt.html">Qt for Windows</A><br> <A HREF="http://www.trolltech.com/products/qt.html">Qt for Windows</A>
\latexonly(see {\tt http://www.trolltech.com/products/qt.html})\endlatexonly. \latexonly\par (see {\tt http://www.trolltech.com/products/qt.html})\endlatexonly.
If you do not have that and you can live without the GUI front-end If you do not have that and you can live without the GUI front-end
you can also download Qt-1.44 for X11. Doxygen only the depends on you can also download Qt-1.44 for X11. Doxygen only the depends on
......
...@@ -131,7 +131,7 @@ of compiling the generated ...@@ -131,7 +131,7 @@ of compiling the generated
documentation, \c doxygen writes a \c Makefile into the \c latex directory. documentation, \c doxygen writes a \c Makefile into the \c latex directory.
By typing \c make in the \c latex directory the dvi file \c refman.dvi By typing \c make in the \c latex directory the dvi file \c refman.dvi
will be generated (provided that you have a make tool called will be generated (provided that you have a make tool called
<code>make</code> ofcourse). This file can then be viewed using \c xdvi or <code>make</code> of course). This file can then be viewed using \c xdvi or
converted into a postscript file \c refman.ps by converted into a postscript file \c refman.ps by
typing <code>make ps</code> (this requires <code>dvips</code>). typing <code>make ps</code> (this requires <code>dvips</code>).
To put 2 pages on one physical page use <code>make ps_2on1</code> instead. To put 2 pages on one physical page use <code>make ps_2on1</code> instead.
...@@ -152,7 +152,7 @@ capabilities of the man page format, so some information ...@@ -152,7 +152,7 @@ capabilities of the man page format, so some information
\subsection step3 Step 3: Documenting the sources \subsection step3 Step 3: Documenting the sources
Although documenting the source is presented as step 3, in a new project Although documenting the source is presented as step 3, in a new project
this should ofcourse be step 1. Here I assume this should of course be step 1. Here I assume
you already have some code and you want doxygen to generate a nice document you already have some code and you want doxygen to generate a nice document
describing the API and maybe the internals as well. describing the API and maybe the internals as well.
......
REM make script for Microsoft Visual C++
REM goto OK
if not '%QTDIR%'=='' goto OK
echo The QTDIR environment variable is not set! See the INSTALL file for more info.
rem You can also remove the comment from the upper "REM goto OK" line
rem and set the QTDIR correctly on the line below.
goto END
:OK
REM Change the QTDIR setting as appropriate (at the following line)
if '%QTDIR%'=='' set QTDIR=c:\usr\qt-1.44
REM Generate the batch for compilation from the src subdirectory (make.bat)
echo set QTDIR=%QTDIR%>src\make.bat
echo nmake>>src\make.bat
REM use perl to create the config file
perl wintools\make.pl
type makeconfig Makefile.win.in >Makefile
type makeconfig src\Makefile.in >src\Makefile
type makeconfig examples\Makefile.win.in >examples\Makefile
type makeconfig doc\Makefile.win.in >doc\Makefile
type src\doxygen.pro.in | sed "s/\$extraopts/release/g" >src\doxygen.pro
type src\doxytag.pro.in | sed "s/\$extraopts/release/g" >src\doxytag.pro
type src\doxysearch.pro.in | sed "s/\$extraopts/release/g" >src\doxysearch.pro
nmake
:END
Name: doxygen Name: doxygen
Version: 1.2.2-20001001 Version: 1.2.2-20001015
Summary: documentation system for C, C++ and IDL Summary: documentation system for C, C++ and IDL
Release: 1 Release: 1
Source0: doxygen-%{version}.src.tar.gz Source0: doxygen-%{version}.src.tar.gz
......
This diff is collapsed.
THE Q PUBLIC LICENSE
version 1.0
Copyright (C) 1999-2000 Trolltech AS, Norway.
Everyone is permitted to copy and
distribute this license document.
The intent of this license is to establish freedom to share and change the
software regulated by this license under the open source model.
This license applies to any software containing a notice placed by the
copyright holder saying that it may be distributed under the terms of
the Q Public License version 1.0. Such software is herein referred to as
the Software. This license covers modification and distribution of the
Software, use of third-party application programs based on the Software,
and development of free software which uses the Software.
Granted Rights
1. You are granted the non-exclusive rights set forth in this license
provided you agree to and comply with any and all conditions in this
license. Whole or partial distribution of the Software, or software
items that link with the Software, in any form signifies acceptance of
this license.
2. You may copy and distribute the Software in unmodified form provided
that the entire package, including - but not restricted to - copyright,
trademark notices and disclaimers, as released by the initial developer
of the Software, is distributed.
3. You may make modifications to the Software and distribute your
modifications, in a form that is separate from the Software, such as
patches. The following restrictions apply to modifications:
a. Modifications must not alter or remove any copyright notices in
the Software.
b. When modifications to the Software are released under this
license, a non-exclusive royalty-free right is granted to the
initial developer of the Software to distribute your modification
in future versions of the Software provided such versions remain
available under these terms in addition to any other license(s) of
the initial developer.
4. You may distribute machine-executable forms of the Software or
machine-executable forms of modified versions of the Software, provided
that you meet these restrictions:
a. You must include this license document in the distribution.
b. You must ensure that all recipients of the machine-executable forms
are also able to receive the complete machine-readable source code
to the distributed Software, including all modifications, without
any charge beyond the costs of data transfer, and place prominent
notices in the distribution explaining this.
c. You must ensure that all modifications included in the
machine-executable forms are available under the terms of this
license.
5. You may use the original or modified versions of the Software to
compile, link and run application programs legally developed by you
or by others.
6. You may develop application programs, reusable components and other
software items that link with the original or modified versions of the
Software. These items, when distributed, are subject to the following
requirements:
a. You must ensure that all recipients of machine-executable forms of
these items are also able to receive and use the complete
machine-readable source code to the items without any charge
beyond the costs of data transfer.
b. You must explicitly license all recipients of your items to use
and re-distribute original and modified versions of the items in
both machine-executable and source code forms. The recipients must
be able to do so without any charges whatsoever, and they must be
able to re-distribute to anyone they choose.
c. If the items are not available to the general public, and the
initial developer of the Software requests a copy of the items,
then you must supply one.
Limitations of Liability
In no event shall the initial developers or copyright holders be liable
for any damages whatsoever, including - but not restricted to - lost
revenue or profits or other direct, indirect, special, incidental or
consequential damages, even if they have been advised of the possibility
of such damages, except to the extent invariable law, if any, provides
otherwise.
No Warranty
The Software and this license document are provided AS IS with NO WARRANTY
OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE.
Choice of Law
This license is governed by the Laws of Norway. Disputes shall be settled
by Oslo City Court.
#
#
#
# Copyright (C) 1997-2000 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.
#
all: Makefile.qtools Makefile
$(MAKE) -f Makefile.qtools $@
Makefile.qtools: qtools.pro
$(PERL) $(TMAKE) qtools.pro >Makefile.qtools
tmake:
$(PERL) $(TMAKE) qtools.pro >Makefile.qtools
clean: Makefile.qtools
$(MAKE) -f Makefile.qtools clean
distclean: clean
FORCE:
This directory contains a small subset of Troll-Tech's Qt library
The subset is enough to build the doxygen executable, but lacks many of
the features found in the Qt library. See http://www.trolltech.com
for the full package.
/****************************************************************************
**
**
** Definition of QArray template/macro class
**
** Created : 930906
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QARRAY_H
#define QARRAY_H
#ifndef QT_H
#include "qgarray.h"
#endif // QT_H
template<class type> class Q_EXPORT QArray : public QGArray
{
public:
typedef type* Iterator;
typedef const type* ConstIterator;
typedef type ValueType;
protected:
QArray( int, int ) : QGArray( 0, 0 ) {}
public:
QArray() {}
QArray( int size ) : QGArray(size*sizeof(type)) {}
QArray( const QArray<type> &a ) : QGArray(a) {}
~QArray() {}
QArray<type> &operator=(const QArray<type> &a)
{ return (QArray<type>&)QGArray::assign(a); }
type *data() const { return (type *)QGArray::data(); }
uint nrefs() const { return QGArray::nrefs(); }
uint size() const { return QGArray::size()/sizeof(type); }
uint count() const { return size(); }
bool isEmpty() const { return QGArray::size() == 0; }
bool isNull() const { return QGArray::data() == 0; }
bool resize( uint size ) { return QGArray::resize(size*sizeof(type)); }
bool truncate( uint pos ) { return QGArray::resize(pos*sizeof(type)); }
bool fill( const type &d, int size = -1 )
{ return QGArray::fill((char*)&d,size,sizeof(type) ); }
void detach() { QGArray::detach(); }
QArray<type> copy() const
{ QArray<type> tmp; return tmp.duplicate(*this); }
QArray<type>& assign( const QArray<type>& a )
{ return (QArray<type>&)QGArray::assign(a); }
QArray<type>& assign( const type *a, uint n )
{ return (QArray<type>&)QGArray::assign((char*)a,n*sizeof(type)); }
QArray<type>& duplicate( const QArray<type>& a )
{ return (QArray<type>&)QGArray::duplicate(a); }
QArray<type>& duplicate( const type *a, uint n )
{ return (QArray<type>&)QGArray::duplicate((char*)a,n*sizeof(type)); }
QArray<type>& setRawData( const type *a, uint n )
{ return (QArray<type>&)QGArray::setRawData((char*)a,
n*sizeof(type)); }
void resetRawData( const type *a, uint n )
{ QGArray::resetRawData((char*)a,n*sizeof(type)); }
int find( const type &d, uint i=0 ) const
{ return QGArray::find((char*)&d,i,sizeof(type)); }
int contains( const type &d ) const
{ return QGArray::contains((char*)&d,sizeof(type)); }
void sort() { QGArray::sort(sizeof(type)); }
int bsearch( const type &d ) const
{ return QGArray::bsearch((const char*)&d,sizeof(type)); }
type& operator[]( int i ) const
{ return (type &)(*(type *)QGArray::at(i*sizeof(type))); }
type& at( uint i ) const
{ return (type &)(*(type *)QGArray::at(i*sizeof(type))); }
operator const type*() const { return (const type *)QGArray::data(); }
bool operator==( const QArray<type> &a ) const { return isEqual(a); }
bool operator!=( const QArray<type> &a ) const { return !isEqual(a); }
Iterator begin() { return data(); }
Iterator end() { return data() + size(); }
ConstIterator begin() const { return data(); }
ConstIterator end() const { return data() + size(); }
};
#endif // QARRAY_H
/****************************************************************************
**
**
** Definition of QAsciiDict template class
**
** Created : 920821
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QASCIIDICT_H
#define QASCIIDICT_H
#ifndef QT_H
#include "qgdict.h"
#endif // QT_H
template<class type> class Q_EXPORT QAsciiDict : public QGDict
{
public:
QAsciiDict(int size=17, bool caseSensitive=TRUE, bool copyKeys=TRUE )
: QGDict(size,AsciiKey,caseSensitive,copyKeys) {}
QAsciiDict( const QAsciiDict<type> &d ) : QGDict(d) {}
~QAsciiDict() { clear(); }
QAsciiDict<type> &operator=(const QAsciiDict<type> &d)
{ return (QAsciiDict<type>&)QGDict::operator=(d); }
uint count() const { return QGDict::count(); }
uint size() const { return QGDict::size(); }
bool isEmpty() const { return QGDict::count() == 0; }
void insert( const char *k, const type *d )
{ QGDict::look_ascii(k,(Item)d,1); }
void replace( const char *k, const type *d )
{ QGDict::look_ascii(k,(Item)d,2); }
bool remove( const char *k ) { return QGDict::remove_ascii(k); }
type *take( const char *k ) { return (type *)QGDict::take_ascii(k); }
type *find( const char *k ) const
{ return (type *)((QGDict*)this)->QGDict::look_ascii(k,0,0); }
type *operator[]( const char *k ) const
{ return (type *)((QGDict*)this)->QGDict::look_ascii(k,0,0); }
void clear() { QGDict::clear(); }
void resize( uint n ) { QGDict::resize(n); }
void statistics() const { QGDict::statistics(); }
private:
void deleteItem( Item d ) { if ( del_item ) delete (type *)d; }
};
template<class type> class Q_EXPORT QAsciiDictIterator : public QGDictIterator
{
public:
QAsciiDictIterator(const QAsciiDict<type> &d)
: QGDictIterator((QGDict &)d) {}
~QAsciiDictIterator() {}
uint count() const { return dict->count(); }
bool isEmpty() const { return dict->count() == 0; }
type *toFirst() { return (type *)QGDictIterator::toFirst(); }
operator type *() const { return (type *)QGDictIterator::get(); }
type *current() const { return (type *)QGDictIterator::get(); }
const char *currentKey() const { return QGDictIterator::getKeyAscii(); }
type *operator()() { return (type *)QGDictIterator::operator()(); }
type *operator++() { return (type *)QGDictIterator::operator++(); }
type *operator+=(uint j) { return (type *)QGDictIterator::operator+=(j);}
};
#endif // QASCIIDICT_H
This diff is collapsed.
/****************************************************************************
**
**
** Definition of QBuffer class
**
** Created : 930812
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QBUFFER_H
#define QBUFFER_H
#ifndef QT_H
#include "qiodevice.h"
#include "qstring.h"
#endif // QT_H
class Q_EXPORT QBuffer : public QIODevice
{
public:
QBuffer();
QBuffer( QByteArray );
~QBuffer();
QByteArray buffer() const;
bool setBuffer( QByteArray );
bool open( int );
void close();
void flush();
uint size() const;
int at() const;
bool at( int );
int readBlock( char *p, uint );
int writeBlock( const char *p, uint );
int readLine( char *p, uint );
int getch();
int putch( int );
int ungetch( int );
protected:
QByteArray a;
private:
uint a_len;
uint a_inc;
private: // Disabled copy constructor and operator=
#if defined(Q_DISABLE_COPY)
QBuffer( const QBuffer & );
QBuffer &operator=( const QBuffer & );
#endif
};
inline QByteArray QBuffer::buffer() const
{ return a; }
inline uint QBuffer::size() const
{ return a.size(); }
inline int QBuffer::at() const
{ return ioIndex; }
#endif // QBUFFER_H
/****************************************************************************
**
**
** Implementation of base class for all collection classes
**
** Created : 920820
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "qcollection.h"
// NOT REVISED
/*!
\class QCollection qcollection.h
\brief The QCollection class is the base class of all Qt collections.
\ingroup collection
\ingroup tools
The QCollection class is an abstract base class for the Qt \link
collection.html collection classes\endlink QDict, QList etc. via QGDict,
QGList etc.
A QCollection knows only about the number of objects in the
collection and the deletion strategy (see setAutoDelete()).
A collection is implemented using the \c Item (generic collection
item) type, which is a \c void*. The template classes that create
the real collections cast the \c Item to the required type.
\sa \link collection.html Collection Classes\endlink
*/
/*! \enum QCollection::Item
This type is the generic "item" in a QCollection.
*/
/*!
\fn QCollection::QCollection()
Constructs a collection. The constructor is protected because
QCollection is an abstract class.
*/
/*!
\fn QCollection::QCollection( const QCollection & source )
Constructs a copy of \a source with autoDelete() set to FALSE. The
constructor is protected because QCollection is an abstract class.
Note that if \a source has autoDelete turned on, copying it is a
good way to get memory leaks, reading freed memory, or both.
*/
/*!
\fn QCollection::~QCollection()
Destroys the collection. The destructor is protected because QCollection
is an abstract class.
*/
/*!
\fn bool QCollection::autoDelete() const
Returns the setting of the auto-delete option (default is FALSE).
\sa setAutoDelete()
*/
/*!
\fn void QCollection::setAutoDelete( bool enable )
Sets the auto-delete option of the collection.
Enabling auto-delete (\e enable is TRUE) will delete objects that
are removed from the collection. This can be useful if the
collection has the only reference to the objects. (Note that the
object can still be copied using the copy constructor - copying such
objects is a good way to get memory leaks, reading freed memory or
both.)
Disabling auto-delete (\e enable is FALSE) will \e not delete objects
that are removed from the collection. This is useful if the objects
are part of many collections.
The default setting is FALSE.
\sa autoDelete()
*/
/*!
\fn virtual uint QCollection::count() const
Returns the number of objects in the collection.
*/
/*!
\fn virtual void QCollection::clear()
Removes all objects from the collection. The objects will be deleted
if auto-delete has been enabled.
\sa setAutoDelete()
*/
/*!
Virtual function that creates a copy of an object that is about to
be inserted into the collection.
The default implementation returns the \e d pointer, i.e. no copy
is made.
This function is seldom reimplemented in the collection template
classes. It is not common practice to make a copy of something
that is being inserted.
\sa deleteItem()
*/
QCollection::Item QCollection::newItem( Item d )
{
return d; // just return reference
}
/*!
Virtual function that deletes an item that is about to be removed from
the collection.
The default implementation deletes \e d pointer if and only if
auto-delete has been enabled.
This function is always reimplemented in the collection template
classes.
\warning If you reimplement this function you must also reimplement
the destructor and call the virtual function clear() from your
destructor. This is due to the way virtual functions and
destructors work in C++: virtual functions in derived classes cannot
be called from a destructor. If you do not do this your
deleteItem() function will not be called when the container is
destructed.
\sa newItem(), setAutoDelete()
*/
void QCollection::deleteItem( Item d )
{
if ( del_item )
#if defined(Q_DELETING_VOID_UNDEFINED)
delete (char *)d; // default operation
#else
delete d; // default operation
#endif
}
/****************************************************************************
**
**
** Definition of base class for all collection classes
**
** Created : 920629
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QCOLLECTION_H
#define QCOLLECTION_H
#ifndef QT_H
#include "qglobal.h"
#endif // QT_H
class QGVector;
class QGList;
class QGDict;
class Q_EXPORT QCollection // inherited by all collections
{
public:
bool autoDelete() const { return del_item; }
void setAutoDelete( bool enable ) { del_item = enable; }
virtual uint count() const = 0;
virtual void clear() = 0; // delete all objects
typedef void *Item; // generic collection item
protected:
QCollection() { del_item = FALSE; } // no deletion of objects
QCollection(const QCollection &) { del_item = FALSE; }
virtual ~QCollection() {}
bool del_item; // default FALSE
virtual Item newItem( Item ); // create object
virtual void deleteItem( Item ); // delete object
};
#endif // QCOLLECTION_H
// Empty leaves all features enabled. See doc/html/features.html for choices.
// Note that disabling some features will produce a libqt that is not
// compatible with other libqt builds. Such modifications are only
// supported on Qt/Embedded where reducing the library size is important
// and where the application-suite is often a fixed set.
#define QT_DLL // Internal
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/****************************************************************************
**
**
** Definition of QDataStream class
**
** Created : 930831
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QDATASTREAM_H
#define QDATASTREAM_H
#ifndef QT_H
#include "qiodevice.h"
#include "qstring.h"
#endif // QT_H
#ifndef QT_NO_DATASTREAM
class Q_EXPORT QDataStream // data stream class
{
public:
QDataStream();
QDataStream( QIODevice * );
QDataStream( QByteArray, int mode );
virtual ~QDataStream();
QIODevice *device() const;
void setDevice( QIODevice * );
void unsetDevice();
bool atEnd() const;
bool eof() const;
enum ByteOrder { BigEndian, LittleEndian };
int byteOrder() const;
void setByteOrder( int );
bool isPrintableData() const;
void setPrintableData( bool );
int version() const;
void setVersion( int );
QDataStream &operator>>( Q_INT8 &i );
QDataStream &operator>>( Q_UINT8 &i );
QDataStream &operator>>( Q_INT16 &i );
QDataStream &operator>>( Q_UINT16 &i );
QDataStream &operator>>( Q_INT32 &i );
QDataStream &operator>>( Q_UINT32 &i );
QDataStream &operator>>( Q_INT64 &i );
QDataStream &operator>>( Q_UINT64 &i );
QDataStream &operator>>( float &f );
QDataStream &operator>>( double &f );
QDataStream &operator>>( char *&str );
QDataStream &operator<<( Q_INT8 i );
QDataStream &operator<<( Q_UINT8 i );
QDataStream &operator<<( Q_INT16 i );
QDataStream &operator<<( Q_UINT16 i );
QDataStream &operator<<( Q_INT32 i );
QDataStream &operator<<( Q_UINT32 i );
QDataStream &operator<<( Q_INT64 i );
QDataStream &operator<<( Q_UINT64 i );
QDataStream &operator<<( float f );
QDataStream &operator<<( double f );
QDataStream &operator<<( const char *str );
QDataStream &readBytes( char *&, uint &len );
QDataStream &readRawBytes( char *, uint len );
QDataStream &writeBytes( const char *, uint len );
QDataStream &writeRawBytes( const char *, uint len );
private:
QIODevice *dev;
bool owndev;
int byteorder;
bool printable;
bool noswap;
int ver;
private: // Disabled copy constructor and operator=
#if defined(Q_DISABLE_COPY)
QDataStream( const QDataStream & );
QDataStream &operator=( const QDataStream & );
#endif
};
/*****************************************************************************
QDataStream inline functions
*****************************************************************************/
inline QIODevice *QDataStream::device() const
{ return dev; }
inline bool QDataStream::atEnd() const
{ return dev ? dev->atEnd() : TRUE; }
inline bool QDataStream::eof() const
{ return atEnd(); }
inline int QDataStream::byteOrder() const
{ return byteorder; }
inline bool QDataStream::isPrintableData() const
{ return printable; }
inline void QDataStream::setPrintableData( bool p )
{ printable = p; }
inline int QDataStream::version() const
{ return ver; }
inline void QDataStream::setVersion( int v )
{ ver = v; }
inline QDataStream &QDataStream::operator>>( Q_UINT8 &i )
{ return *this >> (Q_INT8&)i; }
inline QDataStream &QDataStream::operator>>( Q_UINT16 &i )
{ return *this >> (Q_INT16&)i; }
inline QDataStream &QDataStream::operator>>( Q_UINT32 &i )
{ return *this >> (Q_INT32&)i; }
inline QDataStream &QDataStream::operator>>( Q_UINT64 &i )
{ return *this >> (Q_INT64&)i; }
inline QDataStream &QDataStream::operator<<( Q_UINT8 i )
{ return *this << (Q_INT8)i; }
inline QDataStream &QDataStream::operator<<( Q_UINT16 i )
{ return *this << (Q_INT16)i; }
inline QDataStream &QDataStream::operator<<( Q_UINT32 i )
{ return *this << (Q_INT32)i; }
inline QDataStream &QDataStream::operator<<( Q_UINT64 i )
{ return *this << (Q_INT64)i; }
#endif // QT_NO_DATASTREAM
#endif // QDATASTREAM_H
This diff is collapsed.
/****************************************************************************
**
**
** Definition of date and time classes
**
** Created : 940124
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QDATETIME_H
#define QDATETIME_H
#ifndef QT_H
#include "qstring.h"
#endif // QT_H
/*****************************************************************************
QDate class
*****************************************************************************/
class Q_EXPORT QDate
{
public:
QDate() { jd=0; } // set null date
QDate( int y, int m, int d ); // set date
bool isNull() const { return jd == 0; }
bool isValid() const; // valid date
int year() const; // 1752..
int month() const; // 1..12
int day() const; // 1..31
int dayOfWeek() const; // 1..7 (monday==1)
int dayOfYear() const; // 1..365
int daysInMonth() const; // 28..31
int daysInYear() const; // 365 or 366
virtual QString monthName( int month ) const;
virtual QString dayName( int weekday ) const;
QString toString() const;
bool setYMD( int y, int m, int d );
QDate addDays( int days ) const;
int daysTo( const QDate & ) const;
bool operator==( const QDate &d ) const { return jd == d.jd; }
bool operator!=( const QDate &d ) const { return jd != d.jd; }
bool operator<( const QDate &d ) const { return jd < d.jd; }
bool operator<=( const QDate &d ) const { return jd <= d.jd; }
bool operator>( const QDate &d ) const { return jd > d.jd; }
bool operator>=( const QDate &d ) const { return jd >= d.jd; }
static QDate currentDate();
static bool isValid( int y, int m, int d );
static bool leapYear( int year );
protected:
static uint greg2jul( int y, int m, int d );
static void jul2greg( uint jd, int &y, int &m, int &d );
private:
static const char * const monthNames[];
static const char * const weekdayNames[];
uint jd;
friend class QDateTime;
#ifndef QT_NO_DATASTREAM
friend Q_EXPORT QDataStream &operator<<( QDataStream &, const QDate & );
friend Q_EXPORT QDataStream &operator>>( QDataStream &, QDate & );
#endif
};
/*****************************************************************************
QTime class
*****************************************************************************/
class Q_EXPORT QTime
{
public:
QTime() { ds=0; } // set null time
QTime( int h, int m, int s=0, int ms=0 ); // set time
bool isNull() const { return ds == 0; }
bool isValid() const; // valid time
int hour() const; // 0..23
int minute() const; // 0..59
int second() const; // 0..59
int msec() const; // 0..999
QString toString() const;
bool setHMS( int h, int m, int s, int ms=0 );
QTime addSecs( int secs ) const;
int secsTo( const QTime & ) const;
QTime addMSecs( int ms ) const;
int msecsTo( const QTime & ) const;
bool operator==( const QTime &d ) const { return ds == d.ds; }
bool operator!=( const QTime &d ) const { return ds != d.ds; }
bool operator<( const QTime &d ) const { return ds < d.ds; }
bool operator<=( const QTime &d ) const { return ds <= d.ds; }
bool operator>( const QTime &d ) const { return ds > d.ds; }
bool operator>=( const QTime &d ) const { return ds >= d.ds; }
static QTime currentTime();
static bool isValid( int h, int m, int s, int ms=0 );
void start();
int restart();
int elapsed();
private:
static bool currentTime( QTime * );
uint ds;
friend class QDateTime;
#ifndef QT_NO_DATASTREAM
friend Q_EXPORT QDataStream &operator<<( QDataStream &, const QTime & );
friend Q_EXPORT QDataStream &operator>>( QDataStream &, QTime & );
#endif
};
/*****************************************************************************
QDateTime class
*****************************************************************************/
class Q_EXPORT QDateTime
{
public:
QDateTime() {} // set null date and null time
QDateTime( const QDate & );
QDateTime( const QDate &, const QTime & );
bool isNull() const { return d.isNull() && t.isNull(); }
bool isValid() const { return d.isValid() && t.isValid(); }
QDate date() const { return d; }
QTime time() const { return t; }
void setDate( const QDate &date ) { d=date; }
void setTime( const QTime &time ) { t=time; }
void setTime_t( uint secsSince1Jan1970UTC );
QString toString() const;
QDateTime addDays( int days ) const;
QDateTime addSecs( int secs ) const;
int daysTo( const QDateTime & ) const;
int secsTo( const QDateTime & ) const;
bool operator==( const QDateTime &dt ) const;
bool operator!=( const QDateTime &dt ) const;
bool operator<( const QDateTime &dt ) const;
bool operator<=( const QDateTime &dt ) const;
bool operator>( const QDateTime &dt ) const;
bool operator>=( const QDateTime &dt ) const;
static QDateTime currentDateTime();
private:
QDate d;
QTime t;
#ifndef QT_NO_DATASTREAM
friend Q_EXPORT QDataStream &operator<<( QDataStream &, const QDateTime &);
friend Q_EXPORT QDataStream &operator>>( QDataStream &, QDateTime & );
#endif
};
/*****************************************************************************
Date and time stream functions
*****************************************************************************/
#ifndef QT_NO_DATASTREAM
Q_EXPORT QDataStream &operator<<( QDataStream &, const QDate & );
Q_EXPORT QDataStream &operator>>( QDataStream &, QDate & );
Q_EXPORT QDataStream &operator<<( QDataStream &, const QTime & );
Q_EXPORT QDataStream &operator>>( QDataStream &, QTime & );
Q_EXPORT QDataStream &operator<<( QDataStream &, const QDateTime & );
Q_EXPORT QDataStream &operator>>( QDataStream &, QDateTime & );
#endif // QT_NO_DATASTREAM
#endif // QDATETIME_H
/****************************************************************************
**
**
** Definition of QDict template class
**
** Created : 920821
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QDICT_H
#define QDICT_H
#ifndef QT_H
#include "qgdict.h"
#endif // QT_H
template<class type> class Q_EXPORT QDict : public QGDict
{
public:
QDict(int size=17, bool caseSensitive=TRUE)
: QGDict(size,StringKey,caseSensitive,FALSE) {}
QDict( const QDict<type> &d ) : QGDict(d) {}
~QDict() { clear(); }
QDict<type> &operator=(const QDict<type> &d)
{ return (QDict<type>&)QGDict::operator=(d); }
uint count() const { return QGDict::count(); }
uint size() const { return QGDict::size(); }
bool isEmpty() const { return QGDict::count() == 0; }
void insert( const QString &k, const type *d )
{ QGDict::look_string(k,(Item)d,1); }
void replace( const QString &k, const type *d )
{ QGDict::look_string(k,(Item)d,2); }
bool remove( const QString &k ) { return QGDict::remove_string(k); }
type *take( const QString &k ) { return (type *)QGDict::take_string(k); }
type *find( const QString &k ) const
{ return (type *)((QGDict*)this)->QGDict::look_string(k,0,0); }
type *operator[]( const QString &k ) const
{ return (type *)((QGDict*)this)->QGDict::look_string(k,0,0); }
void clear() { QGDict::clear(); }
void resize( uint n ) { QGDict::resize(n); }
void statistics() const { QGDict::statistics(); }
private:
void deleteItem( Item d );
};
#if defined(Q_DELETING_VOID_UNDEFINED)
template<> inline void QDict<void>::deleteItem( Item )
{
}
#endif
template<class type> inline void QDict<type>::deleteItem( QCollection::Item d )
{
if ( del_item ) delete (type *)d;
}
template<class type> class Q_EXPORT QDictIterator : public QGDictIterator
{
public:
QDictIterator(const QDict<type> &d) :QGDictIterator((QGDict &)d) {}
~QDictIterator() {}
uint count() const { return dict->count(); }
bool isEmpty() const { return dict->count() == 0; }
type *toFirst() { return (type *)QGDictIterator::toFirst(); }
operator type *() const { return (type *)QGDictIterator::get(); }
type *current() const { return (type *)QGDictIterator::get(); }
QString currentKey() const{ return QGDictIterator::getKeyString(); }
type *operator()() { return (type *)QGDictIterator::operator()(); }
type *operator++() { return (type *)QGDictIterator::operator++(); }
type *operator+=(uint j) { return (type *)QGDictIterator::operator+=(j);}
};
#endif // QDICT_H
This diff is collapsed.
/****************************************************************************
**
**
** Definition of QDir class
**
** Created : 950427
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QDIR_H
#define QDIR_H
#ifndef QT_H
#include "qstrlist.h"
#include "qfileinfo.h"
#endif // QT_H
#ifndef QT_NO_DIR
typedef QList<QFileInfo> QFileInfoList;
typedef QListIterator<QFileInfo> QFileInfoListIterator;
class QStringList;
class Q_EXPORT QDir
{
public:
enum FilterSpec { Dirs = 0x001,
Files = 0x002,
Drives = 0x004,
NoSymLinks = 0x008,
All = 0x007,
TypeMask = 0x00F,
Readable = 0x010,
Writable = 0x020,
Executable = 0x040,
RWEMask = 0x070,
Modified = 0x080,
Hidden = 0x100,
System = 0x200,
AccessMask = 0x3F0,
DefaultFilter = -1 };
enum SortSpec { Name = 0x00,
Time = 0x01,
Size = 0x02,
Unsorted = 0x03,
SortByMask = 0x03,
DirsFirst = 0x04,
Reversed = 0x08,
IgnoreCase = 0x10,
DefaultSort = -1 };
QDir();
QDir( const QString &path, const QString &nameFilter = QString::null,
int sortSpec = Name | IgnoreCase, int filterSpec = All );
QDir( const QDir & );
virtual ~QDir();
QDir &operator=( const QDir & );
QDir &operator=( const QString &path );
virtual void setPath( const QString &path );
virtual QString path() const;
virtual QString absPath() const;
virtual QString canonicalPath() const;
virtual QString dirName() const;
virtual QString filePath( const QString &fileName,
bool acceptAbsPath = TRUE ) const;
virtual QString absFilePath( const QString &fileName,
bool acceptAbsPath = TRUE ) const;
static QString convertSeparators( const QString &pathName );
virtual bool cd( const QString &dirName, bool acceptAbsPath = TRUE );
virtual bool cdUp();
QString nameFilter() const;
virtual void setNameFilter( const QString &nameFilter );
FilterSpec filter() const;
virtual void setFilter( int filterSpec );
SortSpec sorting() const;
virtual void setSorting( int sortSpec );
bool matchAllDirs() const;
virtual void setMatchAllDirs( bool );
uint count() const;
QString operator[]( int ) const;
virtual QStrList encodedEntryList( int filterSpec = DefaultFilter,
int sortSpec = DefaultSort ) const;
virtual QStrList encodedEntryList( const QString &nameFilter,
int filterSpec = DefaultFilter,
int sortSpec = DefaultSort ) const;
virtual QStringList entryList( int filterSpec = DefaultFilter,
int sortSpec = DefaultSort ) const;
virtual QStringList entryList( const QString &nameFilter,
int filterSpec = DefaultFilter,
int sortSpec = DefaultSort ) const;
virtual const QFileInfoList *entryInfoList( int filterSpec = DefaultFilter,
int sortSpec = DefaultSort ) const;
virtual const QFileInfoList *entryInfoList( const QString &nameFilter,
int filterSpec = DefaultFilter,
int sortSpec = DefaultSort ) const;
static const QFileInfoList *drives();
virtual bool mkdir( const QString &dirName,
bool acceptAbsPath = TRUE ) const;
virtual bool rmdir( const QString &dirName,
bool acceptAbsPath = TRUE ) const;
virtual bool isReadable() const;
virtual bool exists() const;
virtual bool isRoot() const;
virtual bool isRelative() const;
virtual void convertToAbs();
virtual bool operator==( const QDir & ) const;
virtual bool operator!=( const QDir & ) const;
virtual bool remove( const QString &fileName,
bool acceptAbsPath = TRUE );
virtual bool rename( const QString &name, const QString &newName,
bool acceptAbsPaths = TRUE );
virtual bool exists( const QString &name,
bool acceptAbsPath = TRUE );
static char separator();
static bool setCurrent( const QString &path );
static QDir current();
static QDir home();
static QDir root();
static QString currentDirPath();
static QString homeDirPath();
static QString rootDirPath();
static bool match( const QStringList &filters, const QString &fileName );
static bool match( const QString &filter, const QString &fileName );
static QString cleanDirPath( const QString &dirPath );
static bool isRelativePath( const QString &path );
private:
void init();
virtual bool readDirEntries( const QString &nameFilter,
int FilterSpec, int SortSpec );
static void slashify ( QString &);
QString dPath;
QStringList *fList;
QFileInfoList *fiList;
QString nameFilt;
FilterSpec filtS;
SortSpec sortS;
uint dirty : 1;
uint allDirs : 1;
};
inline QString QDir::path() const
{
return dPath;
}
inline QString QDir::nameFilter() const
{
return nameFilt;
}
inline QDir::FilterSpec QDir::filter() const
{
return filtS;
}
inline QDir::SortSpec QDir::sorting() const
{
return sortS;
}
inline bool QDir::matchAllDirs() const
{
return allDirs;
}
inline bool QDir::operator!=( const QDir &d ) const
{
return !(*this == d);
}
struct QDirSortItem {
QString filename_cache;
QFileInfo* item;
};
#endif // QT_NO_DIR
#endif // QDIR_H
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/****************************************************************************
**
**
** Definition of QFile class
**
** Created : 930831
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the tools module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QFILE_H
#define QFILE_H
#ifndef QT_H
#include "qiodevice.h"
#include "qstring.h"
#include <stdio.h>
#endif // QT_H
class QDir;
class Q_EXPORT QFile : public QIODevice // file I/O device class
{
public:
QFile();
QFile( const QString &name );
~QFile();
QString name() const;
void setName( const QString &name );
typedef QCString (*EncoderFn)( const QString &fileName );
typedef QString (*DecoderFn)( const QCString &localfileName );
static QCString encodeName( const QString &fileName );
static QString decodeName( const QCString &localFileName );
static void setEncodingFunction( EncoderFn );
static void setDecodingFunction( DecoderFn );
bool exists() const;
static bool exists( const QString &fileName );
bool remove();
static bool remove( const QString &fileName );
bool open( int );
bool open( int, FILE * );
bool open( int, int );
void close();
void flush();
uint size() const;
int at() const;
bool at( int );
bool atEnd() const;
int readBlock( char *data, uint len );
int writeBlock( const char *data, uint len );
int writeBlock( const QByteArray& data )
{ return QIODevice::writeBlock(data); }
int readLine( char *data, uint maxlen );
int readLine( QString &, uint maxlen );
int getch();
int putch( int );
int ungetch( int );
int handle() const;
protected:
QString fn;
FILE *fh;
int fd;
int length;
bool ext_f;
void * d;
private:
void init();
QCString ungetchBuffer;
private: // Disabled copy constructor and operator=
#if defined(Q_DISABLE_COPY)
QFile( const QFile & );
QFile &operator=( const QFile & );
#endif
};
inline QString QFile::name() const
{ return fn; }
inline int QFile::at() const
{ return ioIndex; }
#endif // QFILE_H
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -169,6 +169,7 @@ class ClassDef : public Definition ...@@ -169,6 +169,7 @@ class ClassDef : public Definition
MemberList signals; MemberList signals;
MemberList friends; MemberList friends;
MemberList dcopMethods; MemberList dcopMethods;
MemberList properties;
/* member list by types */ /* member list by types */
MemberList constructors; MemberList constructors;
...@@ -178,6 +179,7 @@ class ClassDef : public Definition ...@@ -178,6 +179,7 @@ class ClassDef : public Definition
MemberList functionMembers; MemberList functionMembers;
MemberList relatedMembers; MemberList relatedMembers;
MemberList variableMembers; MemberList variableMembers;
MemberList propertyMembers;
/* user defined member groups */ /* user defined member groups */
MemberGroupList *memberGroupList; MemberGroupList *memberGroupList;
......
...@@ -417,7 +417,8 @@ static bool getLink(const char *className, ...@@ -417,7 +417,8 @@ static bool getLink(const char *className,
QCString m=removeRedundantWhiteSpace(memberName); QCString m=removeRedundantWhiteSpace(memberName);
QCString c=className; QCString c=className;
//printf("Trying `%s'::`%s'\n",c.data(),m.data()); //printf("Trying `%s'::`%s'\n",c.data(),m.data());
if (getDefs(c,m,"()",md,cd,fd,nd,gd) && md->isLinkable()) if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef) &&
md->isLinkable())
{ {
//printf("Found!\n"); //printf("Found!\n");
if (g_exampleBlock) if (g_exampleBlock)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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