aboutsummaryrefslogtreecommitdiffstats
path: root/modules/itip-formatter/e-mail-part-itip.h
diff options
context:
space:
mode:
authorDan Vrátil <dvratil@redhat.com>2012-06-06 21:29:38 +0800
committerDan Vrátil <dvratil@redhat.com>2012-06-06 21:29:38 +0800
commit931191474643164e96b5778c790e42cca517e729 (patch)
treeaec00f3303dbcd95a8a3f18ee324ac80594ff9b5 /modules/itip-formatter/e-mail-part-itip.h
parent5b8340563c271fb684a88c6e5bb6dd3bfb629058 (diff)
downloadgsoc2013-evolution-931191474643164e96b5778c790e42cca517e729.tar
gsoc2013-evolution-931191474643164e96b5778c790e42cca517e729.tar.gz
gsoc2013-evolution-931191474643164e96b5778c790e42cca517e729.tar.bz2
gsoc2013-evolution-931191474643164e96b5778c790e42cca517e729.tar.lz
gsoc2013-evolution-931191474643164e96b5778c790e42cca517e729.tar.xz
gsoc2013-evolution-931191474643164e96b5778c790e42cca517e729.tar.zst
gsoc2013-evolution-931191474643164e96b5778c790e42cca517e729.zip
Mail formatter rewrite - convert some plugins to modules
audio-inline, itip-formatter, prefer-plain, tnef-attachments and vcard-inline plugins were converted to modules so that they can fit into concept of the new formatter. Every module still installs .eplug file, because there is no suitable API at the moment to register plugins to the plugins dialog and to extend the Preferences dialog.
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 */