[gnome-contacts] Break out data comparison function



commit 6db272b4e8eb94bc3b808634e5fea664cceacfe0
Author: Alexander Larsson <alexl redhat com>
Date:   Wed Jan 18 12:20:21 2012 +0100

    Break out data comparison function

 src/contacts-view.vala |   46 +++++++++++++++++++++++++---------------------
 1 files changed, 25 insertions(+), 21 deletions(-)
---
diff --git a/src/contacts-view.vala b/src/contacts-view.vala
index f884d74..8f9c9f0 100644
--- a/src/contacts-view.vala
+++ b/src/contacts-view.vala
@@ -65,27 +65,7 @@ public class Contacts.View : GLib.Object {
 	model.get (iter_a, 1, out aa);
 	model.get (iter_b, 1, out bb);
 
-	int a_prio = get_sort_prio (aa);
-	int b_prio = get_sort_prio (bb);
-
-	if (a_prio > b_prio)
-	    return -1;
-	if (a_prio < b_prio)
-	    return 1;
-
-	var a = aa->contact;
-	var b = bb->contact;
-
-	if (is_set (a.display_name) && is_set (b.display_name))
-	  return a.display_name.collate (b.display_name);
-
-	// Sort empty names last
-	if (is_set (a.display_name))
-	  return -1;
-	if (is_set (b.display_name))
-	  return 1;
-
-	return 0;
+	return compare_data (aa, bb);
       });
     list_store.set_sort_column_id (0, SortType.ASCENDING);
 
@@ -96,6 +76,30 @@ public class Contacts.View : GLib.Object {
       contact_added_cb (store, c);
   }
 
+  private int compare_data (ContactData a_data, ContactData b_data) {
+    int a_prio = get_sort_prio (a_data);
+    int b_prio = get_sort_prio (b_data);
+
+    if (a_prio > b_prio)
+      return -1;
+    if (a_prio < b_prio)
+      return 1;
+
+    var a = a_data.contact;
+    var b = b_data.contact;
+
+    if (is_set (a.display_name) && is_set (b.display_name))
+      return a.display_name.collate (b.display_name);
+
+    // Sort empty names last
+    if (is_set (a.display_name))
+      return -1;
+    if (is_set (b.display_name))
+      return 1;
+
+    return 0;
+  }
+
   private int get_sort_prio (ContactData *data) {
     if (data->sort_prio != 0)
       return data->sort_prio;



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