From: Juerg Billeter Date: Fri, 23 May 2008 19:25:16 +0000 (+0000) Subject: Support [DBus (visible = false)] for methods, properties, and signals, X-Git-Tag: VALA_0_3_3~146 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=78da0133b60ed1cef38dd0998052b1fde0b22ea7;p=thirdparty%2Fvala.git Support [DBus (visible = false)] for methods, properties, and signals, 2008-05-23 Juerg Billeter * gobject/valaccodeclassbinding.vala: Support [DBus (visible = false)] for methods, properties, and signals, based on patch by Ali Sabil, fixes bug 532254 svn path=/trunk/; revision=1412 --- diff --git a/ChangeLog b/ChangeLog index 27946e9b1..18a3d78d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-05-23 Jürg Billeter + + * gobject/valaccodeclassbinding.vala: + + Support [DBus (visible = false)] for methods, properties, and + signals, based on patch by Ali Sabil, fixes bug 532254 + 2008-05-23 Jürg Billeter * vapi/dbus-glib-1.vapi: add DBus.ObjectPath class diff --git a/gobject/valaccodeclassbinding.vala b/gobject/valaccodeclassbinding.vala index 28c73d00d..2c0d8fa92 100644 --- a/gobject/valaccodeclassbinding.vala +++ b/gobject/valaccodeclassbinding.vala @@ -743,6 +743,17 @@ public class Vala.CCodeClassBinding : CCodeTypesymbolBinding { return new CCodeExpressionStatement (cwarn); } + bool is_dbus_visible (CodeNode node) { + var dbus_attribute = node.get_attribute ("DBus"); + if (dbus_attribute != null + && dbus_attribute.has_argument ("visible") + && !dbus_attribute.get_bool ("visible")) { + return false; + } + + return true; + } + void register_dbus_info () { var dbus = cl.get_attribute ("DBus"); if (dbus == null) { @@ -768,6 +779,9 @@ public class Vala.CCodeClassBinding : CCodeTypesymbolBinding { || m.overrides || m.access != SymbolAccessibility.PUBLIC) { continue; } + if (!is_dbus_visible (m)) { + continue; + } var parameters = new Gee.ArrayList (); foreach (FormalParameter param in m.get_parameters ()) { @@ -860,6 +874,9 @@ public class Vala.CCodeClassBinding : CCodeTypesymbolBinding { if (sig.access != SymbolAccessibility.PUBLIC) { continue; } + if (!is_dbus_visible (sig)) { + continue; + } dbus_signals.append (dbus_iface_name); dbus_signals.append ("\\0"); @@ -874,6 +891,9 @@ public class Vala.CCodeClassBinding : CCodeTypesymbolBinding { if (prop.access != SymbolAccessibility.PUBLIC) { continue; } + if (!is_dbus_visible (prop)) { + continue; + } dbus_props.append (dbus_iface_name); dbus_props.append ("\\0");