summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2014-08-04 18:28:32 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2014-08-04 18:28:32 (GMT)
commitc863b9bca1d75088d3285d2bbbb04eb5670648be (patch)
treec14abe4ce23eb4b530154aaa7b3f087a0625b171
parentcfde6cdd600b21bba6a2eb0ca0e7e208e014ccaf (diff)
parentd1e39098f94487f544a068b7864aa8d1b1f345cd (diff)
downloadDoxygen-c863b9bca1d75088d3285d2bbbb04eb5670648be.zip
Doxygen-c863b9bca1d75088d3285d2bbbb04eb5670648be.tar.gz
Doxygen-c863b9bca1d75088d3285d2bbbb04eb5670648be.tar.bz2
Merge branch 'groleo-master'
-rw-r--r--src/classdef.cpp19
-rw-r--r--src/classdef.h2
-rw-r--r--src/definition.h2
3 files changed, 19 insertions, 4 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 522a53c..b32d5a8 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -187,6 +187,8 @@ class ClassDefImpl
bool isGeneric;
+ bool isAnonymous;
+
uint64 spec;
};
@@ -248,6 +250,7 @@ void ClassDefImpl::init(const char *defFileName, const char *name,
isLocal=FALSE;
}
isGeneric = lang==SrcLangExt_CSharp && QCString(name).find('<')!=-1;
+ isAnonymous = QCString(name).find('@')!=-1;
}
ClassDefImpl::ClassDefImpl() : vhdlSummaryTitles(17)
@@ -1772,7 +1775,7 @@ bool ClassDef::visibleInParentsDeclList() const
static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES");
bool linkable = isLinkable();
- return (name().find('@')==-1 && !isExtension() &&
+ return (!isAnonymous() && !isExtension() &&
(protection()!=::Private || extractPrivate) &&
(linkable || (!hideUndocClasses && (!isLocal() || extractLocalClasses)))
);
@@ -2597,7 +2600,7 @@ bool ClassDef::isLinkableInProject() const
{
return !name().isEmpty() && /* has a name */
!isArtificial() && !isHidden() && /* not hidden */
- name().find('@')==-1 && /* not anonymous */
+ !isAnonymous() && /* not anonymous */
protectionLevelVisible(m_impl->prot) && /* private/internal */
(!m_impl->isLocal || extractLocal) && /* local */
(hasDocumentation() || !hideUndoc) && /* documented */
@@ -2629,7 +2632,7 @@ bool ClassDef::isVisibleInHierarchy()
return // show all classes or a subclass is visible
(allExternals || hasNonReferenceSuperClass()) &&
// and not an anonymous compound
- name().find('@')==-1 &&
+ !isAnonymous() &&
// not an artificially introduced class
/*!isArtificial() &&*/ // 1.8.2: allowed these to appear
// and not privately inherited
@@ -4608,3 +4611,13 @@ bool ClassDef::subGrouping() const
return m_impl->subGrouping;
}
+void ClassDef::setName(const char *name)
+{
+ m_impl->isAnonymous = QCString(name).find('@')!=-1;
+ Definition::setName(name);
+}
+
+bool ClassDef::isAnonymous() const
+{
+ return m_impl->isAnonymous;
+}
diff --git a/src/classdef.h b/src/classdef.h
index dee4ef4..9f0ae5f 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -310,6 +310,7 @@ class ClassDef : public Definition
bool isJavaEnum() const;
bool isGeneric() const;
+ bool isAnonymous() const;
const ClassSDict *innerClasses() const;
QCString title() const;
@@ -360,6 +361,7 @@ class ClassDef : public Definition
void addTaggedInnerClass(ClassDef *cd);
void setTagLessReference(ClassDef *cd);
+ void setName(const char *name);
//-----------------------------------------------------------------------------------
// --- actions ----
diff --git a/src/definition.h b/src/definition.h
index dfd9dad..05ea621 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -271,7 +271,7 @@ class Definition : public DefinitionIntf
//-----------------------------------------------------------------------------------
/*! Sets a new \a name for the definition */
- void setName(const char *name);
+ virtual void setName(const char *name);
/*! Sets a unique id for the symbol. Used for libclang integration. */
void setId(const char *name);