diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2001-06-16 05:40:12 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-06-16 05:40:12 +0800 |
commit | 7395fd6ba14d1267ec54719687d461ac7707f8fb (patch) | |
tree | aee5d69a1aec941182074bc5627776f4abc1f101 /mail/component-factory.c | |
parent | f0d0478ea1e4f44df4743554808ff04d887b3038 (diff) | |
download | gsoc2013-evolution-7395fd6ba14d1267ec54719687d461ac7707f8fb.tar.gz gsoc2013-evolution-7395fd6ba14d1267ec54719687d461ac7707f8fb.tar.zst gsoc2013-evolution-7395fd6ba14d1267ec54719687d461ac7707f8fb.zip |
Implemented.
2001-06-15 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (destination_folder_handle_drop): Implemented.
* message-list.c (message_list_construct): Don't connect to the
DnD signals here.
(message_list_drag_data_get): Removed.
(add_uid): Removed.
* folder-browser.c (my_folder_browser_init): Connect to DnD signals.
(message_list_drag_data_get): Implemented.
svn path=/trunk/; revision=10257
Diffstat (limited to 'mail/component-factory.c')
-rw-r--r-- | mail/component-factory.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/mail/component-factory.c b/mail/component-factory.c index a4b95c30aa..de73ff269a 100644 --- a/mail/component-factory.c +++ b/mail/component-factory.c @@ -68,7 +68,7 @@ static GHashTable *storages_hash; static char *accepted_dnd_types[] = { "message/rfc822", /* if we drag from nautilus or something... */ - "x-evolution-folder-dnd", /* if we drag from an evolution folder... */ + "x-evolution-dnd", /* if we drag from an evolution folder... */ NULL }; @@ -345,19 +345,28 @@ destination_folder_handle_drop (EvolutionShellComponentDndDestinationFolder *fol camel_object_unref (CAMEL_OBJECT (stream)); } else { /* x-evolution-dnd */ - char *uri, *in, *inptr, *inend; + char *url, *name, *in, *inptr, *inend; CamelFolder *source; GPtrArray *uids; - /* format is "uri uid1\0uid2\0uid3\0...\0uidn" */ + /* format: "url folder_name uid1\0uid2\0uid3\0...\0uidn" */ in = data->bytes._buffer; inend = in + data->bytes._length; inptr = strchr (in, ' '); - uri = g_strndup (data->bytes._buffer, inptr - in); - source = mail_tool_uri_to_folder (uri, NULL); - g_free (uri); + url = g_strndup (in, inptr - in); + + name = inptr + 1; + inptr = strchr (name, ' '); + name = g_strndup (name, inptr - name); + + source = mail_tool_get_folder_from_urlname (url, name, 0, NULL); + g_free (name); + g_free (url); + + if (!source) + return FALSE; /* split the uids */ inptr++; |