[gnome-contacts] ContactList: simplify sorting function.



commit 058e117c5d4287980152fbcc4511aac49b614c50
Author: Niels De Graef <nielsdegraef gmail com>
Date:   Tue Jan 23 02:01:16 2018 +0100

    ContactList: simplify sorting function.
    
    Individual.display_name is never null.
    Also, refrain from using trivial anonymous lambdas, for easier
    debugging.

 src/contacts-contact-list.vala |   19 +++++--------------
 1 files changed, 5 insertions(+), 14 deletions(-)
---
diff --git a/src/contacts-contact-list.vala b/src/contacts-contact-list.vala
index 950b990..5ca929b 100644
--- a/src/contacts-contact-list.vala
+++ b/src/contacts-contact-list.vala
@@ -121,7 +121,7 @@ public class Contacts.ContactList : ListBox {
 
     get_style_context ().add_class ("contacts-contact-list");
 
-    set_sort_func ((a, b) => compare_data (a as ContactDataRow, b as ContactDataRow));
+    set_sort_func (compare_rows);
     set_filter_func (filter_row);
     set_header_func (update_header);
   }
@@ -139,25 +139,16 @@ public class Contacts.ContactList : ListBox {
       this.nr_contacts_marked = 0;
   }
 
-  private int compare_data (ContactDataRow a_data, ContactDataRow b_data) {
-    var a = a_data.contact.individual;
-    var b = b_data.contact.individual;
+  private int compare_rows (ListBoxRow row_a, ListBoxRow row_b) {
+    var a = ((ContactDataRow) row_a).contact.individual;
+    var b = ((ContactDataRow) row_b).contact.individual;
 
     // Always prefer favourites over non-favourites.
     if (a.is_favourite != b.is_favourite)
       return a.is_favourite? -1 : 1;
 
     // Both are (non-)favourites: sort by name
-    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 a.display_name.collate (b.display_name);
   }
 
   private void update_header (ListBoxRow row, ListBoxRow? before) {


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