[recipes/ekta-master: 2/3] Rough commit-2 make save sensitive changing fields in edit page



commit 70aaabe737f2b2f8d5de01284ebb84e1161f0bf2
Author: Ekta Nandwani <mailnandwaniekta gmail com>
Date:   Thu Mar 9 05:03:49 2017 +0530

    Rough commit-2 make save sensitive changing fields in edit page

 src/gr-edit-page.c  |   34 +++++++++++++++++++++-------------
 src/gr-edit-page.ui |    4 ++--
 src/gr-window.c     |   12 ++++++++----
 3 files changed, 31 insertions(+), 19 deletions(-)
---
diff --git a/src/gr-edit-page.c b/src/gr-edit-page.c
index c1866d2..7c94f3d 100644
--- a/src/gr-edit-page.c
+++ b/src/gr-edit-page.c
@@ -141,18 +141,27 @@ struct _GrEditPage
 };
 
 G_DEFINE_TYPE (GrEditPage, gr_edit_page, GTK_TYPE_BOX)
-/*
+
 enum {
         PROP_0,
         PROP_UNSAVED,
         N_PROPS
 };
-*/
+
 
 static char *get_text_view_text (GtkTextView *textview);
 static void  set_text_view_text (GtkTextView *textview,
                                  const char  *text);
 
+static
+void has_unsaved_changes(GrEditPage *page){
+
+    g_printf("in unsaved changes");
+    page->unsaved=TRUE;
+    g_object_notify (G_OBJECT (page), "has-unsaved-changes");
+}
+
+
 static void
 dismiss_error (GrEditPage *page)
 {
@@ -253,6 +262,7 @@ static void
 add_image_cb (GrEditPage *page)
 {
         gr_image_viewer_add_image (GR_IMAGE_VIEWER (page->images));
+        has_unsaved_changes(page);
 }
 
 static char *
@@ -326,12 +336,14 @@ static void
 rotate_image_left_cb (GrEditPage *page)
 {
         gr_image_viewer_rotate_image (GR_IMAGE_VIEWER (page->images), 90);
+        has_unsaved_changes(page);
 }
 
 static void
 rotate_image_right_cb (GrEditPage *page)
 {
         gr_image_viewer_rotate_image (GR_IMAGE_VIEWER (page->images), 270);
+        has_unsaved_changes(page);
 }
 
 static void
@@ -1414,7 +1426,7 @@ next_step (GrEditPage *page)
         gr_cooking_view_next_step (GR_COOKING_VIEW (page->cooking_view));
         update_steppers (page);
 }
-/*
+
 static void
 gr_edit_page_set_property (GObject      *object,
                            guint         prop_id,
@@ -1422,11 +1434,10 @@ gr_edit_page_set_property (GObject      *object,
                            GParamSpec   *pspec)
 {
     GrEditPage *self = GR_EDIT_PAGE(object);
-    gboolean x;
+    
 
     switch (prop_id) {
         case PROP_UNSAVED:
-                
                 break;
 
         default:
@@ -1445,21 +1456,14 @@ gr_edit_page_get_property (GObject    *object,
 
         switch (prop_id) {
         case PROP_UNSAVED:
-                
                 break;
 
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
         }
-}*/
-
-gboolean has_unsaved_changes(GrEditPage *page){
-
-    
-    page->unsaved=TRUE;
-    g_signal_emit(G_OBJECT(*page),"notify::has_unsaved_changes", page->unsaved);
 }
 
