aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2000-12-20 00:15:00 +0800
committerChris Lahey <clahey@src.gnome.org>2000-12-20 00:15:00 +0800
commitb5eefb58b7d43473425da80de0803b2f560b156f (patch)
treeb8c7f45205cd0f808c88e68496c4a074b5a37614 /addressbook
parentdcd4f312232db7d391b1dd969f271f9a65c540c1 (diff)
downloadgsoc2013-evolution-b5eefb58b7d43473425da80de0803b2f560b156f.tar.gz
gsoc2013-evolution-b5eefb58b7d43473425da80de0803b2f560b156f.tar.zst
gsoc2013-evolution-b5eefb58b7d43473425da80de0803b2f560b156f.zip
Made it so that if you select multiple contacts, the right click menu to
2000-12-19 Christopher James Lahey <clahey@helixcode.com> * gui/widgets/e-addressbook-view.c (delete): Made it so that if you select multiple contacts, the right click menu to delete deletes them all. svn path=/trunk/; revision=7080
Diffstat (limited to 'addressbook')
-rw-r--r--addressbook/ChangeLog6
-rw-r--r--addressbook/gui/widgets/e-addressbook-view.c62
2 files changed, 59 insertions, 9 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 07dee161a6..e981ca6e0b 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,9 @@
+2000-12-19 Christopher James Lahey <clahey@helixcode.com>
+
+ * gui/widgets/e-addressbook-view.c (delete): Made it so that if
+ you select multiple contacts, the right click menu to delete
+ deletes them all.
+
2000-12-18 Chris Toshok <toshok@helixcode.com>
* backend/pas/pas-backend-ldap.c (ldap_error_to_response): always
diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c
index d5beb6e30b..816c83ca36 100644
--- a/addressbook/gui/widgets/e-addressbook-view.c
+++ b/addressbook/gui/widgets/e-addressbook-view.c
@@ -401,7 +401,9 @@ table_double_click(ETableScrolled *table, gint row, EAddressbookView *view)
typedef struct {
EBook *book;
ECard *card;
+ EAddressbookView *view;
GtkWidget *widget;
+ gpointer closure;
} CardAndBook;
static void
@@ -409,6 +411,38 @@ card_and_book_free (CardAndBook *card_and_book)
{
gtk_object_unref(GTK_OBJECT(card_and_book->card));
gtk_object_unref(GTK_OBJECT(card_and_book->book));
+ gtk_object_unref(GTK_OBJECT(card_and_book->view));
+}
+
+static void
+get_card_list_1(gint model_row,
+ gpointer closure)
+{
+ CardAndBook *card_and_book;
+ GList **list;
+ EAddressbookView *view;
+ ECard *card;
+
+ card_and_book = closure;
+ list = card_and_book->closure;
+ view = card_and_book->view;
+
+ card = e_addressbook_model_get_card(E_ADDRESSBOOK_MODEL(view->object), model_row);
+ *list = g_list_prepend(*list, card);
+}
+
+static GList *
+get_card_list (CardAndBook *card_and_book)
+{
+ GList *list = NULL;
+ ETable *table;
+
+ table = E_TABLE(card_and_book->widget);
+ card_and_book->closure = &list;
+ e_table_selected_row_foreach(table,
+ get_card_list_1,
+ card_and_book);
+ return list;
}
static void
@@ -427,6 +461,7 @@ send_as (GtkWidget *widget, CardAndBook *card_and_book)
static void
send_to (GtkWidget *widget, CardAndBook *card_and_book)
+
{
e_card_send(card_and_book->card, E_CARD_DISPOSITION_AS_TO);
card_and_book_free(card_and_book);
@@ -450,11 +485,17 @@ static void
delete (GtkWidget *widget, CardAndBook *card_and_book)
{
if (e_contact_editor_confirm_delete(GTK_WINDOW(gtk_widget_get_toplevel(card_and_book->widget)))) {
- /* Add the card in the contact editor to our ebook */
- e_book_remove_card (card_and_book->book,
- card_and_book->card,
- NULL,
- NULL);
+ GList *list = get_card_list(card_and_book);
+ GList *iterator;
+ for (iterator = list; iterator; iterator = iterator->next) {
+ ECard *card = iterator->data;
+ /* Add the card in the contact editor to our ebook */
+ e_book_remove_card (card_and_book->book,
+ card,
+ NULL,
+ NULL);
+ }
+ e_free_object_list(list);
}
card_and_book_free(card_and_book);
}
@@ -465,7 +506,7 @@ table_right_click(ETableScrolled *table, gint row, gint col, GdkEvent *event, EA
if (E_IS_ADDRESSBOOK_MODEL(view->object)) {
EAddressbookModel *model = E_ADDRESSBOOK_MODEL(view->object);
CardAndBook *card_and_book;
-
+
EPopupMenu menu[] = {
{"Save as VCard", NULL, GTK_SIGNAL_FUNC(save_as), NULL, 0},
{"Send contact to other", NULL, GTK_SIGNAL_FUNC(send_as), NULL, 0},
@@ -475,21 +516,24 @@ table_right_click(ETableScrolled *table, gint row, gint col, GdkEvent *event, EA
{"Delete", NULL, GTK_SIGNAL_FUNC(delete), NULL, 0},
{NULL, NULL, NULL, NULL, 0}
};
-
+
card_and_book = g_new(CardAndBook, 1);
card_and_book->card = e_addressbook_model_get_card(model, row);
card_and_book->widget = GTK_WIDGET(table);
+ card_and_book->view = view;
gtk_object_get(GTK_OBJECT(model),
"book", &(card_and_book->book),
NULL);
-
+
gtk_object_ref(GTK_OBJECT(card_and_book->book));
-
+ gtk_object_ref(GTK_OBJECT(card_and_book->view));
+
e_popup_menu_run (menu, (GdkEventButton *)event, 0, 0, card_and_book);
return TRUE;
} else
return FALSE;
}
+
#define SPEC "<?xml version=\"1.0\"?> \
<ETableSpecification click-to-add=\"true\" draw-grid=\"true\" _click-to-add-message=\"* Click here to add a contact *\"> \
<ETableColumn model_col= \"0\" _title=\"Name\" expansion=\"1.0\" minimum_width=\"20\" resizable=\"true\" cell=\"string\" compare=\"string\"/> \
'commitgraph'>* Remove USE_REINPLACE from categories starting with Xedwin2006-05-1311-11/+0 * tktz will help you to guess the current time in another country. Itvs2006-05-135-0/+44 * Update to 1.3, which adds a man page.naddy2006-04-243-10/+14 * Reset pat due to no response to email about his status.linimon2006-04-153-3/+3 * - Update to 2.23pav2006-04-052-4/+4 * Update to KDE 3.5.2lofi2006-03-314-10/+8 * Bump PORTREVISION on glib12/gtk12 consumer ports to ease the upgrade path.ade2006-03-077-4/+7 * Conversion to a single libtool environment.ade2006-02-238-6/+27 * Remove expired port x11-clocks/gdesklets-praytimegarga2006-02-157-104/+0 * Update to KDE 3.5.1.lofi2006-02-014-594/+6 * Don't remove system symlinkskris2006-01-261-2/+0 * SHA256ifyedwin2006-01-2421-0/+21 * Revert last commit. It is not possible (yet) to have the dirrmtry usagelinimon2006-01-231-1/+2 * Replace ugly "@unexec rmdir %D... 2>/dev/null || true" with @dirrmtryedwin2006-01-221-2/+1 * Replace ugly "@unexec rmdir %D... 2>/dev/null || true" with @dirrmtryedwin2006-01-222-6/+6 * - Update graphics/libglut to 6.4.1.sem2006-01-121-2/+2 * Update to KDE 3.5.0lofi2006-01-096-64/+72 * [UPDATE]: x11-clocks/xdaliclockedwin2006-01-071-1/+1 * Update to 2.22edwin2006-01-062-4/+4 * - Update to 2.1.2.7 and take maintainershippav2005-12-1810-73/+131 * - Unbreakehaupt2005-12-114-37/+16 * Add SHA256 hashes to my portsehaupt2005-11-301-0/+1 * None of the XCONTRIB sites have recent versions of this distfile.linimon2005-11-271-2/+1 * Original mastersite disappeared; use a backup.linimon2005-11-272-3/+1 * Remove dead mastersites.linimon2005-11-272-4/+2 * There haven't been any new releases of this in several years, so there'slinimon2005-11-271-1/+1 * Mark as deprecated: mastersite disappeared.linimon2005-11-271-1/+4 * Mark as deprecated: no longer avaialable from mastersite.linimon2005-11-271-1/+4 * Mark as deprecated: distfile for this ancient program only exists on thelinimon2005-11-271-1/+4 * - Style: ports@freebsd.org -> ports@FreeBSD.orgpav2005-11-261-1/+1 * - Add SHA256pav2005-11-2627-0/+28 * - Add SHA256pav2005-11-241-0/+1 * . Add SHA256.glewis2005-11-161-0/+1 * Mass-conversion to the USE_AUTOTOOLS New World Order. The code presentade2005-11-153-3/+3 * o) Drop maintainership cause I didn't use these ports since months anymore.lkoeller2005-11-141-1/+1 * Fix fetch.novel2005-11-111-1/+3 * Fix fetch.novel2005-11-111-1/+3 * Remove the usage of 'misc' as a secondary category.linimon2005-11-102-2/+2 * Update to KDE 3.4.3 / KOffice 1.4.2lofi2005-11-052-4/+4 * Bump PORTREVISION to chase the glib20 shared library update.marcus2005-11-059-8/+9 * Respect X11BASEmnag2005-10-261-2/+2 * Support non-standard X11BASEkris2005-10-221-0/+1 * Fix unfetchable MASTER_SITESmnag2005-10-111-1/+1 * Remove stale mastersite.linimon2005-10-091-2/+1 * Change MAINTAINER address for my ports.ehaupt2005-10-061-1/+1 * - Update to 0.3pav2005-09-232-6/+4 * - Fix doubled http:// in WWW linepav2005-09-151-1/+1 * Remove obsolete mastersite.linimon2005-09-141-1/+0 * reset maintainer to ports@FreeBSD.org since original maintainer doesn'toliver2005-09-071-1/+1 * Update to KDE 3.4.2 / KOffice 1.4.1lofi2005-08-012-4/+4 * Master site and WWW site disappeared with no sign of a replacement.kris2005-07-092-3/+2 * - Update to 0.3pav2005-07-074-33/+20 * Update to KDE 3.4.1lofi2005-06-262-4/+4 * Add lmclock.jylefort2005-06-224-0/+36 * Bump PORTREVISION for ports affected by libdockapp library version bump.lawrance2005-06-131-0/+1 * - Move USE_IMAKE and IS_INTERACTIVE before bsd.port.pre.mk inclusion.flz2005-06-061-2/+2 * Update to 0.8.1pat2005-05-283-3/+5 * Add bdesktopclock 1.1.2, a wondeful clock for desktop environment.danfe2005-05-254-0/+47 * Fix typo.nork2005-05-221-1/+1 * Add bmp-alarm 0.6.0, Alarm timer plugin fornork2005-05-224-0/+38 * Add man page.anders2005-05-181-0/+6 * Change maintainer address.thierry2005-05-141-1/+1 * Correct grammar error.adamw2005-04-171-1/+1 * At Kris's request, back out the MACHINE_ARCH spelling correction untilobrien2005-04-122-2/+2 * - Fix MASTER_SITES.flz2005-04-113-6/+26 * Assist getting more ports working on AMD64 by obeying theobrien2005-04-112-2/+2 * - Fix MASTER_SITES (and thus unbreak the port).flz2005-04-112-26/+26 * - Update to 0.3.7pav2005-04-112-5/+6 * BROKEN: Unfetchablekris2005-03-271-0/+2 * Cleanup:vs2005-03-217-57/+11 * Update to KDE 3.4lofi2005-03-216-774/+834 * Add gnomeprefix and gnomehack, now it installs stuff in the correct place formezz2005-03-172-34/+34 * Remove 1-line plists in favour of PLIST_FILESvs2005-03-152-1/+1 * - Unbreak: Chase tarball reroll (verified)vs2005-03-144-19/+4 * - Unbreak: Fix & cleanup packaging; use PORTDOCSvs2005-03-143-18/+13 * Bump PORTREVISION to chase the glib20 shared lib version change.marcus2005-03-128-6/+8 * - Reflect the state of art in gdesklets usagepav2005-03-124-6/+6 * Add gtubeclock 0.9.1, a nixie tube clock for GNOME.vs2005-03-095-0/+59 * Use @freebsd.org address for my ports.novel2005-03-082-2/+2 * BROKEN: Size mismatchkris2005-02-191-0/+2 * BROKEN: Incomplete pkg-plistkris2005-02-131-0/+2 * update xfce4-datetime-plugin to 0.3.1oliver2005-01-283-6/+5 * - bring xfce4 to 4.2oliver2005-01-271-2/+2 * Add option "-H" - horizontal offset (e.g. osdclock -H 100).krion2005-01-082-5/+37 * Reset MAINTAINER to ports@.nork2004-12-231-1/+1 * Fix plistpat2004-12-211-0/+2 * Update to KDE 3.3.2lofi2004-12-146-120/+84 * Unbreak:vs2004-12-092-2/+12 * BROKEN: Build failskris2004-12-041-0/+2 * Add osdclock 0.5, small clock which uses libxosd to render text to thevs2004-11-305-0/+74 * new port: x11-clocks/buici-clockedwin2004-11-277-0/+65 * Update to 0.7.1.adamw2004-11-262-3/+3 * Update to 0.7.adamw2004-11-22