[recipes] Make the ingredients list api safe for segment overlap
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [recipes] Make the ingredients list api safe for segment overlap
- Date: Fri, 23 Dec 2016 15:37:56 +0000 (UTC)
commit 91e18438d2c242f56fc555d6743ad8f5470a5afe
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Dec 22 19:59:40 2016 -0500
Make the ingredients list api safe for segment overlap
We need to pass the segment name to scale_unit, so we can disambiguate
if the same ingredient is present in multiple segments.
Update all callers.
src/gr-details-page.c | 2 +-
src/gr-edit-page.c | 2 +-
src/gr-ingredients-list.c | 4 +++-
src/gr-ingredients-list.h | 3 ++-
4 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/src/gr-details-page.c b/src/gr-details-page.c
index 1ada851..65cc2f0 100644
--- a/src/gr-details-page.c
+++ b/src/gr-details-page.c
@@ -692,7 +692,7 @@ populate_ingredients (GrDetailsPage *page,
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_show (box);
- s = gr_ingredients_list_scale_unit (page->ingredients, ings[i], num, denom);
+ s = gr_ingredients_list_scale_unit (page->ingredients, segments[j], ings[i], num,
denom);
label = gtk_label_new (s);
g_object_set (label,
"visible", TRUE,
diff --git a/src/gr-edit-page.c b/src/gr-edit-page.c
index 786dd13..ca073d6 100644
--- a/src/gr-edit-page.c
+++ b/src/gr-edit-page.c
@@ -798,7 +798,7 @@ populate_ingredients (GrEditPage *page,
const char *unit;
GtkWidget *row;
- s = gr_ingredients_list_scale_unit (ingredients, ings[i], 1, 1);
+ s = gr_ingredients_list_scale_unit (ingredients, segs[j], ings[i], 1, 1);
strv = g_strsplit (s, " ", 2);
amount = strv[0];
unit = strv[1] ? strv[1] : "";
diff --git a/src/gr-ingredients-list.c b/src/gr-ingredients-list.c
index 51ff26f..f5d9d0b 100644
--- a/src/gr-ingredients-list.c
+++ b/src/gr-ingredients-list.c
@@ -500,6 +500,7 @@ gr_ingredients_list_get_ingredients (GrIngredientsList *ingredients,
char *
gr_ingredients_list_scale_unit (GrIngredientsList *ingredients,
+ const char *segment,
const char *name,
int num,
int denom)
@@ -509,7 +510,8 @@ gr_ingredients_list_scale_unit (GrIngredientsList *ingredients,
for (l = ingredients->ingredients; l; l = l->next) {
Ingredient *ing = (Ingredient *)l->data;
- if (g_strcmp0 (name, ing->name) == 0) {
+ if (g_strcmp0 (segment, ing->segment) == 0 &&
+ g_strcmp0 (name, ing->name) == 0) {
GString *s;
s = g_string_new ("");
diff --git a/src/gr-ingredients-list.h b/src/gr-ingredients-list.h
index 086c647..b5c83ab 100644
--- a/src/gr-ingredients-list.h
+++ b/src/gr-ingredients-list.h
@@ -36,7 +36,8 @@ char *gr_ingredients_list_scale (GrIngredientsList *ingr
int num,
int denom);
char *gr_ingredients_list_scale_unit (GrIngredientsList *ingredients,
- const char *name,
+ const char *segment,
+ const char *ingredient,
int num,
int denom);
char **gr_ingredients_list_get_segments (GrIngredientsList *ingredients);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]