[glib/glib-2-34] gdbus-codegen: make members of an interface inherit the "Since" annotation
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/glib-2-34] gdbus-codegen: make members of an interface inherit the "Since" annotation
- Date: Wed, 3 Oct 2012 15:14:55 +0000 (UTC)
commit 654d404af6e4628df72c68e218cf5afec0e120f9
Author: David Zeuthen <zeuthen gmail com>
Date: Wed Oct 3 11:07:57 2012 -0400
gdbus-codegen: make members of an interface inherit the "Since" annotation
This is the expected (and sane) behavior - without this bug-fix you'd
have to add "Since" to every member of a newly added D-Bus interface.
Also show-case this in the codegen example.
Signed-off-by: David Zeuthen <zeuthen gmail com>
.../gdbus-object-manager-example-sections.txt | 6 ++++++
gio/gdbus-2.0/codegen/dbustypes.py | 18 ++++++++++++------
.../gdbus-example-objectmanager.xml | 13 +++++++++++++
3 files changed, 31 insertions(+), 6 deletions(-)
---
diff --git a/docs/reference/gio/gdbus-object-manager-example/gdbus-object-manager-example-sections.txt b/docs/reference/gio/gdbus-object-manager-example/gdbus-object-manager-example-sections.txt
index a5594ae..1e3b8b8 100644
--- a/docs/reference/gio/gdbus-object-manager-example/gdbus-object-manager-example-sections.txt
+++ b/docs/reference/gio/gdbus-object-manager-example/gdbus-object-manager-example-sections.txt
@@ -11,8 +11,14 @@ example_animal_call_poke_sync
example_animal_complete_poke
example_animal_emit_jumped
example_animal_get_mood
+example_animal_get_foo
+example_animal_get_bar
example_animal_dup_mood
+example_animal_dup_foo
+example_animal_dup_bar
example_animal_set_mood
+example_animal_set_foo
+example_animal_set_bar
ExampleAnimalProxy
ExampleAnimalProxyClass
example_animal_proxy_new
diff --git a/gio/gdbus-2.0/codegen/dbustypes.py b/gio/gdbus-2.0/codegen/dbustypes.py
index 5fdb9a1..38eb0c4 100644
--- a/gio/gdbus-2.0/codegen/dbustypes.py
+++ b/gio/gdbus-2.0/codegen/dbustypes.py
@@ -235,11 +235,13 @@ class Method:
self.since = ''
self.deprecated = False
- def post_process(self, interface_prefix, cns, cns_upper, cns_lower):
+ def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface):
if len(self.doc_string) == 0:
self.doc_string = utils.lookup_docs(self.annotations)
if len(self.since) == 0:
self.since = utils.lookup_since(self.annotations)
+ if len(self.since) == 0:
+ self.since = containing_iface.since
name = self.name
overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name')
@@ -272,11 +274,13 @@ class Signal:
self.since = ''
self.deprecated = False
- def post_process(self, interface_prefix, cns, cns_upper, cns_lower):
+ def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface):
if len(self.doc_string) == 0:
self.doc_string = utils.lookup_docs(self.annotations)
if len(self.since) == 0:
self.since = utils.lookup_since(self.annotations)
+ if len(self.since) == 0:
+ self.since = containing_iface.since
name = self.name
overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name')
@@ -319,11 +323,13 @@ class Property:
self.since = ''
self.deprecated = False
- def post_process(self, interface_prefix, cns, cns_upper, cns_lower):
+ def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface):
if len(self.doc_string) == 0:
self.doc_string = utils.lookup_docs(self.annotations)
if len(self.since) == 0:
self.since = utils.lookup_since(self.annotations)
+ if len(self.since) == 0:
+ self.since = containing_iface.since
name = self.name
overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name')
@@ -411,10 +417,10 @@ class Interface:
self.deprecated = True
for m in self.methods:
- m.post_process(interface_prefix, cns, cns_upper, cns_lower)
+ m.post_process(interface_prefix, cns, cns_upper, cns_lower, self)
for s in self.signals:
- s.post_process(interface_prefix, cns, cns_upper, cns_lower)
+ s.post_process(interface_prefix, cns, cns_upper, cns_lower, self)
for p in self.properties:
- p.post_process(interface_prefix, cns, cns_upper, cns_lower)
+ p.post_process(interface_prefix, cns, cns_upper, cns_lower, self)
diff --git a/gio/tests/gdbus-object-manager-example/gdbus-example-objectmanager.xml b/gio/tests/gdbus-object-manager-example/gdbus-example-objectmanager.xml
index 1036b7a..472b257 100644
--- a/gio/tests/gdbus-object-manager-example/gdbus-example-objectmanager.xml
+++ b/gio/tests/gdbus-object-manager-example/gdbus-example-objectmanager.xml
@@ -45,6 +45,19 @@
<signal name="Jumped">
<arg type="d" name="height"/>
</signal>
+
+ <!--
+ Foo:
+ Property with no <quote>since</quote> annotation (should inherit the 2.30 from its containing interface).
+ -->
+ <property name="Foo" type="s" access="read"/>
+
+ <!--
+ Bar:
+ @since: 2.36
+ Property with a later <quote>since</quote> annotation.
+ -->
+ <property name="Bar" type="s" access="read"/>
</interface>
<!-- org.gtk.GDBus.Example.ObjectManager.Cat:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]