[evolution] Bug #482327 - Save attached calendar with multiple items easily
- From: Milan Crha <mcrha src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [evolution] Bug #482327 - Save attached calendar with multiple items easily
- Date: Fri, 6 Nov 2009 17:05:57 +0000 (UTC)
commit db0d0594b0eb20ea16651176d91e60a4b48cef35
Author: Milan Crha <mcrha redhat com>
Date: Fri Nov 6 18:04:25 2009 +0100
Bug #482327 - Save attached calendar with multiple items easily
plugins/itip-formatter/itip-formatter.c | 33 ++++++++++++++++++++++++++++++-
1 files changed, 32 insertions(+), 1 deletions(-)
---
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index 250bbef..8ed7a51 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -1474,6 +1474,21 @@ get_next (icalcompiter *iter)
}
static void
+save_vcalendar_cb (GtkWidget *button, struct _itip_puri *pitip)
+{
+ g_return_if_fail (pitip != NULL);
+ g_return_if_fail (pitip->vcalendar != NULL);
+ g_return_if_fail (pitip->part != NULL);
+
+ if (!camel_mime_part_get_filename (pitip->part)) {
+ /* To Translators: This is a default file name when saving calendar part */
+ camel_mime_part_set_filename (pitip->part, _("calendar.ics"));
+ }
+
+ em_utils_save_part (GTK_WINDOW (gtk_widget_get_toplevel (button)), _("Save calendar"), pitip->part);
+}
+
+static GtkWidget *
set_itip_error (struct _itip_puri *pitip, GtkContainer *container, const gchar *primary, const gchar *secondary)
{
GtkWidget *vbox, *label;
@@ -1496,6 +1511,8 @@ set_itip_error (struct _itip_puri *pitip, GtkContainer *container, const gchar *
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
gtk_container_add (container, vbox);
+
+ return vbox;
}
static gboolean
@@ -1603,10 +1620,24 @@ extract_itip_data (struct _itip_puri *pitip, GtkContainer *container, gboolean *
pitip->total += icalcomponent_count_components (pitip->main_comp, ICAL_VJOURNAL_COMPONENT);
if (pitip->total > 1) {
- set_itip_error (pitip, container,
+ GtkWidget *save, *vbox, *hbox;
+
+ vbox = set_itip_error (pitip, container,
_("The calendar attached contains multiple items"),
_("To process all of these items, the file should be saved and the calendar imported"));
+ g_return_val_if_fail (vbox != NULL, FALSE);
+
+ hbox = gtk_hbox_new (FALSE, 0);
+
+ save = gtk_button_new_from_stock (GTK_STOCK_SAVE);
+ gtk_container_set_border_width (GTK_CONTAINER (save), 10);
+ gtk_box_pack_start (GTK_BOX (hbox), save, FALSE, FALSE, 0);
+
+ gtk_widget_show_all (hbox);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+
+ g_signal_connect (save, "clicked", G_CALLBACK (save_vcalendar_cb), pitip);
return FALSE;
} if (pitip->total > 0) {
pitip->current = 1;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]