diff options
Diffstat (limited to 'src/dot.cpp')
-rw-r--r-- | src/dot.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/dot.cpp b/src/dot.cpp index e1e31c2..724c549 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -273,8 +273,11 @@ void DotNode::deleteNode() void DotNode::writeBox(QTextStream &t,bool hasNonReachableChildren) { - const char *labCol = (hasNonReachableChildren) ? "red" : - (m_url.isEmpty() ? "grey" : "black"); + const char *labCol = + m_url.isEmpty() ? "grey" : // non link + ( + (hasNonReachableChildren) ? "red" : "black" + ); t << " Node" << m_number << " [shape=\"box\",label=\"" << m_label << "\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\""; t << ",color=\"" << labCol << "\""; @@ -528,10 +531,23 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper) if (bClass->isVisibleInHierarchy() && hasVisibleRoot(bClass->baseClasses())) { DotNode *bn; - //printf("Found visible class=`%s'\n",bClass->name().data()); + //printf("Node `%s' Found visible class=`%s'\n",n->m_label.data(), + // bClass->name().data()); if ((bn=m_usedNodes->find(bClass->name()))) // node already present { - if (n->m_children==0 || n->m_children->findRef(bn)==0) // no arrow yet + //printf("Base node `%s'\n",bn->m_label.data()); + //if (n->m_children) + //{ + // QListIterator<DotNode> dnli(*n->m_children); + // DotNode *cn; + // for (dnli.toFirst();(cn=dnli.current());++dnli) + // { + // printf("Child node `%s'\n",cn->m_label.data()); + // } + // printf("ref node = %p\n",n->m_children->findRef(bn)); + //} + + if (n->m_children==0 || n->m_children->findRef(bn)==-1) // no arrow yet { n->addChild(bn,bcd->prot); bn->addParent(n); @@ -542,6 +558,10 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper) // bn->m_parents ? bn->m_parents->count() : 0 // ); } + //else + //{ + // printf("Class already has an arrow!\n"); + //} } else { @@ -598,6 +618,7 @@ DotGfxHierarchyTable::DotGfxHierarchyTable() (cd->getReference()+"$"+cd->getOutputFileBase()).data() : 0 ); + //m_usedNodes->clear(); m_usedNodes->insert(cd->name(),n); m_rootNodes->insert(0,n); |