[recipes] Fix temporary image switches
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [recipes] Fix temporary image switches
- Date: Sat, 4 Feb 2017 23:56:26 +0000 (UTC)
commit a5969ca4ba75a80adcf483469db28eb193057645
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Feb 4 23:54:41 2017 +0000
Fix temporary image switches
https://bugzilla.gnome.org/show_bug.cgi?id=778029
src/gr-cooking-page.c | 2 +-
src/gr-cooking-view.c | 5 +++--
src/gr-cooking-view.h | 4 +++-
src/gr-details-page.c | 9 ++++++---
src/gr-edit-page.c | 6 +++---
src/gr-image-viewer.c | 15 ++++++++++++---
src/gr-image-viewer.h | 4 +++-
7 files changed, 31 insertions(+), 14 deletions(-)
---
diff --git a/src/gr-cooking-page.c b/src/gr-cooking-page.c
index 7a55464..afcf82e 100644
--- a/src/gr-cooking-page.c
+++ b/src/gr-cooking-page.c
@@ -389,7 +389,7 @@ gr_cooking_page_set_recipe (GrCookingPage *page,
g_object_get (recipe, "images", &images, NULL);
instructions = gr_recipe_get_translated_instructions (recipe);
- gr_cooking_view_set_images (GR_COOKING_VIEW (page->cooking_view), images);
+ gr_cooking_view_set_images (GR_COOKING_VIEW (page->cooking_view), images, 0);
gr_cooking_view_set_instructions (GR_COOKING_VIEW (page->cooking_view), instructions);
}
}
diff --git a/src/gr-cooking-view.c b/src/gr-cooking-view.c
index e33ab82..77cb2ce 100644
--- a/src/gr-cooking-view.c
+++ b/src/gr-cooking-view.c
@@ -324,12 +324,13 @@ setup_steps (GrCookingView *view)
void
gr_cooking_view_set_images (GrCookingView *view,
- GArray *images)
+ GArray *images,
+ int index)
{
view->images = g_array_ref (images);
setup_steps (view);
- set_step (view, 0);
+ set_step (view, index);
}
void
diff --git a/src/gr-cooking-view.h b/src/gr-cooking-view.h
index 617baa8..00b2a6c 100644
--- a/src/gr-cooking-view.h
+++ b/src/gr-cooking-view.h
@@ -34,7 +34,9 @@ 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);
+ GArray *images,
+ int imaeg
+);
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-details-page.c b/src/gr-details-page.c
index 09af52a..16df194 100644
--- a/src/gr-details-page.c
+++ b/src/gr-details-page.c
@@ -616,11 +616,14 @@ gr_details_page_set_recipe (GrDetailsPage *page,
notes = gr_recipe_get_notes (recipe);
instructions = gr_recipe_get_translated_instructions (recipe);
description = gr_recipe_get_translated_description (recipe);
- index = gr_recipe_get_default_image (recipe);
+ if (same_recipe)
+ g_object_get (page->recipe_image, "index", &index, NULL);
+ else
+ index = gr_recipe_get_default_image (recipe);
g_object_get (recipe, "images", &images, NULL);
- gr_image_viewer_set_images (GR_IMAGE_VIEWER (page->recipe_image), images);
- gr_image_viewer_show_image (GR_IMAGE_VIEWER (page->recipe_image), index);
+ gr_image_viewer_set_images (GR_IMAGE_VIEWER (page->recipe_image), images, index);
+ //gr_image_viewer_show_image (GR_IMAGE_VIEWER (page->recipe_image), index);
ing = gr_ingredients_list_new (ingredients);
g_set_object (&page->ingredients, ing);
diff --git a/src/gr-edit-page.c b/src/gr-edit-page.c
index f480e2c..715ca33 100644
--- a/src/gr-edit-page.c
+++ b/src/gr-edit-page.c
@@ -1252,6 +1252,7 @@ preview_visible_changed (GrEditPage *page)
else {
g_autoptr(GArray) images = NULL;
g_autofree char *instructions = NULL;
+ int index = 0;
gtk_widget_set_sensitive (page->add_step_button, FALSE);
gtk_widget_set_sensitive (page->link_image_button, FALSE);
@@ -1262,7 +1263,7 @@ preview_visible_changed (GrEditPage *page)
g_object_get (page->images, "images", &images, NULL);
instructions = get_instructions (GTK_TEXT_VIEW (page->instructions_field));
- gr_cooking_view_set_images (GR_COOKING_VIEW (page->cooking_view), images);
+ gr_cooking_view_set_images (GR_COOKING_VIEW (page->cooking_view), images, index);
gr_cooking_view_set_instructions (GR_COOKING_VIEW (page->cooking_view), instructions);
update_steppers (page);
@@ -1889,8 +1890,7 @@ gr_edit_page_edit (GrEditPage *page,
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->vegetarian_check), (diets &
GR_DIET_VEGETARIAN) != 0);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->milk_free_check), (diets & GR_DIET_MILK_FREE)
!= 0);
- gr_image_viewer_set_images (GR_IMAGE_VIEWER (page->images), images);
- gr_image_viewer_show_image (GR_IMAGE_VIEWER (page->images), index);
+ gr_image_viewer_set_images (GR_IMAGE_VIEWER (page->images), images, index);
update_author_label (page, chef);
diff --git a/src/gr-image-viewer.c b/src/gr-image-viewer.c
index 490dd96..539eb0c 100644
--- a/src/gr-image-viewer.c
+++ b/src/gr-image-viewer.c
@@ -450,7 +450,9 @@ gr_image_viewer_set_property (GObject *object,
switch (prop_id)
{
case PROP_IMAGES:
- gr_image_viewer_set_images (self, (GArray *) g_value_get_boxed (value));
+ gr_image_viewer_set_images (self,
+ (GArray *) g_value_get_boxed (value),
+ gr_image_viewer_get_index (self));
break;
case PROP_INDEX:
@@ -508,7 +510,8 @@ gr_image_viewer_class_init (GrImageViewerClass *klass)
void
gr_image_viewer_set_images (GrImageViewer *viewer,
- GArray *images)
+ GArray *images,
+ int index)
{
int i;
@@ -523,7 +526,7 @@ gr_image_viewer_set_images (GrImageViewer *viewer,
}
populate_preview (viewer);
- viewer->index = 0;
+ viewer->index = index;
set_current_image (viewer);
hide_controls (viewer);
@@ -653,3 +656,9 @@ gr_image_viewer_show_image (GrImageViewer *viewer,
set_current_image (viewer);
}
}
+
+int
+gr_image_viewer_get_index (GrImageViewer *viewer)
+{
+ return viewer->images->len;
+}
diff --git a/src/gr-image-viewer.h b/src/gr-image-viewer.h
index e20dbe7..b5045f8 100644
--- a/src/gr-image-viewer.h
+++ b/src/gr-image-viewer.h
@@ -30,7 +30,8 @@ G_DECLARE_FINAL_TYPE (GrImageViewer, gr_image_viewer, GR, IMAGE_VIEWER, GtkBox)
GrImageViewer *gr_image_viewer_new (void);
void gr_image_viewer_set_images (GrImageViewer *viewer,
- GArray *images);
+ GArray *images,
+ int index);
void gr_image_viewer_add_image (GrImageViewer *viewer);
void gr_image_viewer_remove_image (GrImageViewer *viewer);
@@ -39,6 +40,7 @@ void gr_image_viewer_rotate_image (GrImageViewer *viewer,
void gr_image_viewer_show_image (GrImageViewer *viewer,
int idx);
+int gr_image_viewer_get_index (GrImageViewer *viewer);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]