diff options
author | Robert Lehmann <mail@robertlehmann.de> | 2011-10-08 14:55:18 +0200 |
---|---|---|
committer | Robert Lehmann <mail@robertlehmann.de> | 2011-10-08 14:55:18 +0200 |
commit | 841c5a337b570f4f238191cd687c168d5913a406 (patch) | |
tree | 4de37b7ecf91704651bc978822fa932f2e12e2dc | |
parent | c89bfd9ec0cda23d50505551c5468ebc6d24bb6c (diff) | |
download | sphinx-841c5a337b570f4f238191cd687c168d5913a406.tar.gz |
Change default visibility for C++ superclasses.
-rw-r--r-- | sphinx/domains/cpp.py | 19 | ||||
-rw-r--r-- | tests/test_cpp_domain.py | 4 |
2 files changed, 12 insertions, 11 deletions
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index 61173d44..46bb7353 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -382,9 +382,9 @@ class NamedDefExpr(DefExpr): def get_name(self): return self.name.get_name() - def get_modifiers(self): + def get_modifiers(self, visibility='public'): rv = [] - if self.visibility != 'public': + if self.visibility != visibility: rv.append(self.visibility) if self.static: rv.append(u'static') @@ -495,12 +495,13 @@ class ClassDefExpr(NamedDefExpr): def get_id(self): return self.name.get_id() - def __unicode__(self): - buf = self.get_modifiers() + def __unicode__(self, visibility='public'): + buf = self.get_modifiers(visibility) buf.append(unicode(self.name)) if self.bases: buf.append(u':') - buf.append(u', '.join(unicode(base) for base in self.bases)) + buf.append(u', '.join(base.__unicode__('private') + for base in self.bases)) return u' '.join(buf) @@ -888,7 +889,7 @@ class DefinitionParser(object): if self.skip_string(':'): self.skip_ws() while 1: - access = 'public' + access = 'private' if self.match(_visibility_re): access = self.matched_text base = self._parse_type() @@ -947,8 +948,8 @@ class CPPObject(ObjectDescription): pnode += nodes.Text(text) node += pnode - def attach_modifiers(self, node, obj): - if obj.visibility != 'public': + def attach_modifiers(self, node, obj, visibility='public'): + if obj.visibility != visibility: node += addnodes.desc_annotation(obj.visibility, obj.visibility) node += nodes.Text(' ') @@ -1026,7 +1027,7 @@ class CPPClassObject(CPPObject): if cls.bases: signode += nodes.Text(' : ') for base in cls.bases: - self.attach_modifiers(signode, base) + self.attach_modifiers(signode, base, 'private') signode += nodes.emphasis(unicode(base.name), unicode(base.name)) signode += nodes.Text(', ') signode.pop() # remove the trailing comma diff --git a/tests/test_cpp_domain.py b/tests/test_cpp_domain.py index ff44c8db..3ab8ece4 100644 --- a/tests/test_cpp_domain.py +++ b/tests/test_cpp_domain.py @@ -82,10 +82,10 @@ def test_bases(): assert unicode(parse('class', x)) == x x = 'A : private B' - assert unicode(parse('class', x)) == x + assert unicode(parse('class', x)) == 'A : B' x = 'A : public B' - assert unicode(parse('class', x)) == 'A : B' + assert unicode(parse('class', x)) == x x = 'A : B, C' assert unicode(parse('class', x)) == x |