[recipes] Connect to notify::unsaved in the ui file



commit 51bad9b1a65e6aa7e48024c6de369a2559db025d
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Mar 11 13:12:00 2017 -0500

    Connect to notify::unsaved in the ui file
    
    Just a small cleanup to the code; also move the signal
    handler to a different place in the sources.

 src/gr-window.c  |   27 ++++++++++++++-------------
 src/gr-window.ui |    4 +++-
 2 files changed, 17 insertions(+), 14 deletions(-)
---
diff --git a/src/gr-window.c b/src/gr-window.c
index 102833b..1eb61d1 100644
--- a/src/gr-window.c
+++ b/src/gr-window.c
@@ -112,19 +112,6 @@ typedef struct
 } BackEntry;
 
 
-static
-void make_save_sensitive (GrEditPage *edit_page, GParamSpec *pspec, gpointer data)
-{
-        GrWindow *window = GR_WINDOW (data);
-        gboolean unsaved;
-
-        g_object_get (G_OBJECT (edit_page), "unsaved", &unsaved, NULL);
-        if (unsaved)
-                gtk_widget_set_sensitive (window->save_button,TRUE);
-        else
-                gtk_widget_set_sensitive (window->save_button,FALSE);
-}
-
 static void
 back_entry_free (BackEntry *entry)
 {
@@ -757,6 +744,19 @@ done_shopping (GrWindow *window)
         gr_recipe_store_clear_shopping_list (store);
 }
 
+static
+void make_save_sensitive (GrEditPage *edit_page, GParamSpec *pspec, gpointer data)
+{
+        GrWindow *window = GR_WINDOW (data);
+        gboolean unsaved;
+
+        g_object_get (G_OBJECT (edit_page), "unsaved", &unsaved, NULL);
+        if (unsaved)
+                gtk_widget_set_sensitive (window->save_button,TRUE);
+        else
+                gtk_widget_set_sensitive (window->save_button,FALSE);
+}
+
 static void
 gr_window_class_init (GrWindowClass *klass)
 {
@@ -819,6 +819,7 @@ gr_window_class_init (GrWindowClass *klass)
         gtk_widget_class_bind_template_callback (widget_class, shopping_title_changed);
         gtk_widget_class_bind_template_callback (widget_class, done_shopping);
         gtk_widget_class_bind_template_callback (widget_class, close_shopping_done);
+        gtk_widget_class_bind_template_callback (widget_class, make_save_sensitive);
 }
 
 static GtkClipboard *
diff --git a/src/gr-window.ui b/src/gr-window.ui
index ea7de13..8f4bfca 100644
--- a/src/gr-window.ui
+++ b/src/gr-window.ui
@@ -471,7 +471,9 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GrEditPage" id="edit_page"/>
+                  <object class="GrEditPage" id="edit_page">
+                    <signal name="notify::unsaved" handler="make_save_sensitive"/>
+                  </object>
                   <packing>
                     <property name="name">edit</property>
                   </packing>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]