summaryrefslogtreecommitdiffstats
path: root/src/classdef.cpp
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2001-11-04 19:03:17 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2001-11-04 19:03:17 (GMT)
commita29cfb7d102b893c56c1342fc738b788fc4885cf (patch)
tree8d5db673565aca95db666b5c91bda3e5d7f51efa /src/classdef.cpp
parent04e9bbe0f5ee5017392b171f21422f6dd924d52c (diff)
downloadDoxygen-a29cfb7d102b893c56c1342fc738b788fc4885cf.zip
Doxygen-a29cfb7d102b893c56c1342fc738b788fc4885cf.tar.gz
Doxygen-a29cfb7d102b893c56c1342fc738b788fc4885cf.tar.bz2
Release-1.2.11-20011104
Diffstat (limited to 'src/classdef.cpp')
-rw-r--r--src/classdef.cpp49
1 files changed, 36 insertions, 13 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 24ca56f..a9cf53b 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -1267,8 +1267,11 @@ void ClassDef::writeMemberList(OutputList &ol)
QCString name=mi->ambiguityResolutionScope+md->name();
//ol.writeListItem();
ol.writeString(" <tr bgcolor=\"#f0f0f0\"><td>");
- ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),
+ Definition *bd = md->getGroupDef();
+ if (bd==0) bd=cd;
+ ol.writeObjectLink(bd->getReference(),bd->getOutputFileBase(),
md->anchor(),name);
+
if ( md->isFunction() || md->isSignal() || md->isSlot() ||
(md->isFriend() && md->argsString()))
ol.docify(md->argsString());
@@ -2238,23 +2241,18 @@ void ClassDef::addMembersToTemplateInstance(ClassDef *cd,const char *templSpec)
//imd->setBriefDescription(md->briefDescription());
imd->setMemberSpecifiers(md->getMemberSpecifiers());
insertMember(imd);
- //printf("Adding member=%s%s to class %s\n",imd->name().data(),imd->argsString(),imd->getClassDef()->name().data());
+ //printf("Adding member=%s %s%s to class %s templSpec %s\n",
+ // imd->typeString(),imd->name().data(),imd->argsString(),
+ // imd->getClassDef()->name().data(),templSpec);
// insert imd in the list of all members
//printf("Adding member=%s class=%s\n",imd->name().data(),name().data());
-#if 0
- MemberName *mn;
- if ((mn=Doxygen::memberNameDict[imd->name()]))
- {
- mn->append(md);
- }
- else
+ MemberName *mn = Doxygen::memberNameSDict[imd->name()];
+ if (mn==0)
{
mn = new MemberName(imd->name());
- mn->append(md);
- Doxygen::memberNameDict.insert(imd->name(),mn);
- Doxygen::memberNameList.append(mn);
+ Doxygen::memberNameSDict.append(imd->name(),mn);
}
-#endif
+ mn->append(imd);
}
}
}
@@ -2378,3 +2376,28 @@ void ClassDef::addListReferences()
propertyMembers.addListReferences(this);
}
+MemberDef *ClassDef::getMemberByName(const QCString &name)
+{
+ MemberDef *xmd = 0;
+ MemberNameInfo *mni = m_allMemberNameInfoSDict->find(name);
+ if (mni)
+ {
+ const int maxInheritanceDepth = 100000;
+ int mdist=maxInheritanceDepth;
+ MemberNameInfoIterator mnii(*mni);
+ MemberInfo *mi;
+ for (mnii.toFirst();(mi=mnii.current());++mnii)
+ {
+ ClassDef *mcd=mi->memberDef->getClassDef();
+ int m=minClassDistance(this,mcd);
+ if (m<mdist && mcd->isLinkable())
+ {
+ mdist=m;
+ xmd=mi->memberDef;
+ }
+ }
+ }
+ return xmd;
+}
+
+