[gnome-todo] Don't use case when sorting by task title



commit e5047ec61bbaa6799ff26cfef411a013ddf647be
Author: Isaque Galdino <igaldino gmail com>
Date:   Fri Feb 12 00:28:23 2016 -0200

    Don't use case when sorting by task title
    
    Fixed scheduled panel and task sorting functions to be case insentive,
    using g_utf8_casefold API.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=759877

 plugins/eds/gtd-panel-scheduled.c |   14 +++++++++++++-
 src/gtd-task.c                    |   14 +++++++++++++-
 2 files changed, 26 insertions(+), 2 deletions(-)
---
diff --git a/plugins/eds/gtd-panel-scheduled.c b/plugins/eds/gtd-panel-scheduled.c
index 833d350..6dcd074 100644
--- a/plugins/eds/gtd-panel-scheduled.c
+++ b/plugins/eds/gtd-panel-scheduled.c
@@ -207,6 +207,8 @@ gtd_panel_scheduled_sort_func (GtkListBoxRow     *row1,
   GDateTime *dt1;
   GDateTime *dt2;
   gint retval;
+  gchar *t1;
+  gchar *t2;
 
   dt1 = dt2 = NULL;
 
@@ -230,7 +232,17 @@ gtd_panel_scheduled_sort_func (GtkListBoxRow     *row1,
   if (retval != 0)
     return retval;
 
-  return g_strcmp0 (gtd_task_get_title (row1_task), gtd_task_get_title (row2_task));
+  t1 = t2 = NULL;
+
+  t1 = g_utf8_casefold (gtd_task_get_title (row1_task), -1);
+  t2 = g_utf8_casefold (gtd_task_get_title (row2_task), -1);
+
+  retval = g_strcmp0 (t1, t2);
+
+  g_free (t1);
+  g_free (t2);
+
+  return retval;
 }
 
 static void
diff --git a/src/gtd-task.c b/src/gtd-task.c
index 5e5396a..547d9c2 100644
--- a/src/gtd-task.c
+++ b/src/gtd-task.c
@@ -906,6 +906,8 @@ gtd_task_compare (GtdTask *t1,
   GDateTime *dt2;
   gboolean completed1;
   gboolean completed2;
+  gchar *txt1;
+  gchar *txt2;
   gint p1;
   gint p2;
   gint retval;
@@ -964,5 +966,15 @@ gtd_task_compare (GtdTask *t1,
   /*
    * If they're equal up to now, compare by title.
    */
-  return g_strcmp0 (gtd_task_get_title (t1), gtd_task_get_title (t2));
+  txt1 = txt2 = NULL;
+
+  txt1 = g_utf8_casefold (gtd_task_get_title (t1), -1);
+  txt2 = g_utf8_casefold (gtd_task_get_title (t2), -1);
+
+  retval = g_strcmp0 (txt1, txt2);
+
+  g_free (txt1);
+  g_free (txt2);
+
+  return retval;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]