summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-01-11 19:02:39 (GMT)
committerGitHub <noreply@github.com>2021-01-11 19:02:39 (GMT)
commit9279536da7c7e6c2129fd179bef2d52da991d600 (patch)
tree9257c1ff6812c00b39ec56e32e8a068e7e4a86f4
parent220ddcbc9269f9688f6787e749668214ca365f29 (diff)
parentab483cd3ba39614dacc4f4e3901ac1cf76d413ca (diff)
downloadDoxygen-9279536da7c7e6c2129fd179bef2d52da991d600.zip
Doxygen-9279536da7c7e6c2129fd179bef2d52da991d600.tar.gz
Doxygen-9279536da7c7e6c2129fd179bef2d52da991d600.tar.bz2
Merge pull request #8321 from albert-github/feature/bug_560861
bug_560861 Class graph does not differentiate same classes in different namespace
-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());