[recipes/ekta-master: 2/3] Rough commit-2 make save sensitive changing fields in edit page
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [recipes/ekta-master: 2/3] Rough commit-2 make save sensitive changing fields in edit page
- Date: Sun, 7 May 2017 19:23:59 +0000 (UTC)
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]