From: phantomjinx <pha...@us...> - 2011-11-29 00:03:31
|
commit e5621472106c0f663f350f46ca11c57280d93312 Author: phantomjinx <p.g...@ph...> Date: Mon Nov 28 23:32:15 2011 +0000 Make the track display filter case-insensitive * Text entered into the track display filter tab will find tracks not confined to same case. Fixes FS#75 - Search is case-sensitive plugins/track_display/display_tracks.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) --- diff --git a/plugins/track_display/display_tracks.c b/plugins/track_display/display_tracks.c index 095a050..ecb4e84 100644 --- a/plugins/track_display/display_tracks.c +++ b/plugins/track_display/display_tracks.c @@ -108,6 +108,7 @@ static gboolean filter_tracks(GtkTreeModel *model, GtkTreeIter *iter, gpointer e Track *tr; gboolean result = FALSE; const gchar *text = gtk_entry_get_text(GTK_ENTRY (entry)); + gchar *utext = g_utf8_casefold(text, -1); int i; gtk_tree_model_get(model, iter, READOUT_COL, &tr, -1); @@ -117,19 +118,24 @@ static gboolean filter_tracks(GtkTreeModel *model, GtkTreeIter *iter, gpointer e return TRUE; for (i = 0; i < TM_NUM_COLUMNS; i++) { gint visible = prefs_get_int_index("col_visible", i); - gchar *data; + gchar *data = NULL; + gchar *udata = NULL; if (!visible) continue; data = track_get_text(tr, TM_to_T(i)); - if (data && utf8_strcasestr(data, text)) { - g_free(data); + if (data) + udata = g_utf8_casefold(data, -1); + + if (udata && utf8_strcasestr(udata, utext)) { + g_free(udata); result = TRUE; break; } - g_free(data); + if (data) + g_free(data); } } |