Commit 7b814d4a authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.4.7-20060810

parent cdd72954
DOXYGEN Version 1.4.7-20060809
DOXYGEN Version 1.4.7-20060810
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (09 August 2006)
Dimitri van Heesch (10 August 2006)
DOXYGEN Version 1.4.7_20060809
DOXYGEN Version 1.4.7_20060810
Please read INSTALL for compilation instructions.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (09 August 2006)
Dimitri van Heesch (dimitri@stack.nl) (10 August 2006)
......@@ -20,7 +20,7 @@ doxygen_version_minor=4
doxygen_version_revision=7
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=20060809
doxygen_version_mmn=20060810
bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
......
This diff is collapsed.
......@@ -32,6 +32,7 @@ class GroupList;
struct ListItemInfo;
struct SectionInfo;
class Definition;
class DefinitionImpl;
struct ReachableDefinition
{
......@@ -71,7 +72,10 @@ class DefinitionIntf
virtual DefType definitionType() const = 0;
};
/*! The common base class of all entity definitions found in the sources. */
/*! The common base class of all entity definitions found in the sources.
* This can be a class or a member function, or a file, or a namespace, etc.
* Use definitionType() to find which type of definition this is.
*/
class Definition : public DefinitionIntf
{
public:
......@@ -90,19 +94,18 @@ class Definition : public DefinitionIntf
//-----------------------------------------------------------------------------------
/*! Returns the name of the definition */
const QCString& name() const { return m_name; }
const QCString& name() const;
/*! Returns the local name without any scope qualifiers. */
QCString localName() const;
/*! Returns the base name of the output file that contains this
* definition.
/*! Returns the fully qualified name of this definition
*/
virtual QCString qualifiedName();
/*! Returns the name of this definition as it appears in the symbol map.
*/
QCString symbolName() const { return m_symbolName; }
QCString symbolName() const;
/*! Returns the base file name (without extension) of this definition.
* as it is referenced to/written to disk.
......@@ -113,35 +116,35 @@ class Definition : public DefinitionIntf
virtual QCString getSourceFileBase() const { ASSERT(0); return "NULL"; }
/*! Returns the detailed description of this definition */
QCString documentation() const { return m_details ? m_details->doc : QCString(""); }
QCString documentation() const;
/*! Returns the line number at which the detailed documentation was found. */
int docLine() const { return m_details ? m_details->line : 1; }
int docLine() const;
/*! Returns the file in which the detailed documentation block was found.
* This can differ from getDefFileName().
*/
QCString docFile() const { return m_details ? m_details->file : QCString("<"+m_name+">"); }
QCString docFile() const;
/*! Returns the brief description of this definition */
QCString briefDescription() const { return m_brief ? m_brief->doc : QCString(""); }
QCString briefDescription() const;
/*! Returns the line number at which the brief description was found. */
int briefLine() const { return m_brief ? m_brief->line : 1; }
int briefLine() const;
/*! Returns the file in which the brief description was found.
* This can differ from getDefFileName().
*/
QCString briefFile() const { return m_brief ? m_brief->file : QCString("<"+m_name+">"); }
QCString briefFile() const;
/*! returns the file in which this definition was found */
QCString getDefFileName() const { return m_defFileName; }
QCString getDefFileName() const;
/*! returns the file in which this definition was found */
QCString getDefFileExtension() const { return m_defFileExt; }
QCString getDefFileExtension() const;
/*! returns the line number at which the definition was found */
int getDefLine() const { return m_defLine; }
int getDefLine() const;
/*! Returns TRUE iff the definition is documented
* (which could be generated documentation)
......@@ -165,45 +168,54 @@ class Definition : public DefinitionIntf
/*! Returns TRUE iff the name is part of this project and
* may appear in the output
*/
virtual bool isVisibleInProject() const
{ return m_hidden || isLinkableInProject(); }
virtual bool isVisibleInProject() const;
/*! Returns TRUE iff the name may appear in the output */
virtual bool isVisible() const
{ return m_hidden || isLinkable(); }
virtual bool isVisible() const;
bool isHidden() const { return m_hidden; }
bool isHidden() const;
/*! If this definition was imported via a tag file, this function
* returns the tagfile for the external project. This can be
* translated into an external link target via
* Doxygen::tagDestinationDict
*/
virtual QCString getReference() const { return m_ref; }
virtual QCString getReference() const;
/*! Returns TRUE if this definition is imported via a tag file. */
virtual bool isReference() const { return !m_ref.isEmpty(); }
virtual bool isReference() const;
/*! Returns the first line of the body of this item (applicable to classes and
* functions).
*/
int getStartBodyLine() const;
/*! Returns the last line of the body of this item (applicable to classes and
* functions).
*/
int getEndBodyLine() const;
int getStartBodyLine() const { return m_body ? m_body->startLine : -1; }
int getEndBodyLine() const { return m_body ? m_body->endLine : -1; }
FileDef *getBodyDef() { return m_body ? m_body->fileDef : 0; }
/*! Returns the file in which the body of this item is located or 0 if no
* body is available.
*/
FileDef *getBodyDef();
GroupList *partOfGroups() const { return m_partOfGroups; }
GroupList *partOfGroups() const;
const QList<ListItemInfo> *xrefListItems() const;
virtual Definition *findInnerCompound(const char *name);
virtual Definition *getOuterScope() const { return m_outerScope; }
virtual Definition *getOuterScope() const;
MemberSDict *getReferencesMembers() const { return m_sourceRefsDict; }
MemberSDict *getReferencedByMembers() const { return m_sourceRefByDict; }
MemberSDict *getReferencesMembers() const;
MemberSDict *getReferencedByMembers() const;
//-----------------------------------------------------------------------------------
// ---- setters -----
//-----------------------------------------------------------------------------------
/*! Sets a new \a name for the definition */
void setName(const char *name) { m_name=name; }
void setName(const char *name);
/*! Sets the documentation of this definition to \a d. */
void setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace=TRUE);
......@@ -214,11 +226,11 @@ class Definition : public DefinitionIntf
void setBriefDescription(const char *b,const char *briefFile,int briefLine);
/*! Sets the tag file id via which this definition was imported. */
void setReference(const char *r) { m_ref=r; }
void setReference(const char *r);
/*! Sets the name of this definition as it should appear in the symbol map.
*/
void setSymbolName(const QCString &name) { m_symbolName=name; }
void setSymbolName(const QCString &name);
/*! Add the list of anchors that mark the sections that are found in the
* documentation.
......@@ -236,7 +248,7 @@ class Definition : public DefinitionIntf
virtual void addInnerCompound(Definition *d);
virtual void setOuterScope(Definition *d);
void setHidden(bool b) { m_hidden = b; }
void setHidden(bool b);
//-----------------------------------------------------------------------------------
// --- actions ----
......@@ -258,46 +270,21 @@ class Definition : public DefinitionIntf
void writeDocAnchorsToTagFile();
protected:
void setLocalName(const QCString name) { m_localName=name; }
void setLocalName(const QCString name);
private:
int getXRefListId(const char *listName) const;
void writeSourceRefList(OutputList &ol,const char *scopeName,
const QCString &text,MemberSDict *members,bool);
//-----------------------------------------------------------------------------------
// --- member variables
//-----------------------------------------------------------------------------------
SectionDict *m_sectionDict; // dictionary of all sections
MemberSDict *m_sourceRefByDict;
MemberSDict *m_sourceRefsDict;
DocInfo *m_details;
DocInfo *m_brief;
BodyInfo *m_body;
virtual void flushToDisk() {}
virtual void loadFromDisk() {}
virtual void makeResident() { if (m_impl==0) loadFromDisk(); }
virtual bool isResident() const { return m_impl!=0; }
/*! The class, namespace in which this class is located
*/
QCString m_name; // name of the definition
QCString m_localName; // local (unqualified) name of the definition
// in the future m_name should become m_localName
QCString m_symbolName;
QCString m_qualifiedName;
QCString m_ref; // reference to external documentation
QList<ListItemInfo> *m_xrefListItems;
bool m_isSymbol;
bool m_hidden;
Definition *m_outerScope;
GroupList *m_partOfGroups;
private:
DefinitionImpl *m_impl; // internal structure holding all private data
uint64 m_storagePos; // location where the item is stored in file (if impl==0)
// where the item was found
QCString m_defFileName;
int m_defLine;
QCString m_defFileExt;
};
class DefinitionList : public QList<Definition>, public DefinitionIntf
......
......@@ -171,6 +171,12 @@ void NamespaceDef::addMembersToMemberGroup()
void NamespaceDef::insertMember(MemberDef *md)
{
MemberList *allMemberList = getMemberList(MemberList::allMembersList);
if (allMemberList==0)
{
allMemberList = new MemberList(MemberList::allMembersList);
m_memberLists.append(allMemberList);
}
allMemberList->append(md);
//static bool sortBriefDocs=Config_getBool("SORT_BRIEF_DOCS");
switch(md->memberType())
......@@ -261,7 +267,8 @@ void NamespaceDef::insertMember(MemberDef *md)
void NamespaceDef::computeAnchors()
{
setAnchors(0,'a',allMemberList);
MemberList *allMemberList = getMemberList(MemberList::allMembersList);
if (allMemberList) setAnchors(0,'a',allMemberList);
}
void NamespaceDef::writeDetailedDocumentation(OutputList &ol)
......@@ -420,7 +427,8 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
if (Config_getBool("SEPARATE_MEMBER_PAGES"))
{
allMemberList->sort();
MemberList *allMemberList = getMemberList(MemberList::allMembersList);
if (allMemberList) allMemberList->sort();
writeMemberPages(ol);
}
}
......@@ -495,31 +503,35 @@ void NamespaceDef::writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) co
ol.writeString(" <div class=\"navtab\">\n");
ol.writeString(" <table>\n");
MemberListIterator mli(*allMemberList);
MemberDef *md;
for (mli.toFirst();(md=mli.current());++mli)
MemberList *allMemberList = getMemberList(MemberList::allMembersList);
if (allMemberList)
{
if (md->getNamespaceDef()==this && md->isLinkable())
MemberListIterator mli(*allMemberList);
MemberDef *md;
for (mli.toFirst();(md=mli.current());++mli)
{
ol.writeString(" <tr><td class=\"navtab\">");
if (md->isLinkableInProject())
if (md->getNamespaceDef()==this && md->isLinkable())
{
if (md==currentMd) // selected item => highlight
{
ol.writeString("<a class=\"qindexHL\" ");
}
else
ol.writeString(" <tr><td class=\"navtab\">");
if (md->isLinkableInProject())
{
ol.writeString("<a class=\"qindex\" ");
if (md==currentMd) // selected item => highlight
{
ol.writeString("<a class=\"qindexHL\" ");
}
else
{
ol.writeString("<a class=\"qindex\" ");
}
ol.writeString("href=\"");
if (createSubDirs) ol.writeString("../../");
ol.writeString(md->getOutputFileBase()+Doxygen::htmlFileExtension+"#"+md->anchor());
ol.writeString("\">");
ol.writeString(md->localName());
ol.writeString("</a>");
}
ol.writeString("href=\"");
if (createSubDirs) ol.writeString("../../");
ol.writeString(md->getOutputFileBase()+Doxygen::htmlFileExtension+"#"+md->anchor());
ol.writeString("\">");
ol.writeString(md->localName());
ol.writeString("</a>");
ol.writeString("</td></tr>\n");
}
ol.writeString("</td></tr>\n");
}
}
......@@ -529,8 +541,9 @@ void NamespaceDef::writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) co
int NamespaceDef::countMembers()
{
allMemberList->countDocMembers();
return allMemberList->numDocMembers()+classSDict->count();
MemberList *allMemberList = getMemberList(MemberList::allMembersList);
if (allMemberList) allMemberList->countDocMembers();
return (allMemberList ? allMemberList->numDocMembers() : 0)+classSDict->count();
}
void NamespaceDef::addUsingDirective(NamespaceDef *nd)
......
......@@ -101,7 +101,7 @@ class NamespaceDef : public Definition
SDict<Definition> *usingDeclList;
SDict<Definition> *m_innerCompounds;
MemberList *allMemberList;
//MemberList *allMemberList;
QList<MemberList> m_memberLists;
MemberGroupSDict *memberGroupSDict;
ClassSDict *classSDict;
......
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