diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2009-08-25 11:45:32 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2009-08-25 11:45:32 (GMT) |
commit | ab2543160a96dae45f256daaeca7e093f65db6ad (patch) | |
tree | 1eb87ba34df4235398b79f257b2af06a38a3f2b2 /src/membergroup.cpp | |
parent | 2e1a370214bb47d28fed954396330ab2e33bc5a4 (diff) | |
download | Doxygen-ab2543160a96dae45f256daaeca7e093f65db6ad.zip Doxygen-ab2543160a96dae45f256daaeca7e093f65db6ad.tar.gz Doxygen-ab2543160a96dae45f256daaeca7e093f65db6ad.tar.bz2 |
Release-1.6.1
Diffstat (limited to 'src/membergroup.cpp')
-rw-r--r-- | src/membergroup.cpp | 61 |
1 files changed, 58 insertions, 3 deletions
diff --git a/src/membergroup.cpp b/src/membergroup.cpp index f20ae0f..a191354 100644 --- a/src/membergroup.cpp +++ b/src/membergroup.cpp @@ -28,6 +28,8 @@ #include "doxygen.h" #include "docparser.h" #include "marshal.h" +#include "entry.h" +#include "md5.h" //static QCString idToName(int id) //{ @@ -55,6 +57,8 @@ MemberGroup::MemberGroup(Definition *parent, m_numDocMembers = -1; m_parent = parent; m_docFile = docFile; + m_xrefListItems = 0; + doc.prepend("<a name=\""+anchor()+"\"></a>"); //printf("Member group docs=`%s'\n",doc.data()); } @@ -200,9 +204,9 @@ void MemberGroup::distributeMemberGroupDocumentation() } } -int MemberGroup::varCount() const -{ - return memberList->varCount(); +int MemberGroup::varCount() const +{ + return memberList->varCount(); } int MemberGroup::funcCount() const @@ -255,9 +259,23 @@ void MemberGroup::setInGroup(bool b) memberList->setInGroup(b); } +QCString MemberGroup::anchor() const +{ + uchar md5_sig[16]; + QCString sigStr(33); + MD5Buffer((const unsigned char *)grpHeader.data(),grpHeader.length(),md5_sig); + MD5SigToString(md5_sig,sigStr.data(),33); + return "amgrp"+sigStr; +} + void MemberGroup::addListReferences(Definition *def) { memberList->addListReferences(def); + if (m_xrefListItems && def) + { + addRefItem(m_xrefListItems,theTranslator->trGroup(TRUE,TRUE), + def->getOutputFileBase()+"#"+anchor(),grpHeader,0); + } } void MemberGroup::findSectionsInDocumentation() @@ -280,6 +298,7 @@ void MemberGroup::marshal(StorageIntf *s) marshalInt(s,m_numDocMembers); marshalObjPointer(s,m_parent); marshalQCString(s,m_docFile); + marshalItemInfoList (Doxygen::symbolStorage,m_xrefListItems); } void MemberGroup::unmarshal(StorageIntf *s) @@ -296,5 +315,41 @@ void MemberGroup::unmarshal(StorageIntf *s) m_numDocMembers = unmarshalInt(s); m_parent = (Definition *)unmarshalObjPointer(s); m_docFile = unmarshalQCString(s); + m_xrefListItems = unmarshalItemInfoList (Doxygen::symbolStorage); } +void MemberGroup::setRefItems(const QList<ListItemInfo> *sli) +{ + if (sli) + { + // deep copy the list + if (m_xrefListItems==0) + { + m_xrefListItems=new QList<ListItemInfo>; + m_xrefListItems->setAutoDelete(TRUE); + } + QListIterator<ListItemInfo> slii(*sli); + ListItemInfo *lii; + for (slii.toFirst();(lii=slii.current());++slii) + { + m_xrefListItems->append(new ListItemInfo(*lii)); + } + } +} +//-------------------------------------------------------------------------- + +void MemberGroupInfo::setRefItems(const QList<ListItemInfo> *sli) +{ + if (!sli) return; + if (m_sli==0) + { + m_sli = new QList<ListItemInfo>; + m_sli->setAutoDelete(TRUE); + } + QListIterator<ListItemInfo> slii(*sli); + ListItemInfo *ili; + for (slii.toFirst();(ili=slii.current());++slii) + { + m_sli->append(new ListItemInfo(*ili)); + } +} |