summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiels De Graef <nielsdegraef@gmail.com>2018-04-08 18:57:53 +0200
committerNiels De Graef <nielsdegraef@gmail.com>2018-04-08 18:57:53 +0200
commit1a253e67052712c47c8aedba59be47d18ffad067 (patch)
tree8963ebfc5ea98b23f43d8482d5536dd892d08777
parentb7ebbedd5eeaaa6d1caed77a51e7bf51fbfc34ff (diff)
downloadgnome-contacts-1a253e67052712c47c8aedba59be47d18ffad067.tar.gz
ContactList: don't call Settings on each sort.
This was being called *a lot* without the value being cached. This should improve that.
-rw-r--r--src/contacts-contact-list.vala12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/contacts-contact-list.vala b/src/contacts-contact-list.vala
index 08fa8a3..5a0dd0e 100644
--- a/src/contacts-contact-list.vala
+++ b/src/contacts-contact-list.vala
@@ -103,7 +103,7 @@ public class Contacts.ContactList : ListBox {
private Store store;
- private Settings settings;
+ private bool sort_on_surname = false; // keep in sync with the setting
public UiState state { get; set; }
@@ -116,8 +116,10 @@ public class Contacts.ContactList : ListBox {
this.notify["state"].connect (on_ui_state_changed);
- this.settings = settings;
- this.settings.changed["sort-on-surname"].connect(invalidate_sort);
+ settings.changed["sort-on-surname"].connect(() => {
+ this.sort_on_surname = settings.sort_on_surname;
+ invalidate_sort();
+ });
this.store.added.connect (contact_added_cb);
this.store.removed.connect (contact_removed_cb);
@@ -153,8 +155,8 @@ public class Contacts.ContactList : ListBox {
return a.is_favourite? -1 : 1;
// Both are (non-)favourites: sort by either first name or surname (user preference)
- unowned string? a_name = this.settings.sort_on_surname? try_get_surname(a) : a.display_name;
- unowned string? b_name = this.settings.sort_on_surname? try_get_surname(b) : b.display_name;
+ unowned string? a_name = this.sort_on_surname? try_get_surname(a) : a.display_name;
+ unowned string? b_name = this.sort_on_surname? try_get_surname(b) : b.display_name;
return a_name.collate (b_name);
}