aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/groupwise-features/mail-send-options.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/groupwise-features/mail-send-options.c')
-rw-r--r--plugins/groupwise-features/mail-send-options.c246
1 files changed, 0 insertions, 246 deletions
diff --git a/plugins/groupwise-features/mail-send-options.c b/plugins/groupwise-features/mail-send-options.c
deleted file mode 100644
index 7c31b6e585..0000000000
--- a/plugins/groupwise-features/mail-send-options.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- *
- * 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/>
- *
- *
- * Authors:
- * Parthasarathi Susarla <sparthasarathi@novell.com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-
-#include <glib.h>
-#include <glib/gi18n.h>
-
-#include "mail-send-options.h"
-
-#include "mail/em-utils.h"
-#include "mail/em-event.h"
-
-#include "composer/e-msg-composer.h"
-#include "composer/e-composer-from-header.h"
-#include "libedataserver/e-account.h"
-
-#include "misc/e-send-options.h"
-
-static ESendOptionsDialog * dialog = NULL;
-
-gboolean gw_ui_composer_actions (GtkUIManager *manager, EMsgComposer *composer);
-void org_gnome_composer_message_reply (EPlugin *ep, EMEventTargetMessage *t);
-
-static time_t
-add_day_to_time (time_t time, gint days)
-{
- struct tm *tm;
-
- tm = localtime (&time);
- tm->tm_mday += days;
- tm->tm_isdst = -1;
-
- return mktime (tm);
-}
-
-static void
-feed_input_data (ESendOptionsDialog * dialog, gint state, gpointer data)
-{
- EMsgComposer *comp;
- gchar value[100];
- gchar *temp = NULL;
-
- comp = (EMsgComposer *) data;
- /* we are bothered only for ok response: other cases are handled generally*/
- if (state == GTK_RESPONSE_OK) {
- if (dialog->data->gopts->reply_enabled) {
- if (dialog->data->gopts->reply_convenient)
- e_msg_composer_add_header (comp, X_REPLY_CONVENIENT ,"1" );
- else {
- time_t t;
- t = add_day_to_time (time (NULL), dialog->data->gopts->reply_within);
- strftime (value, 17, "%Y%m%dT%H%M%SZ", gmtime (&t));
- e_msg_composer_add_header (comp, X_REPLY_WITHIN , value);
- }
- }
-
- if (dialog->data->gopts->expiration_enabled) {
- if (dialog->data->gopts->expire_after != 0) {
- time_t t;
- t = add_day_to_time (time (NULL), dialog->data->gopts->expire_after);
- strftime (value, 17, "%Y%m%dT%H%M%SZ", gmtime (&t));
- e_msg_composer_add_header (comp, X_EXPIRE_AFTER, value);
- }
- }
- if (dialog->data->gopts->delay_enabled) {
- strftime (value, 17, "%Y%m%dT%H%M%SZ", gmtime (&dialog->data->gopts->delay_until));
- e_msg_composer_add_header (comp, X_DELAY_UNTIL, value);
- }
-
- /*Status Tracking Options*/
- if (dialog->data->sopts->tracking_enabled) {
- temp = g_strdup_printf ("%d",dialog->data->sopts->track_when);
- e_msg_composer_add_header (comp, X_TRACK_WHEN, temp);
- g_free (temp);
- }
-
- if (dialog->data->sopts->autodelete) {
- e_msg_composer_add_header (comp, X_AUTODELETE, "1");
- }
- if (dialog->data->sopts->opened) {
- temp = g_strdup_printf ("%d",dialog->data->sopts->opened);
- e_msg_composer_add_header (comp, X_RETURN_NOTIFY_OPEN, temp);
- g_free (temp);
- }
- if (dialog->data->sopts->declined) {
- temp = g_strdup_printf ("%d",dialog->data->sopts->declined);
- e_msg_composer_add_header (comp, X_RETURN_NOTIFY_DELETE, temp);
- g_free (temp);
- }
-
- if (dialog->data->gopts->priority) {
- temp = g_strdup_printf ("%d",dialog->data->gopts->priority);
- e_msg_composer_add_header (comp, X_SEND_OPT_PRIORITY, temp);
- g_free (temp);
- }
-
- if (dialog->data->gopts->security) {
- temp = g_strdup_printf ("%d",dialog->data->gopts->security);
- e_msg_composer_add_header (comp, X_SEND_OPT_SECURITY, temp);
- g_free (temp);
- }
- }
-}
-
-static void
-send_options_commit (EMsgComposer *comp, gpointer user_data)
-{
- if (!user_data && !E_IS_SENDOPTIONS_DIALOG (user_data))
- return;
-
- if (dialog) {
- g_object_unref (dialog);
- dialog = NULL;
- }
-}
-
-static gboolean
-account_is_groupwise (EAccount *account)
-{
- const gchar *url;
-
- if (!account)
- return FALSE;
-
- url = e_account_get_string (account, E_ACCOUNT_TRANSPORT_URL);
- return url && g_str_has_prefix (url, "groupwise://");
-}
-
-static void
-from_changed_cb (EComposerFromHeader *header, EMsgComposer *composer)
-{
- GtkActionGroup *group;
- GtkAction *action;
- EAccount *account;
-
- g_return_if_fail (header != NULL);
- g_return_if_fail (composer != NULL);
-
- group = gtkhtml_editor_get_action_group (GTKHTML_EDITOR (composer), "composer");
- g_return_if_fail (group != NULL);
-
- action = gtk_action_group_get_action (group, "gw-send-options");
- g_return_if_fail (action != NULL);
-
- account = e_composer_from_header_get_active (header);
- gtk_action_set_visible (action, account_is_groupwise (account));
-}
-
-static void
-action_send_options_cb (GtkAction *action, EMsgComposer *composer)
-{
- g_return_if_fail (action != NULL);
- g_return_if_fail (composer != NULL);
-
- /* display the send options dialog */
- if (!dialog) {
- dialog = e_send_options_dialog_new ();
- }
-
- e_send_options_dialog_run (dialog, GTK_WIDGET (composer), E_ITEM_MAIL);
-
- g_signal_connect (dialog, "sod_response",
- G_CALLBACK (feed_input_data), composer);
-
- g_signal_connect (GTK_WIDGET (composer), "destroy",
- G_CALLBACK (send_options_commit), dialog);
-}
-
-gboolean
-gw_ui_composer_actions (GtkUIManager *manager, EMsgComposer *composer)
-{
- static GtkActionEntry entries[] = {
- { "gw-send-options",
- NULL,
- N_("_Send Options"),
- NULL,
- N_("Insert Send options"),
- G_CALLBACK (action_send_options_cb) }
- };
-
- GtkhtmlEditor *editor;
- EComposerHeaderTable *headers;
- EComposerHeader *header;
-
- editor = GTKHTML_EDITOR (composer);
-
- /* Add actions to the "composer" action group. */
- gtk_action_group_add_actions (
- gtkhtml_editor_get_action_group (editor, "composer"),
- entries, G_N_ELEMENTS (entries), composer);
-
- headers = e_msg_composer_get_header_table (composer);
- header = e_composer_header_table_get_header (headers, E_COMPOSER_HEADER_FROM);
-
- from_changed_cb (E_COMPOSER_FROM_HEADER (header), composer);
- g_signal_connect (
- header, "changed",
- G_CALLBACK (from_changed_cb), composer);
-
- return TRUE;
-}
-
-void
-org_gnome_composer_message_reply (EPlugin *ep, EMEventTargetMessage *t)
-{
- EMsgComposer *comp = (struct _EMsgComposer *)t->composer;
- EComposerHeaderTable *table;
- EAccount *account = NULL;
- gchar *temp = NULL;
-
- table = e_msg_composer_get_header_table (comp);
- account = e_composer_header_table_get_account (table);
- if (!account)
- return;
-
- temp = strstr (account->transport->url, "groupwise");
- if (!temp) {
- return;
- }
- e_msg_composer_add_header (comp, "X-GW-ORIG-ITEM-ID", t->uid);
-}