Use the drafts folder specified by the account, if possible. Also, fix the

* e-msg-composer.c (save_draft): Use the drafts folder specified
	by the account, if possible. Also, fix the setting of "send_html"
	after saving the draft in case the user plans to keep editting...

svn path=/trunk/; revision=8992
This commit is contained in:
Dan Winship
2001-03-28 17:48:08 +00:00
parent b38a35a518
commit 4eef2ce98d
2 changed files with 60 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2001-03-28 Dan Winship <danw@ximian.com>
* e-msg-composer.c (save_draft): Use the drafts folder specified
by the account, if possible. Also, fix the setting of "send_html"
after saving the draft in case the user plans to keep editting...
2001-03-27 Larry Ewing <lewing@ximian.com>
* e-msg-composer.c (e_msg_composer_set_send_html): set the

View File

@ -55,6 +55,7 @@
#include "mail/mail-crypto.h"
#include "mail/mail-tools.h"
#include "mail/mail-ops.h"
#include "mail/mail-mt.h"
#include "e-util/e-html-utils.h"
#include <gal/widgets/e-gui-utils.h>
@ -762,16 +763,65 @@ save_done (CamelFolder *folder, CamelMimeMessage *msg, CamelMessageInfo *info, i
g_free (si);
}
extern CamelFolder *drafts_folder;
extern char *default_drafts_folder_uri;
static void
use_default_drafts_cb (gint reply, gpointer data)
{
CamelFolder **folder = data;
if (reply == 0)
*folder = drafts_folder;
}
static void
save_folder (char *uri, CamelFolder *folder, gpointer data)
{
CamelFolder **save = data;
if (folder) {
*save = folder;
camel_object_ref (CAMEL_OBJECT (folder));
}
}
static void
save_draft (EMsgComposer *composer, int quitok)
{
CamelMimeMessage *msg;
CamelMessageInfo *info;
extern CamelFolder *drafts_folder;
const MailConfigAccount *account;
struct _save_info *si;
composer->send_html = TRUE; /* always save drafts as HTML to keep formatting */
gboolean old_send_html;
CamelFolder *folder = NULL;
account = e_msg_composer_get_preferred_account (composer);
if (account && account->drafts_folder_uri &&
strcmp (account->drafts_folder_uri, default_drafts_folder_uri) != 0) {
int id;
id = mail_get_folder (account->drafts_folder_uri, save_folder, &folder);
mail_msg_wait (id);
if (!folder) {
GtkWidget *dialog;
dialog = gnome_ok_cancel_dialog_parented (_("Unable to open the drafts folder for this account.\n"
"Would you like to use the default drafts folder?"),
use_default_drafts_cb, &folder, GTK_WINDOW (composer));
gnome_dialog_run_and_close (GNOME_DIALOG (dialog));
if (!folder)
return;
}
} else
folder = drafts_folder;
/* always save drafts as HTML to keep formatting */
old_send_html = composer->send_html;
composer->send_html = TRUE;
msg = e_msg_composer_get_message (composer);
composer->send_html = old_send_html;
info = g_new0 (CamelMessageInfo, 1);
info->flags = CAMEL_MESSAGE_DRAFT;
@ -781,7 +831,7 @@ save_draft (EMsgComposer *composer, int quitok)
gtk_object_ref (GTK_OBJECT (composer));
si->quitok = quitok;
mail_append_mail (drafts_folder, msg, info, save_done, si);
mail_append_mail (folder, msg, info, save_done, si);
camel_object_unref (CAMEL_OBJECT (msg));
}