Removed, use em_utils_selection_get_uidlist() instead. (drop_uid_list):

2003-10-22  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-component.c (parse_uid_list): Removed, use
	em_utils_selection_get_uidlist() instead.
	(drop_uid_list): Use em_utils_selection_get_uidlist() to parse the
	x-uid-list selection data and use mail_tool_uri_to_folder()
	directly since we have the uri (originally we expected the first
	component of the selection data to be the e-storage-set-view
	folder path rather than the uri).
	(folder_receive_drop_cb): Call gtk_drag_finish() here.

	* message-list.c: s/x-evolution-message/x-uid-list/

	* em-utils.c: Same.

svn path=/trunk/; revision=23004
This commit is contained in:
Jeffrey Stedfast
2003-10-22 21:35:24 +00:00
committed by Jeffrey Stedfast
parent 17dacd6a97
commit 3df2a75e72
4 changed files with 37 additions and 45 deletions

View File

@ -1,3 +1,18 @@
2003-10-22 Jeffrey Stedfast <fejj@ximian.com>
* mail-component.c (parse_uid_list): Removed, use
em_utils_selection_get_uidlist() instead.
(drop_uid_list): Use em_utils_selection_get_uidlist() to parse the
x-uid-list selection data and use mail_tool_uri_to_folder()
directly since we have the uri (originally we expected the first
component of the selection data to be the e-storage-set-view
folder path rather than the uri).
(folder_receive_drop_cb): Call gtk_drag_finish() here.
* message-list.c: s/x-evolution-message/x-uid-list/
* em-utils.c: Same.
2003-10-22 Ettore Perazzoli <ettore@ximian.com>
* mail-component.c (impl_createControls): Use

View File

