[recipes] Simplify cooking view API
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [recipes] Simplify cooking view API
- Date: Fri, 24 Feb 2017 05:23:39 +0000 (UTC)
commit d6060a7c71ad4138797b55ae5fcdbd985afabaad
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Feb 23 19:21:36 2017 -0500
Simplify cooking view API
Just have a single set_data function instead of separate
set_instructions and set_images, which leave us with an
awkward intermediate state.
This avoids a crash in the edit page when switching between
edit and preview.
src/gr-cooking-page.c | 3 +--
src/gr-cooking-view.c | 19 +++++--------------
src/gr-cooking-view.h | 7 +++----
src/gr-edit-page.c | 5 +++--
4 files changed, 12 insertions(+), 22 deletions(-)
---
diff --git a/src/gr-cooking-page.c b/src/gr-cooking-page.c
index e79e63a..26c20d2 100644
--- a/src/gr-cooking-page.c
+++ b/src/gr-cooking-page.c
@@ -469,6 +469,5 @@ gr_cooking_page_set_recipe (GrCookingPage *page,
container_remove_all (GTK_CONTAINER (page->mini_timer_box));
- gr_cooking_view_set_images (GR_COOKING_VIEW (page->cooking_view), images);
- gr_cooking_view_set_instructions (GR_COOKING_VIEW (page->cooking_view), instructions);
+ gr_cooking_view_set_data (GR_COOKING_VIEW (page->cooking_view), instructions, images);
}
diff --git a/src/gr-cooking-view.c b/src/gr-cooking-view.c
index d81288e..a1d84ed 100644
--- a/src/gr-cooking-view.c
+++ b/src/gr-cooking-view.c
@@ -490,25 +490,16 @@ setup_steps (GrCookingView *view)
}
void
-gr_cooking_view_set_images (GrCookingView *view,
- GArray *images)
-{
- g_clear_pointer (&view->images, g_array_unref);
- view->images = g_array_ref (images);
-
- setup_steps (view);
- set_step (view, 0);
-}
-
-void
-gr_cooking_view_set_instructions (GrCookingView *view,
- const char *instructions)
+gr_cooking_view_set_data (GrCookingView *view,
+ const char *instructions,
+ GArray *images)
{
g_free (view->instructions);
view->instructions = g_strdup (instructions);
+ g_clear_pointer (&view->images, g_array_unref);
+ view->images = g_array_ref (images);
setup_steps (view);
- set_step (view, 0);
}
int
diff --git a/src/gr-cooking-view.h b/src/gr-cooking-view.h
index 85685ab..e37d0fe 100644
--- a/src/gr-cooking-view.h
+++ b/src/gr-cooking-view.h
@@ -31,10 +31,9 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (GrCookingView, gr_cooking_view, GR, COOKING_VIEW, GtkBox)
GrCookingView *gr_cooking_view_new (void);
-void gr_cooking_view_set_instructions (GrCookingView *view,
- const char *instructions);
-void gr_cooking_view_set_images (GrCookingView *view,
- GArray *images);
+void gr_cooking_view_set_data (GrCookingView *view,
+ const char *instructions,
+ GArray *images);
int gr_cooking_view_get_n_steps (GrCookingView *view);
int gr_cooking_view_get_step (GrCookingView *view);
void gr_cooking_view_set_step (GrCookingView *view,
diff --git a/src/gr-edit-page.c b/src/gr-edit-page.c
index 11321fd..4865e89 100644
--- a/src/gr-edit-page.c
+++ b/src/gr-edit-page.c
@@ -1363,6 +1363,7 @@ preview_visible_changed (GrEditPage *page)
gtk_widget_set_sensitive (page->temperature_button, TRUE);
gtk_widget_set_visible (page->prev_step_button, FALSE);
gtk_widget_set_visible (page->next_step_button, FALSE);
+ gr_cooking_view_stop (GR_COOKING_VIEW (page->cooking_view));
}
else {
g_autoptr(GArray) images = NULL;
@@ -1378,8 +1379,8 @@ preview_visible_changed (GrEditPage *page)
g_object_get (page->images, "images", &images, NULL);
instructions = get_text_view_text (GTK_TEXT_VIEW (page->instructions_field));
- gr_cooking_view_set_images (GR_COOKING_VIEW (page->cooking_view), images);
- gr_cooking_view_set_instructions (GR_COOKING_VIEW (page->cooking_view), instructions);
+ gr_cooking_view_set_data (GR_COOKING_VIEW (page->cooking_view), instructions, images);
+ gr_cooking_view_start (GR_COOKING_VIEW (page->cooking_view));
update_steppers (page);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]