summaryrefslogtreecommitdiffstats
path: root/src/dotclassgraph.cpp
diff options
context:
space:
mode:
authoralbert-github <albert.tests@gmail.com>2021-01-11 12:56:35 (GMT)
committeralbert-github <albert.tests@gmail.com>2021-01-11 12:56:35 (GMT)
commitab483cd3ba39614dacc4f4e3901ac1cf76d413ca (patch)
treeda6847c38629de04c2d58e789220cb559bf98271 /src/dotclassgraph.cpp
parentf8ad8a10d41db30c68afb62338186c2bc1bc9754 (diff)
downloadDoxygen-ab483cd3ba39614dacc4f4e3901ac1cf76d413ca.zip
Doxygen-ab483cd3ba39614dacc4f4e3901ac1cf76d413ca.tar.gz
Doxygen-ab483cd3ba39614dacc4f4e3901ac1cf76d413ca.tar.bz2
bug_560861 Class graph does not differentiate same classes in different namespace
The checking should not take place on the display name of the class but on its full name.
Diffstat (limited to 'src/dotclassgraph.cpp')
-rw-r--r--src/dotclassgraph.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/dotclassgraph.cpp b/src/dotclassgraph.cpp
index be318e4..e719d79 100644
--- a/src/dotclassgraph.cpp
+++ b/src/dotclassgraph.cpp
@@ -27,26 +27,31 @@ void DotClassGraph::addClass(const ClassDef *cd,DotNode *n,int prot,
int edgeStyle = (label || prot==EdgeInfo::Orange || prot==EdgeInfo::Orange2) ? EdgeInfo::Dashed : EdgeInfo::Solid;
QCString className;
+ QCString fullName;
if (cd->isAnonymous())
{
className="anonymous:";
className+=label;
+ fullName = className;
}
else if (usedName) // name is a typedef
{
className=usedName;
+ fullName = className;
}
else if (templSpec) // name has a template part
{
className=insertTemplateSpecifierInScope(cd->displayName(),templSpec);
+ fullName =insertTemplateSpecifierInScope(cd->name(),templSpec);
}
else // just a normal name
{
className=cd->displayName();
+ fullName = cd->name();
}
//printf("DotClassGraph::addClass(class='%s',parent=%s,prot=%d,label=%s,dist=%d,usedName=%s,templSpec=%s,base=%d)\n",
// className.data(),n->label().data(),prot,label,distance,usedName,templSpec,base);
- DotNode *bn = m_usedNodes->find(className);
+ DotNode *bn = m_usedNodes->find(fullName);
if (bn) // class already inserted
{
if (base)
@@ -94,7 +99,7 @@ void DotClassGraph::addClass(const ClassDef *cd,DotNode *n,int prot,
n->addParent(bn);
}
bn->setDistance(distance);
- m_usedNodes->insert(className,bn);
+ m_usedNodes->insert(fullName,bn);
//printf(" add new child node '%s' to %s hidden=%d url=%s\n",
// className.data(),n->label().data(),cd->isHidden(),tmp_url.data());