[recipes] edit page: Ensure to clear the preview



commit 8cc8693402641bca2942240214d80d9f28ede472
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Apr 15 22:16:51 2017 -0400

    edit page: Ensure to clear the preview
    
    When clearing the edit page, we were forgetting the
    instructions preview. To fix this, reset the cooking
    preview data and make sure that the preview itself
    cleans up its internal state when new data is set.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=781247

 src/gr-cooking-view.c |    7 ++++++-
 src/gr-edit-page.c    |    5 +++++
 2 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/src/gr-cooking-view.c b/src/gr-cooking-view.c
index e6eb832..ed1ca6b 100644
--- a/src/gr-cooking-view.c
+++ b/src/gr-cooking-view.c
@@ -596,7 +596,6 @@ setup_steps (GrCookingView *view)
                 step = g_ptr_array_index (steps, i);
                 data = step_data_new (i, steps->len, step->text, step->timer, step->title, step->image, 
view);
                 g_ptr_array_add (view->steps, data);
-
         }
 }
 
@@ -613,6 +612,12 @@ gr_cooking_view_set_data (GrCookingView *view,
         g_clear_pointer (&view->images, g_ptr_array_unref);
         view->images = g_ptr_array_ref (images);
 
+        gtk_widget_hide (view->cooking_heading);
+        gtk_widget_hide (view->cooking_label);
+        gtk_widget_hide (view->cooking_stack);
+        gtk_widget_set_halign (view->text_box, GTK_ALIGN_CENTER);
+        gtk_stack_set_visible_child_name (GTK_STACK (view->cooking_stack), "empty");
+
         setup_steps (view);
 }
 
diff --git a/src/gr-edit-page.c b/src/gr-edit-page.c
index 0b47b79..ac67075 100644
--- a/src/gr-edit-page.c
+++ b/src/gr-edit-page.c
@@ -2026,6 +2026,11 @@ gr_edit_page_clear (GrEditPage *page)
         images = gr_image_array_new ();
         g_object_set (page->images, "images", images, NULL);
 
+        gr_cooking_view_set_data (GR_COOKING_VIEW (page->cooking_view), NULL, "", images);
+        gr_cooking_view_set_step (GR_COOKING_VIEW (page->cooking_view), 0);
+        gtk_stack_set_visible_child_name (GTK_STACK (page->preview_stack), "edit");
+        preview_visible_changed (page);
+
         if (page->index_handler_id) {
                 g_signal_handler_disconnect (page->recipe, page->index_handler_id);
                 page->index_handler_id = 0;


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