summaryrefslogtreecommitdiff
path: root/src/contacts-list-pane.vala
diff options
context:
space:
mode:
authorErick Pérez Castellanos <erick.red@gmail.com>2013-02-05 11:32:51 -0500
committerErick Pérez Castellanos <erick.red@gmail.com>2013-02-06 17:11:43 -0500
commit8281be96463f2733fed96fb446d844114fa5c205 (patch)
tree2989741bbc846efe330ff39efe65f5be921771d8 /src/contacts-list-pane.vala
parent61a131f7fee6d35749270b6acdb8206675c9ce0e (diff)
downloadgnome-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.vala24
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) {