+
 static void
 gr_edit_page_class_init (GrEditPageClass *klass)
 {
@@ -1469,6 +1473,8 @@ gr_edit_page_class_init (GrEditPageClass *klass)
 
         object_class->finalize = edit_page_finalize;
         object_class->set_property = gr_edit_page_set_property;
+        object_class->get_property = gr_edit_page_get_property;
+
 
         pspec = g_param_spec_boolean ("unsaved", NULL, NULL,
                                       FALSE,
@@ -1573,6 +1579,7 @@ gr_edit_page_class_init (GrEditPageClass *klass)
         gtk_widget_class_bind_template_callback (widget_class, preview_visible_changed);
         gtk_widget_class_bind_template_callback (widget_class, prev_step);
         gtk_widget_class_bind_template_callback (widget_class, next_step);
+        gtk_widget_class_bind_template_callback (widget_class, has_unsaved_changes);
 }
 
 GtkWidget *
@@ -1905,6 +1912,7 @@ gr_edit_page_clear (GrEditPage *page)
         images = gr_image_array_new ();
         g_object_set (page->images, "images", images, NULL);
         g_array_unref (images);
+        g_printf("inside gr_edit_page_clear");
 
         if (page->index_handler_id) {
                 g_signal_handler_disconnect (page->recipe, page->index_handler_id);
diff --git a/src/gr-edit-page.ui b/src/gr-edit-page.ui
index 3fcb3fd..8f0e57a 100644
--- a/src/gr-edit-page.ui
+++ b/src/gr-edit-page.ui
@@ -566,7 +566,7 @@
                             <property name="left-margin">10</property>
                             <property name="right-margin">10</property>
                             <property name="bottom-margin">10</property>
-                            <signal name="changed" handler="has_unsaved_changes"/>
+                            <!-- <signal name="changed" handler="has_unsaved_changes"/> -->
                           </object>
                         </child>
                       </object>
@@ -711,7 +711,7 @@
                         <property name="left-margin">10</property>
                         <property name="right-margin">10</property>
                         <property name="bottom-margin">10</property>
-                        <signal name="clicked" handler="has_unsaved_changes"/>
+                        <!-- <signal name="changed" handler="has_unsaved_changes"/> -->
                       </object>
                     </child>
                       </object>
diff --git a/src/gr-window.c b/src/gr-window.c
index 86a5c4c..e1558b8 100644
--- a/src/gr-window.c
+++ b/src/gr-window.c
@@ -58,6 +58,7 @@ struct _GrWindow
         GtkWidget *back_button;
         GtkWidget *search_button;
         GtkWidget *cooking_button;
+        GtkWidget *save_button;
         GtkWidget *search_bar;
         GtkWidget *main_stack;
         GtkWidget *recipes_page;
@@ -107,12 +108,12 @@ typedef struct
         char **search;
 } BackEntry;
 
-g_signal_connect (GtkWidget *edit_page, "notify", G_CALLBACK (make_save_sensitive()), window);
 
-void make_save_sensitive(GrWindow *window)
+static
+void make_save_sensitive(GrWindow *window, GParamSpec *pspec, gpointer data)
 {
-    GtkWidget *widget =(GR_WINDOW(window->save_button));
-    gtk_widget_set_sensitive(*widget);
+    
+    gtk_widget_set_sensitive(window->save_button,TRUE);
 }
 
 static void
@@ -659,6 +660,7 @@ gr_window_class_init (GrWindowClass *klass)
         gtk_widget_class_bind_template_child (widget_class, GrWindow, back_button);
         gtk_widget_class_bind_template_child (widget_class, GrWindow, search_button);
         gtk_widget_class_bind_template_child (widget_class, GrWindow, cooking_button);
+        gtk_widget_class_bind_template_child (widget_class, GrWindow, save_button);
         gtk_widget_class_bind_template_child (widget_class, GrWindow, search_bar);
         gtk_widget_class_bind_template_child (widget_class, GrWindow, main_stack);
         gtk_widget_class_bind_template_child (widget_class, GrWindow, recipes_page);
@@ -751,6 +753,8 @@ gr_window_init (GrWindow *self)
         gtk_widget_init_template (GTK_WIDGET (self));
         self->back_entry_stack = g_queue_new ();
 
+        g_signal_connect (self->edit_page, "notify", G_CALLBACK (make_save_sensitive), self);
+
         g_action_map_add_action_entries (G_ACTION_MAP (self),
                                          entries, G_N_ELEMENTS (entries),
                                          self);


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