[Glade-devel] Property Binding: Fixing the big blocker

Denis Washington denisw at online.de
Tue Jan 17 18:50:35 UTC 2012


Hi,

I have finally commited all code to fix the bug in the "gbinding" 
property binding branch that I described earlier (see below). Now all 
GladeEditor subclasses in plugins/gtk+/ call the newly introduced 
glade_property_invalidate() function when a property is disabled, which 
causes all properties bound to the disabled property to be unbound 
automatically. This means that all situations where the user changes the 
sensitivity of a property with the inspector are handled correctly now 
from property binding standpoint.

If there are any other cases where glade_property_invalidate() needs to 
be called, please let me know.

Regards,
Denis

Am 15.11.2011 18:45, schrieb Denis Washington:
> Hi,
>
> After an unfortunate longer period of inactivity, I am happy to tell you
> that I started to work on bringing GObject property binding support to
> Glade again where I left off last summer after GSoC [1]. (By the way, I
> passed final evaluation! Thanks to everyone involved! Thank for
> mentoring me, Juan! :) This message is intended as a quick update what I
> am doing now.
>
> In my last message to this list [2], I mentioned that the current Glade
> codebase doesn't record changes to the sensitivity of properties (such
> as, e.g., making the "label" property of a GtkButton insensitive when
> that button is set to have a custom content widget) in its command
> (undo/redo) system, and that this makes it impossible to cleanly
> auto-remove property bindings that become invalid this way. Tristan
> identified this problem as a blocker to the adoption of the property
> binding branch [3] into master, so this is what I'm starting to tackle now.
>
> For this purpose, I created a new branch named "command-set-sensitive"
> to convert all relevant property sensitivity changes to undoable
> commands. (I am not doing this in the "gbinding" branch directly to
> allow for easier isolated reviewing and testing.) The branch introduces
> the following (as loosely discussed with Tristan):
>
> - A new command function, named glade_command_set_property_sensitive(),
> which sets the sensitivity of a single property undoably. Being more of
> a side effect, this command is always group with other commands (such as
> switching the content type of a GtkButton) and should never stand on its
> own.
>
> - A new virtual function of GladeWidgetAdaptor,
> glade_widget_adaptor_adjust_property_flags(), which can be overridden
> for each type of widget to provide a property sensitivity policy. It
> accepts a "use_command" boolean parameter which tells the function
> whether to use the command system for sensititivity changes or call
> glade_widget_property_set_sensitive() directly. (The latter is required
> when the widget is first created, or when it is loaded from a file.)
>
> - A port of a small portion of the GTK+ plugin to the new functions as
> an example. (Currently, only the GtkEntry-related port is ported.)
>
> I hope that this work enables me to fix the last remaining big blocker
> bug before the property binding branch is ready for prime time. Any
> feedback is very welcome! (@Tristan: Please review when you find the time!)
>
> Regards,
> Denis
>
> [1] https://live.gnome.org/DenisWashington_GtkBuilder
> [2] http://lists.ximian.com/pipermail/glade-devel/2011-September/001902.html
> [3] http://git.gnome.org/browse/glade/log/?h=gbinding
> _______________________________________________
> Glade-devel maillist  -  Glade-devel at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/glade-devel



More information about the Glade-devel mailing list