diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2000-03-05 18:16:47 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2000-03-05 18:16:47 (GMT) |
commit | 69124e6ce7f023848920d2a18bc317ae92d355a2 (patch) | |
tree | fea55c7f521b9b8d4c7cdecc6579109f17cae89a /src/util.cpp | |
parent | f4f3f1676896e6fd0c0044f001eda9829d9b3f60 (diff) | |
download | Doxygen-69124e6ce7f023848920d2a18bc317ae92d355a2.zip Doxygen-69124e6ce7f023848920d2a18bc317ae92d355a2.tar.gz Doxygen-69124e6ce7f023848920d2a18bc317ae92d355a2.tar.bz2 |
Release_1.1.0-20000305
Diffstat (limited to 'src/util.cpp')
-rw-r--r-- | src/util.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/util.cpp b/src/util.cpp index b70e3a5..70b8ebc 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1968,3 +1968,47 @@ int getPrefixIndex(const QCString &name) } return 0; } + +//---------------------------------------------------------------------------- + +static void initBaseClassHierarchy(BaseClassList *bcl) +{ + BaseClassListIterator bcli(*bcl); + for ( ; bcli.current(); ++bcli) + { + ClassDef *cd=bcli.current()->classDef; + if (cd->baseClasses()->count()==0) // no base classes => new root + { + initBaseClassHierarchy(cd->baseClasses()); + } + cd->visited=FALSE; + } +} + +//---------------------------------------------------------------------------- + +void initClassHierarchy(ClassList *cl) +{ + ClassListIterator cli(*cl); + ClassDef *cd; + for ( ; (cd=cli.current()); ++cli) + { + cd->visited=FALSE; + initBaseClassHierarchy(cd->baseClasses()); + } +} + +//---------------------------------------------------------------------------- + +bool hasVisibleRoot(BaseClassList *bcl) +{ + BaseClassListIterator bcli(*bcl); + for ( ; bcli.current(); ++bcli) + { + ClassDef *cd=bcli.current()->classDef; + if (cd->isVisibleInHierarchy()) return TRUE; + hasVisibleRoot(cd->baseClasses()); + } + return FALSE; +} + |