diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-05-22 01:06:45 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-05-22 01:06:45 +0800 |
commit | 84c2e3735ce6e4df88142e86446f9179b6e341e4 (patch) | |
tree | 7e6d2043810d0c37ee2581f0783095aefdec1e1b /plugins/itip-formatter/itip-formatter.c | |
parent | aaa180af5abef44bb3e3d3c3c5968ca191a3dbda (diff) | |
parent | 2914345f9672559fed0ad88d2841ea4801d8d244 (diff) | |
download | gsoc2013-evolution-84c2e3735ce6e4df88142e86446f9179b6e341e4.tar gsoc2013-evolution-84c2e3735ce6e4df88142e86446f9179b6e341e4.tar.gz gsoc2013-evolution-84c2e3735ce6e4df88142e86446f9179b6e341e4.tar.bz2 gsoc2013-evolution-84c2e3735ce6e4df88142e86446f9179b6e341e4.tar.lz gsoc2013-evolution-84c2e3735ce6e4df88142e86446f9179b6e341e4.tar.xz gsoc2013-evolution-84c2e3735ce6e4df88142e86446f9179b6e341e4.tar.zst gsoc2013-evolution-84c2e3735ce6e4df88142e86446f9179b6e341e4.zip |
Merge branch 'master' into kill-bonobo
Conflicts:
addressbook/gui/component/addressbook-view.c
addressbook/gui/component/component-factory.c
addressbook/gui/component/eab-composer-util.h
addressbook/gui/widgets/Makefile.am
addressbook/gui/widgets/e-addressbook-model.c
addressbook/gui/widgets/e-addressbook-view.c
addressbook/gui/widgets/e-addressbook-view.h
addressbook/gui/widgets/eab-gui-util.c
addressbook/gui/widgets/eab-gui-util.h
addressbook/gui/widgets/eab-menu.h
addressbook/gui/widgets/eab-popup.h
calendar/gui/calendar-component.c
calendar/gui/e-cal-event.h
calendar/gui/e-calendar-table.c
calendar/gui/e-calendar-view.c
calendar/gui/e-calendar-view.h
calendar/gui/e-memo-table.c
calendar/gui/memos-component.c
calendar/gui/tasks-component.c
composer/e-composer-header-table.c
composer/e-composer-private.h
composer/e-msg-composer.c
composer/e-msg-composer.h
composer/evolution-composer.ui
configure.ac
data/icons/Makefile.am
em-format/em-format.c
em-format/em-format.h
mail/Makefile.am
mail/e-mail-shell-migrate.c
mail/e-searching-tokenizer.c
mail/e-searching-tokenizer.h
mail/em-composer-utils.c
mail/em-composer-utils.h
mail/em-folder-browser.c
mail/em-folder-tree-model.c
mail/em-folder-view.c
mail/em-format-html-display.c
mail/em-format-html-display.h
mail/em-mailer-prefs.c
mail/em-message-browser.c
plugins/vcard-inline/Makefile.am
plugins/vcard-inline/org-gnome-vcard-inline.eplug.xml
plugins/vcard-inline/vcard-inline.c
shell/e-component-registry.h
shell/e-shell-window.c
shell/es-menu.h
widgets/misc/e-filter-bar.c
widgets/misc/e-filter-bar.h
widgets/misc/e-search-bar.c
widgets/misc/e-search-bar.h
Diffstat (limited to 'plugins/itip-formatter/itip-formatter.c')
-rw-r--r-- | plugins/itip-formatter/itip-formatter.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c index 6eebfdee92..04049ef6d5 100644 --- a/plugins/itip-formatter/itip-formatter.c +++ b/plugins/itip-formatter/itip-formatter.c @@ -38,6 +38,7 @@ #include <camel/camel-multipart.h> #include <camel/camel-service.h> #include <camel/camel-store.h> +#include <camel/camel-db.h> #include <libecal/e-cal.h> #include <libecal/e-cal-time-util.h> #include <libedataserverui/e-source-selector.h> @@ -831,9 +832,12 @@ find_server (struct _itip_puri *pitip, ECalComponent *comp) } } - if (current_source) + if (current_source) { l = sources_conflict; - else { + + pitip->progress_info_id = itip_view_add_lower_info_item (ITIP_VIEW (pitip->view), ITIP_VIEW_INFO_ITEM_TYPE_PROGRESS, + _("Opening the calendar. Please wait..")); + } else { pitip->progress_info_id = itip_view_add_lower_info_item (ITIP_VIEW (pitip->view), ITIP_VIEW_INFO_ITEM_TYPE_PROGRESS, _("Searching for an existing version of this appointment")); @@ -1876,6 +1880,7 @@ view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data) camel_message_info_free (mi); if (tag) { int i = 0, count; + GSList *list = NULL; count = camel_folder_summary_count (pitip->folder->summary); for (i = 0; i < count; i++) { @@ -1884,12 +1889,18 @@ view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data) continue; camel_message_info_ref (mi); if ( camel_message_info_user_tag (mi, "recurrence-key") && g_str_equal (camel_message_info_user_tag (mi, "recurrence-key"), tag)) { + camel_folder_summary_remove_uid_fast (pitip->folder->summary, (char *)(mi->uid)); + camel_folder_change_info_remove_uid (changes, (char *) mi->uid); + list = g_slist_prepend (list, (gpointer) mi->uid); - camel_folder_summary_remove_uid(pitip->folder->summary, (char *)(mi->uid)); - camel_folder_change_info_remove_uid (changes, (char *)(mi->uid)); + /* step back once to have the right index */ + count--; + i--; } camel_message_info_free (mi); } + camel_db_delete_uids (pitip->folder->parent_store->cdb_w, pitip->folder->full_name, list, NULL); + g_slist_free (list); } } else { /* Either not a recurring appointment or "apply-to-all" is not selected. So just delete this instance alone */ |