/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2005 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2006 Hiroyuki Yamamoto and the Sylpheed-Claws team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "defs.h"
#include "filtering.h"
#include "partial_download.h"
#include "gedit-print.h"
+#include "inc.h"
static GList *messageview_list = NULL;
static GtkItemFactoryEntry msgview_entries[] =
{
{N_("/_File"), NULL, NULL, 0, "<Branch>"},
- {N_("/_File/_Save as..."), NULL, save_as_cb, 0, NULL},
- {N_("/_File/_Print..."), NULL, print_cb, 0, NULL},
+ {N_("/_File/_Save as..."), "<control>S", save_as_cb, 0, NULL},
+ {N_("/_File/_Print..."), "<control>P", print_cb, 0, NULL},
{N_("/_File/---"), NULL, NULL, 0, "<Separator>"},
- {N_("/_File/_Close"), NULL, close_cb, 0, NULL},
+ {N_("/_File/_Close"), "<control>W", close_cb, 0, NULL},
{N_("/_Edit"), NULL, NULL, 0, "<Branch>"},
- {N_("/_Edit/_Copy"), NULL, copy_cb, 0, NULL},
- {N_("/_Edit/Select _all"), NULL, allsel_cb, 0, NULL},
+ {N_("/_Edit/_Copy"), "<control>C", copy_cb, 0, NULL},
+ {N_("/_Edit/Select _all"), "<control>A", allsel_cb, 0, NULL},
{N_("/_Edit/---"), NULL, NULL, 0, "<Separator>"},
{N_("/_Edit/_Find in current message..."),
- NULL, search_cb, 0, NULL},
+ "<control>F", search_cb, 0, NULL},
{N_("/_View"), NULL, NULL, 0, "<Branch>"},
ENC_ACTION(C_ISO_8859_1)},
{N_("/_View/Character _encoding/Western European (ISO-8859-15)"),
ENC_ACTION(C_ISO_8859_15)},
+ {N_("/_View/Character _encoding/Western European (Windows-1252)"),
+ ENC_ACTION(C_WINDOWS_1252)},
ENC_SEPARATOR,
{N_("/_View/Character _encoding/Central European (ISO-8859-_2)"),
ENC_ACTION(C_ISO_8859_2)},
{N_("/_View/Character _encoding/Hebrew (Windows-1255)"),
ENC_ACTION(C_CP1255)},
ENC_SEPARATOR,
+ {N_("/_View/Character _encoding/Arabic (ISO-8859-_6)"),
+ ENC_ACTION(C_ISO_8859_6)},
+ {N_("/_View/Character _encoding/Arabic (Windows-1256)"),
+ ENC_ACTION(C_CP1256)},
+ ENC_SEPARATOR,
{N_("/_View/Character _encoding/Turkish (ISO-8859-_9)"),
ENC_ACTION(C_ISO_8859_9)},
ENC_SEPARATOR,
#undef DEC_ACTION
{N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
- {N_("/_View/Mess_age source"), NULL, view_source_cb, 0, NULL},
- {N_("/_View/Show all _headers"),NULL, show_all_header_cb, 0, "<ToggleItem>"},
+ {N_("/_View/Mess_age source"), "<control>U", view_source_cb, 0, NULL},
+ {N_("/_View/Show all _headers"),"<control>H", show_all_header_cb, 0, "<ToggleItem>"},
{N_("/_Message"), NULL, NULL, 0, "<Branch>"},
{N_("/_Message/Compose _new message"),
- NULL, compose_cb, 0, NULL},
+ "<control>M", compose_cb, 0, NULL},
{N_("/_Message/---"), NULL, NULL, 0, "<Separator>"},
- {N_("/_Message/_Reply"), NULL, reply_cb, COMPOSE_REPLY, NULL},
+ {N_("/_Message/_Reply"), "<control>R", reply_cb, COMPOSE_REPLY, NULL},
{N_("/_Message/Repl_y to/_all"),
- NULL, reply_cb, COMPOSE_REPLY_TO_ALL, NULL},
+ "<control><shift>R", reply_cb, COMPOSE_REPLY_TO_ALL, NULL},
{N_("/_Message/Repl_y to/_sender"),
NULL, reply_cb, COMPOSE_REPLY_TO_SENDER, NULL},
{N_("/_Message/Repl_y to/mailing _list"),
- NULL, reply_cb, COMPOSE_REPLY_TO_LIST, NULL},
+ "<control>L", reply_cb, COMPOSE_REPLY_TO_LIST, NULL},
{N_("/_Message/---"), NULL, NULL, 0, "<Separator>"},
- {N_("/_Message/_Forward"), NULL, reply_cb, COMPOSE_FORWARD, NULL},
+ {N_("/_Message/_Forward"), "<control><alt>F", reply_cb, COMPOSE_FORWARD_INLINE, NULL},
{N_("/_Message/For_ward as attachment"),
NULL, reply_cb, COMPOSE_FORWARD_AS_ATTACH, NULL},
{N_("/_Message/Redirec_t"), NULL, reply_cb, COMPOSE_REDIRECT, NULL},
{N_("/_Message/Re-_edit"), NULL, reedit_cb, 0, NULL},
{N_("/_Tools"), NULL, NULL, 0, "<Branch>"},
- {N_("/_Tools/_Address book"), NULL, addressbook_open_cb, 0, NULL},
+ {N_("/_Tools/_Address book"), "<control><shift>A", addressbook_open_cb, 0, NULL},
{N_("/_Tools/Add sender to address boo_k"),
NULL, add_address_cb, 0, NULL},
{N_("/_Tools/---"), NULL, NULL, 0, "<Separator>"},
AlertValue val;
gchar *message;
message = g_strdup_printf(
- _("The notification address to which the "
- "return receipt is to be sent\n"
- "does not correspond to the return path:\n"
- "Notification address: %s\n"
- "Return path: %s\n"
- "It is advised to not to send the return "
- "receipt."), to, buf);
- val = alertpanel_full(_("Warning"), message,
- _("Send"), _("+Don't Send"), NULL, FALSE,
+ _("The notification address to which the return receipt is\n"
+ "to be sent does not correspond to the return path:\n"
+ "Notification address: %s\n"
+ "Return path: %s\n"
+ "It is advised to not to send the return receipt."),
+ to, buf);
+ val = alertpanel_full(_("Warning"), message, _("_Send"),
+ _("+_Don't Send"), NULL, FALSE,
NULL, ALERT_WARNING, G_ALERTALTERNATE);
g_free(message);
if (val != G_ALERTDEFAULT)
if (ac_list == NULL) {
AlertValue val =
alertpanel_full(_("Warning"),
- _("This message is asking for a return "
- "receipt notification\n"
- "but according to its 'To:' and 'CC:' "
- "headers it was not\nofficially addressed "
- "to you.\n"
- "It is advised to not to send the return ."
- "receipt."),
- _("Send"), _("+Don't Send"),NULL, FALSE,
- NULL, ALERT_WARNING, G_ALERTALTERNATE);
+ _("This message is asking for a return receipt notification\n"
+ "but according to its 'To:' and 'CC:' headers it was not\n"
+ "officially addressed to you.\n"
+ "It is advised to not to send the return receipt."),
+ _("_Send"), _("+_Don't Send"),NULL, FALSE,
+ NULL, ALERT_WARNING, G_ALERTALTERNATE);
if (val != G_ALERTDEFAULT)
return -1;
}
- if (g_list_length(ac_list) > 1)
- account = select_account_from_list(ac_list);
+ if (g_list_length(ac_list) > 1) {
+ if ((account = select_account_from_list(ac_list)) == NULL)
+ return -1;
+ }
else if (ac_list != NULL)
account = (PrefsAccount *) ac_list->data;
g_list_free(ac_list);
return -1;
}
- if (prefs_common.work_offline)
- if (alertpanel(_("Offline warning"),
- _("You're working offline. Override?"),
- GTK_STOCK_YES, GTK_STOCK_NO, NULL) != G_ALERTDEFAULT)
- return 0;
+ if (prefs_common.work_offline && !inc_offline_should_override())
+ return 0;
/* send it */
path = folder_item_fetch_msg(queue, num);
{
gchar *file;
MimeInfo *mimeinfo, *encinfo;
-
+ gchar *subject = NULL;
g_return_val_if_fail(msginfo != NULL, -1);
mimeinfo = procmime_scan_message(msginfo);
messageview->all_headers);
mimeview_show_message(messageview->mimeview, mimeinfo, file);
+
+ if (messageview->window)
+ gtk_window_set_title(GTK_WINDOW(messageview->window),
+ _("Sylpheed-Claws - Message View"));
+ if (messageview->window && msginfo->subject) {
+ subject = g_strdup(msginfo->subject);
+ if (!g_utf8_validate(subject, -1, NULL)) {
+ g_free(subject);
+ subject = g_malloc(strlen(msginfo->subject)*2 +1);
+ conv_localetodisp(subject, strlen(msginfo->subject)*2 +1,
+ msginfo->subject);
+ }
+ if (g_utf8_validate(subject, -1, NULL))
+ gtk_window_set_title(GTK_WINDOW(messageview->window),
+ subject);
+ g_free(subject);
+ }
+
messageview_set_position(messageview, 0);
if (messageview->msginfo->partial_recv)
gboolean messageview_is_visible(MessageView *messageview)
{
+ if (messageview == NULL)
+ return FALSE;
return messageview->visible;
}
aval = alertpanel(_("Overwrite"),
_("Overwrite existing file?"),
- GTK_STOCK_OK, GTK_STOCK_CANCEL, NULL);
- if (G_ALERTDEFAULT != aval) return;
+ GTK_STOCK_CANCEL, GTK_STOCK_OK, NULL);
+ if (G_ALERTALTERNATE != aval) return;
}
src = procmsg_get_message_file(msginfo);
messageview_destroy(messageview);
return TRUE;
}
+
+ if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0)
+ return FALSE;
+
+ g_signal_stop_emission_by_name(G_OBJECT(widget),
+ "key_press_event");
+ mimeview_pass_key_press_event(messageview->mimeview, event);
return FALSE;
}
static void return_receipt_show(NoticeView *noticeview, MsgInfo *msginfo)
{
+ if (msginfo->folder
+ && (folder_has_parent_of_type(msginfo->folder, F_QUEUE)
+ || folder_has_parent_of_type(msginfo->folder, F_DRAFT)))
+ return;
+
noticeview_set_text(noticeview, _("This message asks for a return receipt."));
noticeview_set_button_text(noticeview, _("Send receipt"));
noticeview_set_button_press_callback(noticeview,
"accounts.\n"
"Please choose which account do you want to "
"use for sending the receipt notification:"),
- _("Send Notification"), _("+Cancel"), NULL,
+ _("_Send Notification"), _("+_Cancel"), NULL,
optmenu) != G_ALERTDEFAULT)
return NULL;
return account_find_from_id(account_id);