summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2011-02-14 07:28:03 -0500
committerDavid Zeuthen <davidz@redhat.com>2011-02-14 07:28:03 -0500
commit9d6b94176c5a128d98444206bc4d5eb37543e5e6 (patch)
tree451c57150d9200d58ecc9a47849bc968690dc28f
parent55f2c2cbc44b45150be7d1d8a257b5823ebba902 (diff)
Support org.gtk.GDBus.Name annotation
Signed-off-by: David Zeuthen <davidz@redhat.com>
-rw-r--r--src/codegen.py1
-rw-r--r--src/dbustypes.py25
-rw-r--r--src/org.project.xml2
3 files changed, 23 insertions, 5 deletions
diff --git a/src/codegen.py b/src/codegen.py
index 9f36129..e306e93 100644
--- a/src/codegen.py
+++ b/src/codegen.py
@@ -2308,5 +2308,4 @@ def codegen_main():
sys.exit(codegen.generate())
if __name__ == "__main__":
- print "foo"
codegen_main()
diff --git a/src/dbustypes.py b/src/dbustypes.py
index 89ae810..f903eb2 100644
--- a/src/dbustypes.py
+++ b/src/dbustypes.py
@@ -154,7 +154,12 @@ class Method:
self.annotations = []
def calculate_c_names(self, strip_prefix, namespace):
- self.name_lower = utils.camel_case_to_uscore(self.name).lower()
+ name = self.name
+ overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.Name')
+ if overridden_name:
+ name = overridden_name
+
+ self.name_lower = utils.camel_case_to_uscore(name).lower().replace('-', '_')
self.name_hyphen = self.name_lower.replace('_', '-')
for a in self.in_args:
@@ -183,7 +188,12 @@ class Signal:
self.annotations = []
def calculate_c_names(self, strip_prefix, namespace):
- self.name_lower = utils.camel_case_to_uscore(self.name).lower()
+ name = self.name
+ overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.Name')
+ if overridden_name:
+ name = overridden_name
+
+ self.name_lower = utils.camel_case_to_uscore(name).lower().replace('-', '_')
self.name_hyphen = self.name_lower.replace('_', '-')
#print ' --- signal'
#print ' name: ' + self.name
@@ -213,7 +223,12 @@ class Property:
raise RuntimeError('Invalid access type %s'%self.access)
def calculate_c_names(self, strip_prefix, namespace):
- self.name_lower = utils.camel_case_to_uscore(self.name).lower()
+ name = self.name
+ overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.Name')
+ if overridden_name:
+ name = overridden_name
+
+ self.name_lower = utils.camel_case_to_uscore(name).lower().replace('-', '_')
self.name_hyphen = self.name_lower.replace('_', '-')
#print ' --- property'
#print ' name: ' + self.name
@@ -236,6 +251,10 @@ class Interface:
def calculate_c_names(self, strip_prefix, namespace):
s = self.name
+ overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.Name')
+ if overridden_name:
+ s = overridden_name
+
if s.startswith(strip_prefix):
s = s[len(strip_prefix):]
s = utils.strip_dots(s)
diff --git a/src/org.project.xml b/src/org.project.xml
index ecee295..754b142 100644
--- a/src/org.project.xml
+++ b/src/org.project.xml
@@ -123,7 +123,7 @@
<!-- force various names -->
<interface name="com.acme.Rocket">
<!-- Forcing the typename via an annotation -->
- <annotation name="org.gtk.GDBus.Name" value="Rocket"/>
+ <annotation name="org.gtk.GDBus.Name" value="Rocket123"/>
<!-- ditto method -->
<method name="Ignite">