@ -1790,7 +1790,7 @@ em_utils_selection_get_mailbox(GtkSelectionData *data, CamelFolder *folder)
* @uri:
* @uids:
*
* Sets a "x-evolution-message" format selection data.
* Sets a "x-uid-list" format selection data.
*
* FIXME: be nice if this could take a folder argument rather than uri
**/
@ -1801,8 +1801,7 @@ em_utils_selection_set_uidlist(GtkSelectionData *data, const char *uri, GPtrArra
int i;
/* format: "uri\0uid1\0uid2\0uid3\0...\0uidn\0" */
/* NB: original form missed trailing \0 */
g_byte_array_append(array, uri, strlen(uri)+1);
for (i=0; i<uids->len; i++)
@ -1818,7 +1817,7 @@ em_utils_selection_set_uidlist(GtkSelectionData *data, const char *uri, GPtrArra
* @urip: Pointer to uri string, to be free'd by caller
* @uidsp: Pointer to an array of uid's.
*
* Convert an x-evolution-message type to a uri and a uid list.
* Convert an x-uid-list type to a uri and a uid list.
*
* Return value: The number of uid's found. If 0, then @urip and
* @uidsp will be empty.

View File

@ -578,55 +578,27 @@ folder_dragged_cb (EStorageSetView *view, const char *path, GdkDragContext *cont
}
}
static gboolean
parse_uid_list (const char *in, int inlen, char **path, GPtrArray **uids)
{
const char *inptr, *inend;
inend = in + inlen;
*path = g_strdup (in);
*uids = g_ptr_array_new ();
inptr = in + inlen + 1;
while (inptr < inend) {
g_ptr_array_add (*uids, g_strdup (inptr));
inptr += strlen (inptr) + 1;
}
if ((*uids)->len == 0) {
g_ptr_array_free (*uids, TRUE);
g_free (*path);
return FALSE;
}
return TRUE;
}
static void
drop_uid_list (EStorageSetView *view, const char *path, gboolean move, GtkSelectionData *selection, gpointer user_data)
{
CamelFolder *src, *dest;
CamelException ex;
GPtrArray *uids;
char *src_path;
char *src_uri;
if (!parse_uid_list (selection->data, selection->length, &src_path, &uids))
return;
em_utils_selection_get_uidlist (selection, &src_uri, &uids);
camel_exception_init (&ex);
if (!(src = foo_get_folder (view, src_path, &ex))) {
if (!(src = mail_tool_uri_to_folder (src_uri, 0, &ex))) {
/* FIXME: report error to user? */
camel_exception_clear (&ex);
em_utils_uids_free (uids);
g_free (src_path);
g_free (src_uri);
return;
}
g_free (src_path);
g_free (src_uri);
if (!(dest = foo_get_folder (view, path, &ex))) {
/* FIXME: report error to user? */
@ -846,22 +818,28 @@ folder_receive_drop_cb (EStorageSetView *view, const char *path, GdkDragContext
case DND_DROP_TYPE_UID_LIST:
/* import a list of uids from another evo folder */
drop_uid_list (view, path, move, selection, user_data);
printf ("* dropped a x-uid-list\n");
break;
case DND_DROP_TYPE_FOLDER:
/* rename a folder */
drop_folder (view, path, move, selection, user_data);
printf ("* dropped a x-folder\n");
break;
case DND_DROP_TYPE_MESSAGE_RFC822:
/* import a message/rfc822 stream */
drop_message_rfc822 (view, path, selection, user_data);
printf ("* dropped a message/rfc822\n");
break;
case DND_DROP_TYPE_TEXT_URI_LIST:
/* import an mbox, maildir, or mh folder? */
drop_text_uri_list (view, path, selection, user_data);
printf ("* dropped a text/uri-list\n");
break;
default:
g_assert_not_reached ();
}
gtk_drag_finish (context, TRUE, TRUE, time);
}

View File

@ -717,7 +717,7 @@ void
message_list_paste(MessageList *ml)
{
gtk_selection_convert(ml->priv->invisible, GDK_SELECTION_CLIPBOARD,
gdk_atom_intern("x-evolution-message", FALSE),
gdk_atom_intern ("x-uid-list", FALSE),
GDK_CURRENT_TIME);
}
@ -1425,12 +1425,12 @@ ml_selection_get(GtkWidget *widget, GtkSelectionData *data, guint info, guint ti
return;
if (info & 2) {
/* text_plain */
/* text/plain */
printf("setting text/plain selection for uids\n");
em_utils_selection_set_mailbox(data, ml->folder, uids);
} else {
/* x-evolution-message */
printf("setting x-evolution-message selection for uids\n");
/* x-uid-list */
printf("setting x-uid-list selection for uids\n");
em_utils_selection_set_uidlist(data, ml->folder_uri, uids);
}
}
@ -1479,7 +1479,7 @@ ml_selection_received_uidlist(MessageList *ml, GtkSelectionData *data)
static void
ml_selection_received(GtkWidget *widget, GtkSelectionData *data, guint time, MessageList *ml)
{
if (data->target != gdk_atom_intern("x-evolution-message", FALSE)) {
if (data->target != gdk_atom_intern ("x-uid-list", FALSE)) {
printf("Unknown selection received by message-list\n");
return;
@ -1489,7 +1489,7 @@ ml_selection_received(GtkWidget *widget, GtkSelectionData *data, guint time, Mes
}
static GtkTargetEntry ml_drag_types[] = {
{ "x-evolution-message", 0, 0 },
{ "x-uid-list", 0, 0 },
{ "message/rfc822", 0, 1 },
/* not included in dest types */
{ "text/uri-list", 0, 2 },
@ -1506,7 +1506,7 @@ 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_EVOLUTION_MESSAGE*/:
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*/:
@ -1578,7 +1578,7 @@ message_list_init (GtkObject *object)
g_object_ref(p->invisible);
gtk_object_sink((GtkObject *)p->invisible);
matom = gdk_atom_intern("x-evolution-message", FALSE);
matom = gdk_atom_intern ("x-uid-list", FALSE);
gtk_selection_add_target(p->invisible, GDK_SELECTION_CLIPBOARD, matom, 0);
gtk_selection_add_target(p->invisible, GDK_SELECTION_PRIMARY, matom, 1);
gtk_selection_add_target(p->invisible, GDK_SELECTION_CLIPBOARD, GDK_SELECTION_TYPE_STRING, 2);