diff options
author | Niels De Graef <nielsdegraef@gmail.com> | 2018-04-08 18:57:53 +0200 |
---|---|---|
committer | Niels De Graef <nielsdegraef@gmail.com> | 2018-04-08 18:57:53 +0200 |
commit | 1a253e67052712c47c8aedba59be47d18ffad067 (patch) | |
tree | 8963ebfc5ea98b23f43d8482d5536dd892d08777 | |
parent | b7ebbedd5eeaaa6d1caed77a51e7bf51fbfc34ff (diff) | |
download | gnome-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.vala | 12 |
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); } |