static void compose_toggle_encrypt_cb (gpointer data,
guint action,
GtkWidget *widget);
+static void compose_set_gnupg_mode_cb (gpointer data,
+ guint action,
+ GtkWidget *widget);
+static void compose_update_gnupg_mode_menu_item(Compose * compose);
+static void activate_gnupg_mode (Compose *compose,
+ PrefsAccount *account);
#endif
static void compose_toggle_return_receipt_cb(gpointer data, guint action,
GtkWidget *widget);
{N_("/_Message/---"), NULL, NULL, 0, "<Separator>"},
{N_("/_Message/Si_gn"), NULL, compose_toggle_sign_cb , 0, "<ToggleItem>"},
{N_("/_Message/_Encrypt"), NULL, compose_toggle_encrypt_cb, 0, "<ToggleItem>"},
+ {N_("/_Message/Mode/MIME"), NULL, compose_set_gnupg_mode_cb, GNUPG_MODE_DETACH, "<RadioItem>"},
+ {N_("/_Message/Mode/Inline"), NULL, compose_set_gnupg_mode_cb, GNUPG_MODE_INLINE, "/Message/Mode/MIME"},
#endif /* USE_GPGME */
{N_("/_Message/---"), NULL, NULL, 0, "<Separator>"},
{N_("/_Message/_Priority"), NULL, NULL, 0, "<Branch>"},
#if USE_GPGME
menu_set_sensitive(ifactory, "/Message/Sign", FALSE);
menu_set_sensitive(ifactory, "/Message/Encrypt", FALSE);
+ menu_set_sensitive(ifactory, "/Message/Mode/MIME", FALSE);
+ menu_set_sensitive(ifactory, "/Message/Mode/Inline", FALSE);
#endif
menu_set_sensitive(ifactory, "/Message/Request Return Receipt", FALSE);
menu_set_sensitive(ifactory, "/Tools/Template", FALSE);
compose_entry_append(compose,
compose->ml_post,
COMPOSE_TO);
- else
+ else if (!(to_all || ignore_replyto)
+ && msginfo->folder
+ && msginfo->folder->prefs->enable_default_reply_to) {
+ compose_entry_append(compose,
+ msginfo->folder->prefs->default_reply_to,
+ COMPOSE_TO);
+ } else
compose_entry_append(compose,
(compose->replyto && !ignore_replyto)
? compose->replyto
SET_ADDRESS(COMPOSE_REPLYTO, compose->replyto);
compose_update_priority_menu_item(compose);
-
+#if USE_GPGME
+ compose_update_gnupg_mode_menu_item(compose);
+#endif
compose_show_first_last_header(compose, TRUE);
#if 0 /* NEW COMPOSE GUI */
menuitem = gtk_item_factory_get_item(ifactory, "/Message/Encrypt");
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),
account->default_encrypt);
+
+ activate_gnupg_mode(compose, account);
#endif /* USE_GPGME */
}
g_free(msgpath);
folder_item_remove_msg(folder, msgnum);
- folderview_update_item(folder, TRUE);
+ folder_update_item(folder, TRUE);
return val;
}
if (compose->mode == COMPOSE_REEDIT) {
compose_remove_reedit_target(compose);
if (compose->targetinfo)
- folderview_update_item
+ folder_update_item
(compose->targetinfo->folder, TRUE);
}
/* save message to outbox */
alertpanel_error
(_("Can't save the message to Sent."));
else
- folderview_update_item(outbox, TRUE);
+ folder_update_item(outbox, TRUE);
}
}
#if USE_GPGME
if (!is_draft &&
- compose->use_signing && !compose->account->clearsign &&
+ compose->use_signing && !compose->gnupg_mode &&
encoding == ENC_8BIT)
encoding = ENC_BASE64;
#endif
}
#if USE_GPGME
- if (!is_draft && compose->use_signing && compose->account->clearsign) {
+ if (!is_draft && compose->use_signing && compose->gnupg_mode) {
if (compose_clearsign_text(compose, &buf) < 0) {
g_warning("clearsign failed\n");
fclose(fp);
if (is_draft)
return 0;
- if ((compose->use_signing && !compose->account->clearsign) ||
+ if ((compose->use_signing && !compose->gnupg_mode) ||
compose->use_encryption) {
if (canonicalize_file_replace(file) < 0) {
unlink(file);
}
}
- if (compose->use_signing && !compose->account->clearsign) {
+ if (compose->use_signing && !compose->gnupg_mode) {
GSList *key_list;
if (compose_create_signers_list(compose, &key_list) < 0 ||
}
if (compose->use_encryption) {
if (rfc2015_encrypt(file, compose->to_list,
- compose->account->ascii_armored) < 0) {
+ compose->gnupg_mode) < 0) {
unlink(file);
return -1;
}
if (procmsg_msg_exist(msginfo)) {
folder_item_remove_msg(drafts, msginfo->msgnum);
- folderview_update_item(drafts, TRUE);
+ folder_update_item(drafts, TRUE);
}
}
compose_remove_reedit_target(compose);
if (compose->targetinfo &&
compose->targetinfo->folder != queue)
- folderview_update_item
+ folder_update_item
(compose->targetinfo->folder, TRUE);
}
- folderview_update_item(queue, TRUE);
+ folder_update_item(queue, TRUE);
if ((msgnum != NULL) && (item != NULL)) {
*msgnum = num;
/* Priority */
compose->priority = PRIORITY_NORMAL;
compose_update_priority_menu_item(compose);
+
+#if USE_GPGME
+ activate_gnupg_mode(compose, account);
+#endif
set_toolbar_style(compose);
}
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);
}
+
+#if USE_GPGME
+static void compose_set_gnupg_mode_cb(gpointer data,
+ guint action,
+ GtkWidget *widget)
+{
+ Compose *compose = (Compose *) data;
+ compose->gnupg_mode = action;
+}
+
+static void compose_update_gnupg_mode_menu_item(Compose * compose)
+{
+ GtkItemFactory *ifactory;
+ GtkWidget *menuitem = NULL;
+
+ ifactory = gtk_item_factory_from_widget(compose->menubar);
+
+ switch (compose->gnupg_mode) {
+ case GNUPG_MODE_DETACH:
+ menuitem = gtk_item_factory_get_item
+ (ifactory, "/Message/Mode/MIME");
+ break;
+ case GNUPG_MODE_INLINE:
+ menuitem = gtk_item_factory_get_item
+ (ifactory, "/Message/Mode/Inline");
+ break;
+ }
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);
+
+ if (compose->use_encryption == TRUE || compose->use_signing == TRUE)
+ menu_set_sensitive(ifactory, "/Message/Mode", TRUE);
+ else
+ menu_set_sensitive(ifactory, "/Message/Mode", FALSE);
+}
+#endif
static void compose_set_template_menu(Compose *compose)
{
if (!val) gtk_widget_destroy(compose->window);
}
+void compose_draft (gpointer data)
+{
+ compose_draft_cb(data, 0, NULL);
+}
+
static void compose_draft_cb(gpointer data, guint action, GtkWidget *widget)
{
Compose *compose = (Compose *)data;
compose_remove_reedit_target(compose);
if (compose->targetinfo &&
compose->targetinfo->folder != draft)
- folderview_update_item(compose->targetinfo->folder,
+ folder_update_item(compose->targetinfo->folder,
TRUE);
}
newmsginfo = folder_item_fetch_msginfo(draft, msgnum);
procmsg_msginfo_unset_flags(newmsginfo, ~0, ~0);
MSG_SET_TMP_FLAGS(newmsginfo->flags, MSG_DRAFT);
- folderview_update_item(draft, TRUE);
+ folder_update_item(draft, TRUE);
procmsg_msginfo_free(newmsginfo);
lock = FALSE;
compose->use_signing = TRUE;
else
compose->use_signing = FALSE;
+
+ compose_update_gnupg_mode_menu_item(compose);
}
static void compose_toggle_encrypt_cb(gpointer data, guint action,
compose->use_encryption = TRUE;
else
compose->use_encryption = FALSE;
+
+ compose_update_gnupg_mode_menu_item(compose);
+}
+
+static void activate_gnupg_mode (Compose *compose, PrefsAccount *account)
+{
+ if (account->default_gnupg_mode)
+ compose->gnupg_mode = GNUPG_MODE_INLINE;
+ else
+ compose->gnupg_mode = GNUPG_MODE_DETACH;
+
+ compose_update_gnupg_mode_menu_item(compose);
}
#endif /* USE_GPGME */