aboutsummaryrefslogtreecommitdiffstats
path: root/modules/itip-formatter/e-mail-part-itip.h
diff options
context:
space:
mode:
Diffstat (limited to 'modules/itip-formatter/e-mail-part-itip.h')
-rw-r--r--modules/itip-formatter/e-mail-part-itip.h123
1 files changed, 123 insertions, 0 deletions
diff --git a/modules/itip-formatter/e-mail-part-itip.h b/modules/itip-formatter/e-mail-part-itip.h
new file mode 100644
index 0000000000..d1d577a675
--- /dev/null
+++ b/modules/itip-formatter/e-mail-part-itip.h
@@ -0,0 +1,123 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_MAIL_PART_ITIP_H
+#define E_MAIL_PART_ITIP_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <libecal/libecal.h>
+#include <libedataserverui/libedataserverui.h>
+#include <libebackend/libebackend.h>
+
+#include <em-format/e-mail-part.h>
+
+#include "itip-view.h"
+
+#define E_MAIL_PART_ITIP(p) ((EMailPartItip *) p)
+
+G_BEGIN_DECLS
+
+typedef struct _EMailPartItip EMailPartItip;
+
+struct _EMailPartItip {
+ EMailPart parent;
+
+ CamelFolder *folder;
+ CamelMimeMessage *msg;
+ CamelMimePart *part;
+
+ gchar *uid;
+
+ ESourceRegistry *registry;
+ GHashTable *clients[E_CAL_CLIENT_SOURCE_TYPE_LAST];
+
+ ECalClient *current_client;
+ ECalClientSourceType type;
+
+ /* cancelled when freeing the puri */
+ GCancellable *cancellable;
+
+ gchar *vcalendar;
+ ECalComponent *comp;
+ icalcomponent *main_comp;
+ icalcomponent *ical_comp;
+ icalcomponent *top_level;
+ icalcompiter iter;
+ icalproperty_method method;
+ time_t start_time;
+ time_t end_time;
+
+ gint current;
+ gint total;
+
+ gchar *calendar_uid;
+
+ gchar *from_address;
+ gchar *from_name;
+ gchar *to_address;
+ gchar *to_name;
+ gchar *delegator_address;
+ gchar *delegator_name;
+ gchar *my_address;
+ gint view_only;
+
+ guint progress_info_id;
+
+ gboolean delete_message;
+ /* a reply can only be sent if and only if there is an organizer */
+ gboolean has_organizer;
+ /*
+ * Usually replies are sent unless the user unchecks that option.
+ * There are some cases when the default is not to sent a reply
+ * (but the user can still chose to do so by checking the option):
+ * - the organizer explicitly set RSVP=FALSE for the current user
+ * - the event has no ATTENDEEs: that's the case for most non-meeting
+ * events
+ *
+ * The last case is meant for forwarded non-meeting
+ * events. Traditionally Evolution hasn't offered to send a
+ * reply, therefore the updated implementation mimics that
+ * behavior.
+ *
+ * Unfortunately some software apparently strips all ATTENDEEs
+ * when forwarding a meeting; in that case sending a reply is
+ * also unchecked by default. So the check for ATTENDEEs is a
+ * tradeoff between sending unwanted replies in cases where
+ * that wasn't done in the past and not sending a possibly
+ * wanted reply where that wasn't possible in the past
+ * (because replies to forwarded events were not
+ * supported). Overall that should be an improvement, and the
+ * user can always override the default.
+ */
+ gboolean no_reply_wanted;
+
+ guint update_item_progress_info_id;
+ guint update_item_error_info_id;
+ ItipViewResponse update_item_response;
+ gboolean can_delete_invitation_from_cache;
+ GHashTable *real_comps; /* ESource's UID -> ECalComponent stored on the server */
+
+ ItipView *view;
+};
+
+typedef struct _EMailPartItip EMailPartItip;
+
+G_END_DECLS
+
+#endif /* E_MAIL_PART_ITIP_H */