Same.
2003-11-19 Jeffrey Stedfast <fejj@ximian.com> * em-utils.c (em_utils_selection_set_urilist): Same. * em-format-html-display.c (efhd_drag_data_get): Same as below. * em-folder-tree.c (drag_text_uri_list): Terminate each url of a text/uri-list with a \r\n. svn path=/trunk/; revision=23451
This commit is contained in:
committed by
Jeffrey Stedfast
parent
23a30c833d
commit
dc497cb36b
@ -1,3 +1,12 @@
|
||||
2003-11-19 Jeffrey Stedfast <fejj@ximian.com>
|
||||
|
||||
* em-utils.c (em_utils_selection_set_urilist): Same.
|
||||
|
||||
* em-format-html-display.c (efhd_drag_data_get): Same as below.
|
||||
|
||||
* em-folder-tree.c (drag_text_uri_list): Terminate each url of a
|
||||
text/uri-list with a \r\n.
|
||||
|
||||
2003-11-19 Ettore Perazzoli <ettore@ximian.com>
|
||||
|
||||
* GNOME_Evolution_Mail.server.in.in: Add an
|
||||
|
||||
@ -698,7 +698,7 @@ drag_text_uri_list (EMFolderTree *emft, CamelFolder *src, GtkSelectionData *sele
|
||||
const char *tmpdir;
|
||||
CamelStore *store;
|
||||
GPtrArray *uids;
|
||||
char *url;
|
||||
GString *url;
|
||||
|
||||
if (!(tmpdir = e_mkdtemp ("drag-n-drop-XXXXXX"))) {
|
||||
camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
|
||||
@ -707,12 +707,13 @@ drag_text_uri_list (EMFolderTree *emft, CamelFolder *src, GtkSelectionData *sele
|
||||
return;
|
||||
}
|
||||
|
||||
url = g_strdup_printf ("mbox:%s", tmpdir);
|
||||
if (!(store = camel_session_get_store (session, url, ex))) {
|
||||
url = g_string_new ("mbox:");
|
||||
g_string_append (url, tmpdir);
|
||||
if (!(store = camel_session_get_store (session, url->str, ex))) {
|
||||
camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
|
||||
_("Could not create temporary mbox store: %s"),
|
||||
camel_exception_get_description (ex));
|
||||
g_free (url);
|
||||
g_string_free (url, TRUE);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -723,7 +724,7 @@ drag_text_uri_list (EMFolderTree *emft, CamelFolder *src, GtkSelectionData *sele
|
||||
camel_exception_get_description (ex));
|
||||
|
||||
camel_object_unref (store);
|
||||
g_free (url);
|
||||
g_string_free (url, TRUE);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -737,13 +738,15 @@ drag_text_uri_list (EMFolderTree *emft, CamelFolder *src, GtkSelectionData *sele
|
||||
_("Could not copy messages to temporary mbox folder: %s"),
|
||||
camel_exception_get_description (ex));
|
||||
} else {
|
||||
memcpy (url, "file", 4);
|
||||
gtk_selection_data_set (selection, selection->target, 8, url, strlen (url));
|
||||
/* replace "mbox:" with "file:" */
|
||||
memcpy (url->str, "file", 4);
|
||||
g_string_append (url, "\r\n");
|
||||
gtk_selection_data_set (selection, selection->target, 8, url->str, url->len);
|
||||
}
|
||||
|
||||
camel_folder_free_uids (src, uids);
|
||||
camel_object_unref (dest);
|
||||
g_free (url);
|
||||
g_string_free (url, TRUE);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
||||
@ -984,10 +984,10 @@ efhd_drag_data_get(GtkWidget *w, GdkDragContext *drag, GtkSelectionData *data, g
|
||||
stream = camel_stream_mem_new();
|
||||
/* TODO: shoudl format_format_text run on the content-object? */
|
||||
/* TODO: should we just do format_content? */
|
||||
if (camel_content_type_is (((CamelDataWrapper *)part)->mime_type, "text", "*"))
|
||||
if (camel_content_type_is (((CamelDataWrapper *)part)->mime_type, "text", "*")) {
|
||||
/* FIXME: this should be an em_utils method, it only needs a default charset param */
|
||||
em_format_format_text((EMFormat *)pobject->format, stream, (CamelDataWrapper *)part);
|
||||
else {
|
||||
} else {
|
||||
CamelDataWrapper *dw = camel_medium_get_content_object((CamelMedium *)part);
|
||||
|
||||
camel_data_wrapper_decode_to_stream(dw, stream);
|
||||
@ -1010,7 +1010,7 @@ efhd_drag_data_get(GtkWidget *w, GdkDragContext *drag, GtkSelectionData *data, g
|
||||
if (path == NULL)
|
||||
return;
|
||||
|
||||
uri = g_strdup_printf("file://%s", path);
|
||||
uri = g_strdup_printf("file://%s\r\n", path);
|
||||
g_free(path);
|
||||
gtk_selection_data_set(data, data->target, 8, uri, strlen(uri));
|
||||
g_object_set_data_full((GObject *)w, "e-drag-uri", uri, g_free);
|
||||
|
||||
@ -1837,7 +1837,7 @@ em_utils_selection_set_urilist(GtkSelectionData *data, CamelFolder *folder, GPtr
|
||||
{
|
||||
const char *tmpdir;
|
||||
CamelStream *fstream;
|
||||
char *uri;
|
||||
char *uri, *p;
|
||||
int fd;
|
||||
|
||||
tmpdir = e_mkdtemp("drag-n-drop-XXXXXX");
|
||||
@ -1847,16 +1847,19 @@ em_utils_selection_set_urilist(GtkSelectionData *data, CamelFolder *folder, GPtr
|
||||
/* FIXME: this used to save a single message with the subject
|
||||
as the filename but it was unsafe, and makes this messier,
|
||||
the pain */
|
||||
|
||||
uri = alloca(strlen(tmpdir)+16);
|
||||
sprintf(uri, "file:///%s/mbox", tmpdir);
|
||||
|
||||
p = uri = g_alloca (strlen (tmpdir) + 16);
|
||||
p += sprintf (uri, "file:///%s/mbox", tmpdir);
|
||||
|
||||
fd = open(uri + 7, O_WRONLY | O_CREAT | O_EXCL, 0666);
|
||||
if (fd == -1)
|
||||
return;
|
||||
|
||||
|
||||
fstream = camel_stream_fs_new_with_fd(fd);
|
||||
if (fstream) {
|
||||
/* terminate with \r\n to be compliant with the spec */
|
||||
strcpy (p, "\r\n");
|
||||
|
||||
if (em_utils_write_messages_to_stream(folder, uids, fstream) == 0)
|
||||
gtk_selection_data_set(data, data->target, 8, uri, strlen(uri));
|
||||
|
||||
|
||||
@ -1508,13 +1508,13 @@ ml_tree_drag_data_get (ETree *tree, int row, ETreePath path, int col,
|
||||
|
||||
if (uids->len > 0) {
|
||||
switch (info) {
|
||||
case 0 /*DND_TARGET_TYPE_X_UID_LIST */:
|
||||
case 0 /* DND_TARGET_TYPE_X_UID_LIST */:
|
||||
em_utils_selection_set_uidlist(data, ml->folder_uri, uids);
|
||||
break;
|
||||
case 1 /*DND_TARGET_TYPE_MESSAGE_RFC822*/:
|
||||
case 1 /* DND_TARGET_TYPE_MESSAGE_RFC822 */:
|
||||
em_utils_selection_set_mailbox(data, ml->folder, uids);
|
||||
break;
|
||||
case 2 /*DND_TARGET_TYPE_TEXT_URI_LIST*/:
|
||||
case 2 /* DND_TARGET_TYPE_TEXT_URI_LIST */:
|
||||
em_utils_selection_set_urilist(data, ml->folder, uids);
|
||||
break;
|
||||
}
|
||||
@ -1537,10 +1537,10 @@ ml_tree_drag_data_received (ETree *tree, int row, ETreePath path, int col,
|
||||
guarantee on what the content would be */
|
||||
|
||||
switch (info) {
|
||||
case 1 /*DND_TARGET_TYPE_MESSAGE_RFC822*/:
|
||||
case 1 /* DND_TARGET_TYPE_MESSAGE_RFC822 */:
|
||||
em_utils_selection_get_mailbox(data, ml->folder);
|
||||
break;
|
||||
case 0 /*DND_TARGET_TYPE_X_EVOLUTION_MESSAGE*/:
|
||||
case 0 /* DND_TARGET_TYPE_X_UID_LIST */:
|
||||
ml_selection_received_uidlist(ml, data);
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user