]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Support properties in D-Bus services, based on patch by Yu Feng, fixes bug
authorJuerg Billeter <j@bitron.ch>
Thu, 8 May 2008 20:57:21 +0000 (20:57 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Thu, 8 May 2008 20:57:21 +0000 (20:57 +0000)
2008-05-08  Juerg Billeter  <j@bitron.ch>

* gobject/valaccodeclassbinding.vala:

Support properties in D-Bus services,
based on patch by Yu Feng, fixes bug 531132

svn path=/trunk/; revision=1347

ChangeLog
gobject/valaccodeclassbinding.vala

index 607bed8e34473c625a6651eb3c80b2992cd0a789..72791dc30403261e00136ef8a84af064c2b84453 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-05-08  Jürg Billeter  <j@bitron.ch>
+
+       * gobject/valaccodeclassbinding.vala:
+
+       Support properties in D-Bus services,
+       based on patch by Yu Feng, fixes bug 531132
+
 2008-05-08  Jürg Billeter  <j@bitron.ch>
 
        * gobject/valaccodeclassbinding.vala:
index b8e245b7828a5c6dd1eb529f3a60f1b0e6e5d5da..6899ba7099b0d105501f42b0a88f2a91c23b1466 100644 (file)
@@ -859,6 +859,20 @@ public class Vala.CCodeClassBinding : CCodeTypesymbolBinding {
                }
                dbus_signals.append_c('"');
 
+               var dbus_props = new StringBuilder();
+               dbus_props.append_c ('"');
+               foreach (Property prop in cl.get_properties ()) {
+                       if (prop.access != SymbolAccessibility.PUBLIC) {
+                               continue;
+                       }
+
+                       dbus_props.append (dbus_iface_name);
+                       dbus_props.append ("\\0");
+                       dbus_props.append (prop.name);
+                       dbus_props.append ("\\0");
+               }
+               dbus_props.append_c ('"');
+
                var dbus_methods_decl = new CCodeDeclaration ("const DBusGMethodInfo");
                dbus_methods_decl.modifiers = CCodeModifiers.STATIC;
                dbus_methods_decl.add_declarator (new CCodeVariableDeclarator.with_initializer ("%s_dbus_methods[]".printf (cl.get_lower_case_cname ()), new CCodeConstant (dbus_methods.str)));
@@ -866,7 +880,7 @@ public class Vala.CCodeClassBinding : CCodeTypesymbolBinding {
 
                var dbus_object_info = new CCodeDeclaration ("const DBusGObjectInfo");
                dbus_object_info.modifiers = CCodeModifiers.STATIC;
-               dbus_object_info.add_declarator (new CCodeVariableDeclarator.with_initializer ("%s_dbus_object_info".printf (cl.get_lower_case_cname ()), new CCodeConstant ("{ 0, %s_dbus_methods, %d, %s, %s, \"\\0\" }".printf (cl.get_lower_case_cname (), method_count, blob.str, dbus_signals.str))));
+               dbus_object_info.add_declarator (new CCodeVariableDeclarator.with_initializer ("%s_dbus_object_info".printf (cl.get_lower_case_cname ()), new CCodeConstant ("{ 0, %s_dbus_methods, %d, %s, %s, %s }".printf (cl.get_lower_case_cname (), method_count, blob.str, dbus_signals.str, dbus_props.str))));
                codegen.class_init_fragment.append (dbus_object_info);
 
                var install_call = new CCodeFunctionCall (new CCodeIdentifier ("dbus_g_object_type_install_info"));