diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2001-07-03 09:38:45 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-07-03 09:38:45 +0800 |
commit | 36765e48f24ad968a2bda97e7ee2056d9b91a4da (patch) | |
tree | 02019ab3fa399e944e0b0bc31cb96693eb03991d /mail/component-factory.c | |
parent | d3cd60c2a009985c88175881d95880f8e524a768 (diff) | |
download | gsoc2013-evolution-36765e48f24ad968a2bda97e7ee2056d9b91a4da.tar.gz gsoc2013-evolution-36765e48f24ad968a2bda97e7ee2056d9b91a4da.tar.zst gsoc2013-evolution-36765e48f24ad968a2bda97e7ee2056d9b91a4da.zip |
Updated for the mail_transfer_messages API.
2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (transfer_msg): Updated for the
mail_transfer_messages API.
* folder-browser.c (message_list_drag_data_recieved): Update for
the mail_transfer_messages API.
(selection_received): Same.
* mail-ops.c (mail_transfer_messages): Renamed from
mail_do_transfer_messages and also added a callback/data arguments
since we need it component_factory::xfer_folder.
* component-factory.c (xfer_folder): Use mail_transfer_messages
instead.
(destination_folder_handle_drop): Update to pass in a NULL
callback arg and a NULL data argument to mail_transfer_messages.
svn path=/trunk/; revision=10710
Diffstat (limited to 'mail/component-factory.c')
-rw-r--r-- | mail/component-factory.c | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/mail/component-factory.c b/mail/component-factory.c index f568734921..149159faf6 100644 --- a/mail/component-factory.c +++ b/mail/component-factory.c @@ -232,13 +232,13 @@ remove_folder (EvolutionShellComponent *shell_component, } static void -do_xfer_folder (char *src_uri, char *dest_uri, gboolean remove_source, CamelFolder *dest_folder, void *data) +do_xfer_folder (gboolean ok, void *data) { GNOME_Evolution_ShellComponentListener listener = data; GNOME_Evolution_ShellComponentListener_Result result; CORBA_Environment ev; - if (dest_folder) + if (ok) result = GNOME_Evolution_ShellComponentListener_OK; else result = GNOME_Evolution_ShellComponentListener_INVALID_URI; @@ -258,12 +258,24 @@ xfer_folder (EvolutionShellComponent *shell_component, void *closure) { CORBA_Environment ev; + CamelFolder *source; + CamelException ex; + GPtrArray *uids; + + camel_exception_init (&ex); + source = mail_tool_uri_to_folder (source_physical_uri, &ex); + camel_exception_clear (&ex); CORBA_exception_init (&ev); - mail_xfer_folder (source_physical_uri, destination_physical_uri, remove_source, do_xfer_folder, - CORBA_Object_duplicate (listener, &ev)); - GNOME_Evolution_ShellComponentListener_notifyResult (listener, - GNOME_Evolution_ShellComponentListener_OK, &ev); + if (source) { + uids = camel_folder_get_uids (source); + mail_transfer_messages (source, uids, remove_source, destination_physical_uri, + do_xfer_folder, + CORBA_Object_duplicate (listener, &ev)); + + GNOME_Evolution_ShellComponentListener_notifyResult (listener, GNOME_Evolution_ShellComponentListener_OK, &ev); + } else + GNOME_Evolution_ShellComponentListener_notifyResult (listener, GNOME_Evolution_ShellComponentListener_INVALID_URI, &ev); CORBA_exception_free (&ev); } @@ -446,9 +458,9 @@ destination_folder_handle_drop (EvolutionShellComponentDndDestinationFolder *fol inptr++; } - mail_do_transfer_messages (source, uids, - action == GNOME_Evolution_ShellComponentDnd_ACTION_MOVE, - physical_uri); + mail_transfer_messages (source, uids, + action == GNOME_Evolution_ShellComponentDnd_ACTION_MOVE, + physical_uri, NULL, NULL); camel_object_unref (CAMEL_OBJECT (source)); break; |