diff options
Diffstat (limited to 'src/dot.cpp')
-rw-r--r-- | src/dot.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/dot.cpp b/src/dot.cpp index f07a365..d82ffa8 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -2328,7 +2328,10 @@ void DotGfxHierarchyTable::createGraph(DotNode *n,FTextStream &out, QCString baseName; QCString imgExt = getDotImageExtension(); QCString imgFmt = Config_getEnum(DOT_IMAGE_FORMAT); - baseName.sprintf("inherit_graph_%d",id); + if (m_prefix.isEmpty()) + baseName.sprintf("inherit_graph_%d",id); + else + baseName.sprintf("%sinherit_graph_%d",m_prefix.data(),id); QCString imgName = baseName+"."+ imgExt; QCString mapName = baseName+".map"; QCString absImgName = QCString(d.absPath().data())+"/"+imgName; @@ -2520,6 +2523,7 @@ void DotGfxHierarchyTable::addHierarchy(DotNode *n,ClassDef *cd,bool hideSuper) void DotGfxHierarchyTable::addClassList(ClassSDict *cl) { + static bool sliceOpt = Config_getBool(OPTIMIZE_OUTPUT_SLICE); ClassSDict::Iterator cli(*cl); ClassDef *cd; for (cli.toLast();(cd=cli.current());--cli) @@ -2531,6 +2535,10 @@ void DotGfxHierarchyTable::addClassList(ClassSDict *cl) { continue; } + if (sliceOpt && cd->compoundType() != m_classType) + { + continue; + } if (!hasVisibleRoot(cd->baseClasses()) && cd->isVisibleInHierarchy() ) // root node in the forest @@ -2563,7 +2571,10 @@ void DotGfxHierarchyTable::addClassList(ClassSDict *cl) } } -DotGfxHierarchyTable::DotGfxHierarchyTable() : m_curNodeNumber(1) +DotGfxHierarchyTable::DotGfxHierarchyTable(const char *prefix,ClassDef::CompoundType ct) + : m_prefix(prefix) + , m_classType(ct) + , m_curNodeNumber(1) { m_rootNodes = new QList<DotNode>; m_usedNodes = new QDict<DotNode>(1009); |