GNOME Bugzilla – Bug 127547
Gaim drag and drop file transfer
Last modified: 2012-02-19 16:53:55 UTC
For those protocols that support it, Gaim allows you to send and receive files with other IM users. Currently, you have to right click on the user in the Gaim buddy list and select the "Send file" popup menu entry to send the user a file. This task is to modify Gaim to support drag-and-drop as a means of initiating a file transfer to a user. Dragging a file from the file manager or desktop and dropping it onto a Gaim conversation window should initiate a transfer of that file to the user. One subtlety is how .desktop files are handled. The contents of the .desktop file are probably not what the user wants to send, so you'll have to figure out how to handle these. This bug is part of the Integrated Collaborative Desktop Bounty Hunt. For more information on prizes, contest rules, and other bounty tasks, visit: http://www.gnome.org/bounties/ If you would like to start working on this bounty, please create a bugzilla account and append your intention to work on this bounty to this bug. If multiple people declare their intentions to work on a task, we encourage you to join forces and work together. Please do not close this bug. The contest organizers will mark this bug as FIXED when the prize is claimed.
Please see http://www.gnome.org/bounties/Addressbook.php3#127547 for more information.
Oops. The Correct URL for more information is: http://www.gnome.org/bounties/IM.php3#127547
I'll work in this one.
I'm working on this one, I'm willing to collaborate
Created attachment 21715 [details] [review] Initial implementation, it mostly works, i will like to get feedback about the send_file interface for PluginProtocols, also i'm getting the drop event twice for some reason.
I've been working on this too
> One subtlety is how .desktop files are handled. The contents of the .desktop file are probably not what the user wants to send, so you'll have to figure out how to handle these. I don't really see how it would be useful to to do anything other than transfer the .desktop file. Considering there are four types, applications, web links, FSDevices, and directories. -The application type wouldn't be very useful in my mind, because you often need support files beyond the main executable, and Gaim isn't limited to x86(etc) Linux either, so you may be sending a application to a windows user, that would have no use of it. -The web link type I would only see useful as sending it as a link in a regular conversation -The FSDevices and directories don't make very much sense as you can't send a whole directory with gaim. (With my current patch, you can send multiple files at once, they show up as multiple file sends though) Gaim's file transfer api is a little forgotten/incomplete right now, which makes portions of this a little more difficult
Created attachment 21731 [details] [review] Almost there, created varius send_file apis, some sense checks, etc.
Created attachment 21733 [details] [review] Current patch, w/o file transfer api rewrite
This is my current version. It doesn't work right now because the file transfer api is broken/forgotten, but I am working on rewriting that currently. Juan Pablo Mendoza: the Gaim people have been trying to get Gaim into nice apis for an upcoming api split, so your file-send method might encounter some opposition. Just my view though.
I wrote that API per a developer's request.
Created attachment 21737 [details] [review] Moved all the dialogs to gaim_request API, it works very good right now.
isn't this supposed to enable drag and drop to the _conversation_ window?
this patch(submitting next) fulfills the actual requirement of this bounty, to drag a file onto a conversation window to transfer the file. It uses some of juan's api code that got checked into cvs, and this patches against the current cvs. It also implements the link drag-n-drop, which is the objective of another bounty, 127547, the code is pretty much dependent upon each other. This also adds some other niceties, like some memory management and finishing drags. I can't test to see if the actual file transfer works, but I can tell it is getting the correct files, I believe the problem is elsewhere, considering the state of the file transfering in gaim. Dan Willemsen
Created attachment 21780 [details] [review] Adds dnd support to the _conversation_ window, fixes some things, and adds link sending support too
Is the patch sent to the gaim developers?
Created attachment 22002 [details] [review] Updated version.
Yes Kenneth, I'm already talking to Gaim developers.
Just a few comments regarding handling of specific files. I would like to see .desktop files parsed. Links should be inserted as URLs, and directories should offer to send the entire contents. You can send a directory over AIM and retain the directory structure, this would need to be supported in the Gaim API. It would be awesome if someone working on this bounty could make AIM file transfer not suck. I'll probably wind up doing it myself. Other .desktop files should cause a warning to pop up, informing the user that he has dragged a .desktop file, give a simple explanation of what it is, and ask if he still wants to send it. Further, if a regular file is dragged, GdkPixbuf should attempt to load it, and if it's a valid image file, offer to let the user either send it as a file, or insert it into the conversation to be sent in a directIM. -s.
Is at least the API for file transfer stable? I'm working on the "Nautilus send to" feature and I can only implement "Send as Instant Message" if this patch gets accepted.
Hi Hongli, i'm working with Sean to stabilize and get that API in CVS, i hope it will be ready soon.
Another choice to give a user dragging an image file into a conversaiton window or buddy list entry: offer to set that as a buddy icon for that person.
What's the status on this? Will this patch ever get accepted? If not, what's the reason? Is anybody still looking at this?
I've worked on it as well. My patch is here: http://sourceforge.net/tracker/index.php?func=detail&aid=1062630&group_id=235&atid=300235 You can find it in the attachment as well (a .tar.gz with a .diff and 4 files to be applied in the src/ directory). About sending .directory files retaining directory structure: is it needed for the bounty? Is someone working on Gaim send file API?
Created attachment 33562 [details] Better d'n'd and .desktop file support, with other small enhancements The archive contains a .diff and 4 new files to be applied in the src/ directory in Gaim source tree.
Mi patch was revised and accepted. Going to (try to) claim the bounty...
Alceste's patch has been commited to Gaim's CVS.
So, is this bug closed? Is there anything left to be done? And of course, is it possible to claim the bounty? :-)
Would be nice if the list of patches was marked correctly as obsolete/commited or whatever so it doesn't look like we have ten unreviewed patches just sitting around in bugzilla. Was the bounty ever claimed? Do we have the feature in Gaim now?
The plugin is shipped with Gaim. However, it's disabled by default, making nautilus-sendto as good as useless for most users since it doesn't work out-of-the-box. :(
This bounty is marked as "claimed" at http://www.gnome.org/bounties/. Alceste's patch was accepted and his code is still in our repository. Assuming he has received the bounty, this item should probably be closed.
Empathy has become the main IM application in the meantime. This bounty was available in 2003 and is not available anymore. Closing as OBSOLETE.