summaryrefslogtreecommitdiffstats
path: root/src/dotdirdeps.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-03-09 20:49:47 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-03-09 20:49:47 (GMT)
commit30887ace1d06cc76bdd1b5aa3895e21dc39fddab (patch)
tree446c93973595a9fd2041d36b1f35de499b1562db /src/dotdirdeps.cpp
parenta8673fb74375089a432aa23230396335a46df5d3 (diff)
downloadDoxygen-30887ace1d06cc76bdd1b5aa3895e21dc39fddab.zip
Doxygen-30887ace1d06cc76bdd1b5aa3895e21dc39fddab.tar.gz
Doxygen-30887ace1d06cc76bdd1b5aa3895e21dc39fddab.tar.bz2
Fix regression when creating directory graphs
Diffstat (limited to 'src/dotdirdeps.cpp')
-rw-r--r--src/dotdirdeps.cpp64
1 files changed, 34 insertions, 30 deletions
diff --git a/src/dotdirdeps.cpp b/src/dotdirdeps.cpp
index 59ad75f..66a68df 100644
--- a/src/dotdirdeps.cpp
+++ b/src/dotdirdeps.cpp
@@ -90,51 +90,55 @@ void writeDotDirDepGraph(FTextStream &t,const DirDef *dd,bool linkRelations)
}
// add nodes for other used directories
- QDictIterator<UsedDir> udi(*dd->usedDirs());
- UsedDir *udir;
- //printf("*** For dir %s\n",shortName().data());
- for (udi.toFirst();(udir=udi.current());++udi)
- // for each used dir (=directly used or a parent of a directly used dir)
{
- const DirDef *usedDir=udir->dir();
- const DirDef *dir=dd;
- while (dir)
+ QDictIterator<UsedDir> udi(*dd->usedDirs());
+ UsedDir *udir;
+ //printf("*** For dir %s\n",shortName().data());
+ for (udi.toFirst();(udir=udi.current());++udi)
+ // for each used dir (=directly used or a parent of a directly used dir)
{
- //printf("*** check relation %s->%s same_parent=%d !%s->isParentOf(%s)=%d\n",
- // dir->shortName().data(),usedDir->shortName().data(),
- // dir->parent()==usedDir->parent(),
- // usedDir->shortName().data(),
- // shortName().data(),
- // !usedDir->isParentOf(this)
- // );
- if (dir!=usedDir && dir->parent()==usedDir->parent() &&
- !usedDir->isParentOf(dd))
- // include if both have the same parent (or no parent)
+ const DirDef *usedDir=udir->dir();
+ const DirDef *dir=dd;
+ while (dir)
{
- t << " " << usedDir->getOutputFileBase() << " [shape=box label=\""
- << usedDir->shortName() << "\"";
- if (usedDir->isCluster())
+ //printf("*** check relation %s->%s same_parent=%d !%s->isParentOf(%s)=%d\n",
+ // dir->shortName().data(),usedDir->shortName().data(),
+ // dir->parent()==usedDir->parent(),
+ // usedDir->shortName().data(),
+ // shortName().data(),
+ // !usedDir->isParentOf(this)
+ // );
+ if (dir!=usedDir && dir->parent()==usedDir->parent() &&
+ !usedDir->isParentOf(dd))
+ // include if both have the same parent (or no parent)
{
- if (!Config_getBool(DOT_TRANSPARENT))
+ t << " " << usedDir->getOutputFileBase() << " [shape=box label=\""
+ << usedDir->shortName() << "\"";
+ if (usedDir->isCluster())
{
- t << " fillcolor=\"white\" style=\"filled\"";
+ if (!Config_getBool(DOT_TRANSPARENT))
+ {
+ t << " fillcolor=\"white\" style=\"filled\"";
+ }
+ t << " color=\"red\"";
}
- t << " color=\"red\"";
+ t << " URL=\"" << usedDir->getOutputFileBase()
+ << Doxygen::htmlFileExtension << "\"];\n";
+ dirsInGraph.insert(usedDir->getOutputFileBase(),usedDir);
+ break;
}
- t << " URL=\"" << usedDir->getOutputFileBase()
- << Doxygen::htmlFileExtension << "\"];\n";
- dirsInGraph.insert(usedDir->getOutputFileBase(),usedDir);
- break;
+ dir=dir->parent();
}
- dir=dir->parent();
}
}
// add relations between all selected directories
const DirDef *dir;
QDictIterator<DirDef> di(dirsInGraph);
- for (di.toFirst();(dir=di.current());++di) // foreach dir in the graph
+ for (;(dir=di.current());++di) // foreach dir in the graph
{
+ QDictIterator<UsedDir> udi(*dir->usedDirs());
+ UsedDir *udir;
for (udi.toFirst();(udir=udi.current());++udi) // foreach used dir
{
const DirDef *usedDir=udir->dir();