aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/gui')
-rw-r--r--addressbook/gui/contact-editor/eab-editor.c30
-rw-r--r--addressbook/gui/widgets/e-addressbook-view.c20
2 files changed, 39 insertions, 11 deletions
diff --git a/addressbook/gui/contact-editor/eab-editor.c b/addressbook/gui/contact-editor/eab-editor.c
index 8f03352af0..65b985c153 100644
--- a/addressbook/gui/contact-editor/eab-editor.c
+++ b/addressbook/gui/contact-editor/eab-editor.c
@@ -311,23 +311,35 @@ eab_editor_get_all_editors (void)
}
gboolean
-eab_editor_confirm_delete (GtkWindow *parent)
+eab_editor_confirm_delete (GtkWindow *parent, gboolean plural, gboolean is_list, char *name)
{
GtkWidget *dialog;
gint result;
+ char *msg;
+
+ if (is_list) {
+ /* contact list(s) */
+ if (!plural)
+ msg = g_strdup_printf (_("Are you sure you want\nto delete contact list (%s) ?"),
+ name);
+ else
+ msg = g_strdup (_("Are you sure you want\nto delete these contact lists?"));
+ }
+ else {
+ /* contact(s) */
+ if (!plural)
+ msg = g_strdup_printf (_("Are you sure you want\nto delete contact (%s) ?"),
+ name);
+ else
+ msg = g_strdup (_("Are you sure you want\nto delete these contacts?"));
+ }
dialog = gtk_message_dialog_new (parent,
0,
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_NONE,
-#if notyet
- /* XXX we really need to handle the plural case here.. */
- (plural
- ? _("Are you sure you want\n"
- "to delete these contacts?"))
-#endif
- _("Are you sure you want\n"
- "to delete this contact?"));
+ msg);
+ g_free (msg);
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c
index d98c328cc6..dd36b03ee2 100644
--- a/addressbook/gui/widgets/e-addressbook-view.c
+++ b/addressbook/gui/widgets/e-addressbook-view.c
@@ -1854,11 +1854,27 @@ void
eab_view_delete_selection(EABView *view)
{
GList *list, *l;
+ gboolean plural = FALSE, is_list = FALSE;
+ EContact *contact;
+ char *name = NULL;
+
+ list = get_selected_contacts (view);
+ contact = list->data;
+
+ if (g_list_next(list))
+ plural = TRUE;
+ else
+ name = e_contact_get (contact, E_CONTACT_FILE_AS);
+
+ if (e_contact_get (contact, E_CONTACT_IS_LIST))
+ is_list = TRUE;
- if (!eab_editor_confirm_delete(GTK_WINDOW(gtk_widget_get_toplevel(view->widget))))
+ if (!eab_editor_confirm_delete(GTK_WINDOW(gtk_widget_get_toplevel(view->widget)),
+ plural, is_list, name)) {
+ g_free (name);
return;
+ }
- list = get_selected_contacts(view);
if (e_book_check_static_capability (view->book, "bulk-remove")) {
GList *ids = NULL;