From 2e15fa2082ab8144e21e01510d7b49a705f797e1 Mon Sep 17 00:00:00 2001 From: Bruce Cowan <bruce@bcowan.eu> Date: Mon, 19 Feb 2018 12:54:34 +0000 Subject: [PATCH] Use GBinding --- data/interface.ui | 2 -- src/rugby-app-window.c | 28 ++++++++-------------------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/data/interface.ui b/data/interface.ui index 1e899b6..e36bc6f 100644 --- a/data/interface.ui +++ b/data/interface.ui @@ -107,7 +107,6 @@ <object class="GtkSwitch" id="tryfilter"> <property name="visible">True</property> <property name="can_focus">True</property> - <signal name="notify::active" handler="tryfilter_active_cb" swapped="no"/> </object> <packing> <property name="left_attach">1</property> @@ -118,7 +117,6 @@ <object class="GtkSwitch" id="kickfilter"> <property name="visible">True</property> <property name="can_focus">True</property> - <signal name="notify::active" handler="kickfilter_active_cb" swapped="no"/> </object> <packing> <property name="left_attach">1</property> diff --git a/src/rugby-app-window.c b/src/rugby-app-window.c index efe92a6..777a227 100644 --- a/src/rugby-app-window.c +++ b/src/rugby-app-window.c @@ -54,24 +54,6 @@ scorespin_value_changed_cb (GtkSpinButton *spin, gtk_range_set_range (GTK_RANGE (self->kickscale), 0.0, max_kicks); } -static void -tryfilter_active_cb (GObject *gobject, - GParamSpec *pspec, - RugbyAppWindow *self) -{ - gboolean active = gtk_switch_get_active (GTK_SWITCH (gobject)); - gtk_widget_set_sensitive (self->tryscale, active); -} - -static void -kickfilter_active_cb (GObject *gobject, - GParamSpec *pspec, - RugbyAppWindow *self) -{ - gboolean active = gtk_switch_get_active (GTK_SWITCH (gobject)); - gtk_widget_set_sensitive (self->kickscale, active); -} - static void scale_value_changed_cb (GtkRange *range, RugbyAppWindow *self) @@ -132,6 +114,14 @@ rugby_app_window_init (RugbyAppWindow *self) gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (self->filter), filter_visible_func, self, NULL); gtk_tree_view_set_model (GTK_TREE_VIEW (self->treeview), self->filter); + + g_object_bind_property (self->tryfilter, "active", + self->tryscale, "sensitive", + G_BINDING_DEFAULT); + g_object_bind_property (self->kickfilter, "active", + self->kickscale, "sensitive", + G_BINDING_DEFAULT); + } static void @@ -162,8 +152,6 @@ rugby_app_window_class_init (RugbyAppWindowClass *klass) gtk_widget_class_bind_template_child (widget_class, RugbyAppWindow, treeview); gtk_widget_class_bind_template_callback (widget_class, scorespin_value_changed_cb); - gtk_widget_class_bind_template_callback (widget_class, tryfilter_active_cb); - gtk_widget_class_bind_template_callback (widget_class, kickfilter_active_cb); gtk_widget_class_bind_template_callback (widget_class, scale_value_changed_cb); } -- GitLab