From: Juerg Billeter Date: Thu, 8 May 2008 20:57:21 +0000 (+0000) Subject: Support properties in D-Bus services, based on patch by Yu Feng, fixes bug X-Git-Tag: VALA_0_3_2~36 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b780eed9013576da45c461da685a50fa3c66223a;p=platform%2Fupstream%2Fvala.git Support properties in D-Bus services, based on patch by Yu Feng, fixes bug 2008-05-08 Juerg Billeter * gobject/valaccodeclassbinding.vala: Support properties in D-Bus services, based on patch by Yu Feng, fixes bug 531132 svn path=/trunk/; revision=1347 --- diff --git a/ChangeLog b/ChangeLog index 607bed8..72791dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,13 @@ * gobject/valaccodeclassbinding.vala: + Support properties in D-Bus services, + based on patch by Yu Feng, fixes bug 531132 + +2008-05-08 Jürg Billeter + + * gobject/valaccodeclassbinding.vala: + Don't export override methods to D-Bus, fixes bug 531135 2008-05-08 Jürg Billeter diff --git a/gobject/valaccodeclassbinding.vala b/gobject/valaccodeclassbinding.vala index b8e245b..6899ba7 100644 --- a/gobject/valaccodeclassbinding.vala +++ b/gobject/valaccodeclassbinding.vala @@ -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"));