summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaksim Osipov <codemax@codemax.ru>2014-07-04 07:40:17 (GMT)
committerMaksim Osipov <codemax@codemax.ru>2014-07-04 07:40:17 (GMT)
commit54ac45bd9f535d13b2bf98e4d71b27b4590c3dc7 (patch)
tree09cf61c5323010b3ac2c5f38a3cc1ccd6b04e25b
parentf5ff1b8e55b4dad074d2a73f1d003ff2991cf894 (diff)
downloadDoxygen-54ac45bd9f535d13b2bf98e4d71b27b4590c3dc7.zip
Doxygen-54ac45bd9f535d13b2bf98e4d71b27b4590c3dc7.tar.gz
Doxygen-54ac45bd9f535d13b2bf98e4d71b27b4590c3dc7.tar.bz2
Documentation generator: added support for C# property accessors visibility modifiers.
-rw-r--r--src/context.cpp30
-rw-r--r--src/memberdef.cpp46
-rw-r--r--src/memberdef.h4
-rw-r--r--src/xmlgen.cpp16
4 files changed, 90 insertions, 6 deletions
diff --git a/src/context.cpp b/src/context.cpp
index 05e2a7f..541cb74 100644
--- a/src/context.cpp
+++ b/src/context.cpp
@@ -2766,7 +2766,11 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private>
addProperty("isExplicit", this,&Private::isExplicit);
addProperty("isMutable", this,&Private::isMutable);
addProperty("isGettable", this,&Private::isGettable);
+ addProperty("isPrivateGettable", this,&Private::isPrivateGettable);
+ addProperty("isProtectedGettable", this,&Private::isProtectedGettable);
addProperty("isSettable", this,&Private::isSettable);
+ addProperty("isPrivateSettable", this,&Private::isPrivateSettable);
+ addProperty("isProtectedSettable", this,&Private::isProtectedSettable);
addProperty("isReadable", this,&Private::isReadable);
addProperty("isWritable", this,&Private::isWritable);
addProperty("isAddable", this,&Private::isAddable);
@@ -2855,8 +2859,12 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private>
m_cache.propertyAttrs.reset(TemplateList::alloc());
if (md && md->isProperty())
{
- if (md->isGettable()) m_cache.propertyAttrs->append("get");
- if (md->isSettable()) m_cache.propertyAttrs->append("set");
+ if (md->isGettable()) m_cache.propertyAttrs->append("get");
+ if (md->isPrivateGettable()) m_cache.propertyAttrs->append("private get");
+ if (md->isProtectedGettable()) m_cache.propertyAttrs->append("protected get");
+ if (md->isSettable()) m_cache.propertyAttrs->append("set");
+ if (md->isPrivateSettable()) m_cache.propertyAttrs->append("private set");
+ if (md->isProtectedSettable()) m_cache.propertyAttrs->append("protected set");
}
m_cache.eventAttrs.reset(TemplateList::alloc());
if (md && md->isEvent())
@@ -2948,12 +2956,28 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private>
}
TemplateVariant isGettable() const
{
- return m_memberDef->isSettable();
+ return m_memberDef->isGettable();
+ }
+ TemplateVariant isPrivateGettable() const
+ {
+ return m_memberDef->isPrivateGettable();
+ }
+ TemplateVariant isProtectedGettable() const
+ {
+ return m_memberDef->isProtectedGettable();
}
TemplateVariant isSettable() const
{
return m_memberDef->isSettable();
}
+ TemplateVariant isPrivateSettable() const
+ {
+ return m_memberDef->isPrivateSettable();
+ }
+ TemplateVariant isProtectedSettable() const
+ {
+ return m_memberDef->isProtectedSettable();
+ }
TemplateVariant isReadable() const
{
return m_memberDef->isReadable();
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 9ef3515..1069b3b 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -1729,15 +1729,27 @@ void MemberDef::writeDeclaration(OutputList &ol,
ol.docify(" [implementation]");
ol.endTypewriter();
}
+
+ bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
- if (isProperty() && (isSettable() || isGettable()))
+ if (isProperty() && (isSettable() || isGettable() ||
+ isPrivateSettable() || isPrivateGettable() ||
+ isProtectedSettable() || isProtectedGettable()))
{
ol.writeLatexSpacing();
ol.startTypewriter();
ol.docify(" [");
QStrList sl;
- if (isGettable()) sl.append("get");
- if (isSettable()) sl.append("set");
+
+ if (isGettable()) sl.append("get");
+ if (isProtectedGettable()) sl.append("protected get");
+ if (isSettable()) sl.append("set");
+ if (isProtectedSettable()) sl.append("protected set");
+ if (extractPrivate)
+ {
+ if (isPrivateGettable()) sl.append("private get");
+ if (isPrivateSettable()) sl.append("private set");
+ }
const char *s=sl.first();
while (s)
{
@@ -1940,6 +1952,7 @@ void MemberDef::getLabels(QStrList &sl,Definition *container) const
//ol.docify(" [");
SrcLangExt lang = getLanguage();
bool optVhdl = lang==SrcLangExt_VHDL;
+ bool extractPrivate = Config_getBool("EXTRACT_PRIVATE");
if (optVhdl)
{
sl.append(VhdlDocGen::trTypeString(getMemberSpecifiers()));
@@ -1955,7 +1968,14 @@ void MemberDef::getLabels(QStrList &sl,Definition *container) const
if (isMutable()) sl.append("mutable");
if (isStatic()) sl.append("static");
if (isGettable()) sl.append("get");
+ if (isProtectedGettable()) sl.append("protected get");
if (isSettable()) sl.append("set");
+ if (isProtectedSettable()) sl.append("protected set");
+ if (extractPrivate)
+ {
+ if (isPrivateGettable()) sl.append("private get");
+ if (isPrivateSettable()) sl.append("private set");
+ }
if (isAddable()) sl.append("add");
if (!isUNOProperty() && isRemovable()) sl.append("remove");
if (isRaisable()) sl.append("raise");
@@ -4193,11 +4213,31 @@ bool MemberDef::isGettable() const
return (m_impl->memSpec&Entry::Gettable)!=0;
}
+bool MemberDef::isPrivateGettable() const
+{
+ return (m_impl->memSpec&Entry::PrivateGettable)!=0;
+}
+
+bool MemberDef::isProtectedGettable() const
+{
+ return (m_impl->memSpec&Entry::ProtectedGettable)!=0;
+}
+
bool MemberDef::isSettable() const
{
return (m_impl->memSpec&Entry::Settable)!=0;
}
+bool MemberDef::isPrivateSettable() const
+{
+ return (m_impl->memSpec&Entry::PrivateSettable)!=0;
+}
+
+bool MemberDef::isProtectedSettable() const
+{
+ return (m_impl->memSpec&Entry::ProtectedSettable)!=0;
+}
+
bool MemberDef::isAddable() const
{
return (m_impl->memSpec&Entry::Addable)!=0;
diff --git a/src/memberdef.h b/src/memberdef.h
index 3259102..b3c671f 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -123,7 +123,11 @@ class MemberDef : public Definition
bool isExplicit() const;
bool isMutable() const;
bool isGettable() const;
+ bool isPrivateGettable() const;
+ bool isProtectedGettable() const;
bool isSettable() const;
+ bool isPrivateSettable() const;
+ bool isProtectedSettable() const;
bool isReadable() const;
bool isWritable() const;
bool isAddable() const;
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index efddcd4..2bb5734 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -727,10 +727,26 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De
if (md->isGettable()) t << "yes"; else t << "no";
t << "\"";
+ t << " privategettable=\"";
+ if (md->isPrivateGettable()) t << "yes"; else t << "no";
+ t << "\"";
+
+ t << " protectedgettable=\"";
+ if (md->isProtectedGettable()) t << "yes"; else t << "no";
+ t << "\"";
+
t << " settable=\"";
if (md->isSettable()) t << "yes"; else t << "no";
t << "\"";
+ t << " privatesettable=\"";
+ if (md->isPrivateSettable()) t << "yes"; else t << "no";
+ t << "\"";
+
+ t << " protectedsettable=\"";
+ if (md->isProtectedSettable()) t << "yes"; else t << "no";
+ t << "\"";
+
if (md->isAssign() || md->isCopy() || md->isRetain() || md->isStrong() || md->isWeak())
{
t << " accessor=\"";