[recipes] More work toward better handling of translated ingredients
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [recipes] More work toward better handling of translated ingredients
- Date: Sun, 1 Jan 2017 16:06:42 +0000 (UTC)
commit f3dce2305b86a49c5c1675d16465420dd3043725
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Dec 31 17:01:56 2016 -0500
More work toward better handling of translated ingredients
Use the ingredient ID when creating search terms, but use
the translated ingredient name when filtering in the UI.
src/gr-ingredient-row.c | 18 +++++++++++++++---
src/gr-ingredient-row.h | 1 +
src/gr-query-editor.c | 2 +-
3 files changed, 17 insertions(+), 4 deletions(-)
---
diff --git a/src/gr-ingredient-row.c b/src/gr-ingredient-row.c
index 8d509c7..03a81d9 100644
--- a/src/gr-ingredient-row.c
+++ b/src/gr-ingredient-row.c
@@ -34,6 +34,7 @@ struct _GrIngredientRow
GtkWidget *label;
GtkWidget *image;
+ char *id;
char *ingredient;
char *cf_ingredient;
@@ -60,6 +61,7 @@ gr_ingredient_row_finalize (GObject *object)
GrIngredientRow *self = (GrIngredientRow *)object;
g_clear_object (&self->tag);
+ g_free (self->id);
g_free (self->ingredient);
g_free (self->cf_ingredient);
@@ -176,11 +178,15 @@ gr_ingredient_row_set_property (GObject *object,
g_free (self->ingredient);
self->ingredient = g_value_dup_string (value);
+
term = gr_ingredient_get_id (self->ingredient);
if (!term)
term = self->ingredient;
+ g_free (self->id);
+ self->id = g_strdup (term);
+
g_free (self->cf_ingredient);
- self->cf_ingredient = g_utf8_casefold (term, -1);
+ self->cf_ingredient = g_utf8_casefold (self->ingredient, -1);
}
break;
case PROP_INCLUDE:
@@ -255,10 +261,10 @@ char *
gr_ingredient_row_get_search_term (GrIngredientRow *row)
{
if (row->include) {
- return g_strconcat ("i+:", row->cf_ingredient, NULL);
+ return g_strconcat ("i+:", row->id, NULL);
}
else if (row->exclude) {
- return g_strconcat ("i-:", row->cf_ingredient, NULL);
+ return g_strconcat ("i-:", row->id, NULL);
}
else
return NULL;
@@ -287,3 +293,9 @@ gr_ingredient_row_get_ingredient (GrIngredientRow *row)
{
return row->ingredient;
}
+
+const char *
+gr_ingredient_row_get_id (GrIngredientRow *row)
+{
+ return row->id;
+}
diff --git a/src/gr-ingredient-row.h b/src/gr-ingredient-row.h
index c405816..854c481 100644
--- a/src/gr-ingredient-row.h
+++ b/src/gr-ingredient-row.h
@@ -37,6 +37,7 @@ void gr_ingredient_row_set_entry (GrIngredientRow *row,
char * gr_ingredient_row_get_search_term (GrIngredientRow *row);
char * gr_ingredient_row_get_label (GrIngredientRow *row);
const char * gr_ingredient_row_get_ingredient (GrIngredientRow *row);
+const char * gr_ingredient_row_get_id (GrIngredientRow *row);
const char * gr_ingredient_row_get_filter_term (GrIngredientRow *row);
G_END_DECLS
diff --git a/src/gr-query-editor.c b/src/gr-query-editor.c
index c278384..6d4412e 100644
--- a/src/gr-query-editor.c
+++ b/src/gr-query-editor.c
@@ -835,7 +835,7 @@ set_ingredient_tag (GrQueryEditor *editor,
GtkWidget *row = l->data;
if (!GR_IS_INGREDIENT_ROW (row))
continue;
- if (strcmp (ingredient, gr_ingredient_row_get_ingredient (GR_INGREDIENT_ROW (row))) == 0) {
+ if (strcmp (ingredient, gr_ingredient_row_get_id (GR_INGREDIENT_ROW (row))) == 0) {
g_object_set (row, "include", include, "exclude", exclude, NULL);
break;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]