diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2013-08-26 08:18:59 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2013-10-21 18:21:33 (GMT) |
commit | 784a67d23ff81275c95af4199179da094953be2e (patch) | |
tree | 90a165d2f3327f3ad94775f616c3440d37813702 /src/util.cpp | |
parent | 74815268dd88f2cfb4473462cef3c33eebd5516a (diff) | |
download | Doxygen-784a67d23ff81275c95af4199179da094953be2e.zip Doxygen-784a67d23ff81275c95af4199179da094953be2e.tar.gz Doxygen-784a67d23ff81275c95af4199179da094953be2e.tar.bz2 |
Added rudimentary support for django like template system for output creation.
Diffstat (limited to 'src/util.cpp')
-rw-r--r-- | src/util.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/util.cpp b/src/util.cpp index 380ae94..c127362 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -5076,6 +5076,34 @@ static void initBaseClassHierarchy(BaseClassList *bcl) cd->visited=FALSE; } } +//---------------------------------------------------------------------------- + +bool classHasVisibleChildren(ClassDef *cd) +{ + BaseClassList *bcl; + + if (cd->getLanguage()==SrcLangExt_VHDL) // reverse baseClass/subClass relation + { + if (cd->baseClasses()==0) return FALSE; + bcl=cd->baseClasses(); + } + else + { + if (cd->subClasses()==0) return FALSE; + bcl=cd->subClasses(); + } + + BaseClassListIterator bcli(*bcl); + for ( ; bcli.current() ; ++bcli) + { + if (bcli.current()->classDef->isVisibleInHierarchy()) + { + return TRUE; + } + } + return FALSE; +} + //---------------------------------------------------------------------------- @@ -7988,3 +8016,44 @@ uint getUtf8CodeToUpper( const QCString& s, int idx ) //-------------------------------------------------------------------------------------- +bool namespaceHasVisibleChild(NamespaceDef *nd,bool includeClasses) +{ + if (nd->getNamespaceSDict()) + { + NamespaceSDict::Iterator cnli(*nd->getNamespaceSDict()); + NamespaceDef *cnd; + for (cnli.toFirst();(cnd=cnli.current());++cnli) + { + if (cnd->isLinkable() && cnd->localName().find('@')==-1) + { + return TRUE; + } + else if (namespaceHasVisibleChild(cnd,includeClasses)) + { + return TRUE; + } + } + } + if (includeClasses && nd->getClassSDict()) + { + ClassSDict::Iterator cli(*nd->getClassSDict()); + ClassDef *cd; + for (;(cd=cli.current());++cli) + { + if (cd->isLinkableInProject() && cd->templateMaster()==0) + { + return TRUE; + } + } + } + return FALSE; +} + +//---------------------------------------------------------------------------- + +bool classVisibleInIndex(ClassDef *cd) +{ + static bool allExternals = Config_getBool("ALLEXTERNALS"); + return (allExternals && cd->isLinkable()) || cd->isLinkableInProject(); +} + |