diff options
author | Erick Pérez Castellanos <erick.red@gmail.com> | 2013-02-05 11:32:51 -0500 |
---|---|---|
committer | Erick Pérez Castellanos <erick.red@gmail.com> | 2013-02-06 17:11:43 -0500 |
commit | 8281be96463f2733fed96fb446d844114fa5c205 (patch) | |
tree | 2989741bbc846efe330ff39efe65f5be921771d8 /src/contacts-list-pane.vala | |
parent | 61a131f7fee6d35749270b6acdb8206675c9ce0e (diff) | |
download | gnome-contacts-8281be96463f2733fed96fb446d844114fa5c205.tar.gz |
Added marking handling to Contacts.ListPane
Added ::delete_contacts signal to notify the application.
Diffstat (limited to 'src/contacts-list-pane.vala')
-rw-r--r-- | src/contacts-list-pane.vala | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/contacts-list-pane.vala b/src/contacts-list-pane.vala index f560c57..f01364b 100644 --- a/src/contacts-list-pane.vala +++ b/src/contacts-list-pane.vala @@ -16,6 +16,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +using Gee; using Gtk; using Folks; @@ -31,6 +32,7 @@ public class Contacts.ListPane : Frame { private bool search_visible; public signal void selection_changed (Contact? contact); + public signal void delete_contacts (LinkedList<Contact> contacts_list); private void refilter () { string []? values; @@ -139,6 +141,28 @@ public class Contacts.ListPane : Frame { scrolled.show (); selection_toolbar.hide (); + + /* contact mark handling */ + contacts_view.contacts_marked.connect ((nr_contacts_marked) => { + if (nr_contacts_marked > 0) + delete_selected_button.set_sensitive (true); + else + delete_selected_button.set_sensitive (false); + + if (nr_contacts_marked > 1) + link_selected_button.set_sensitive (true); + else + link_selected_button.set_sensitive (false); + }); + + delete_selected_button.clicked.connect (() => { + var marked_contacts = contacts_view.get_marked_contacts (); + foreach (var c in marked_contacts) { + c.hide (); + } + + delete_contacts (marked_contacts); + }); } public void select_contact (Contact contact, bool ignore_change = false) { |