[Spice-devel] How to drag a folder from client to guest?
Marc-André Lureau
mlureau at redhat.com
Tue Feb 25 03:41:51 PST 2014
----- Original Message -----
> On Tue, Feb 25, 2014 at 6:15 PM, Marc-André Lureau <mlureau at redhat.com>
> wrote:
> >
> >
> > ----- Original Message -----
> >> On Tue, Feb 25, 2014 at 6:03 AM, Marc-André Lureau <mlureau at redhat.com>
> >> wrote:
> >> > Hi
> >> >
> >> > ----- Original Message -----
> >> >> Probably the function of copying has three defects:
> >> >>
> >> >> i)For some languages,there is a mis-encoding of file name
> >> >> I have solved by myself...(under some circumstance)
> >> >>
> >> >
> >> > Yeah, I remember your patch, but you didn't follow up, right? Are you
> >> > still
> >> > working on this?
> >> Aha:) I have followed your advices, but the effect is the same with I
> >> have patched
> >> I don't have good environment to do more test...So I still need to
> >> read source code deeply!
> >>
> >> >> ii)Can't drag multi-files
> >> >> I'm glad to see the following in source code:
> >> >> /* At the moment, the copy() method is limited to a single file,
> >> >> support for copying multi-files will be implemented later. */
> >> >> g_return_if_fail(sources[1] == NULL);
> >> >>
> >> >> iii)But, it doesn't support for drag folder
> >> >> Is there TODO I don't find? Or any ideas about solution?
> >> >
> >> >
> >> > Imho, dragging files/folder shouldn't be done via a Spice "copy"
> >> > protocol.
> >> > Instead, Spice should learn to implement drag and drop. Afaik this
> >> > should
> >> > be doable, but nobody worked on it.
> >>
> >> Actually, I'm always curious if copying muti-files/folder can be done
> >> by compressing to a zip/... before transfering ......of course, it's not a
> >> cool solution...
> >
> > Compression can be handled by a remote filesystem protocol. Imho, we
> > shouldn't reimplement something like scp/rsync in Spice.
>
> yeah, BTW, in spice-gtk-0.23/gtk/channel-main.c, if I change it like
> the following, then muti-files copying works!
>
> ---g_return_if_fail(sources[1] == NULL);
>
> if (!c->agent_connected) {
> g_simple_async_report_error_in_idle(G_OBJECT(channel),
> callback,
> user_data,
> SPICE_CLIENT_ERROR,
> SPICE_CLIENT_ERROR_FAILED,
> "The agent is not connected");
> return;
> }
> +++ int cnt = 0;
> +++ while(NULL != sources[cnt]){
> file_xfer_send_start_msg_async(channel,
> --- sources[0],
> +++ sources[cnt],
> flags,
> cancellable,
> progress_callback,
> progress_callback_data,
> callback,
> user_data);
> +++ ++cnt;
> +++}
>
> I think it over, and don't the reason RedHat doesn't support
> muti-files copying...
What has redhat to do with this? It's made by a contributor, and not a supported feature in redhat products.
> Further, if g_file_get_path(sources[cnt]) is a folder, I can copy all
> files by DFS/BFS, then folder copying also can be supported
> Any idea?
Sure, everything is possible. Now, thinking about what make sense and where we want to go, I think this is not the way to go. But talking is cheap, patches welcome.
>
> >> > Otoh, you might be interested in the sharing folder functionality. It
> >> > allows you to have a folder on the client mounted/visible directly in
> >> > the
> >> > guest. From there copy will work like a regular guest operation, with
> >> > guest UI etc.
> >>
> >> Here's a particular requirement that files can ONLY be draged from
> >> local to guest......
> >
> > You mean currently? Yes, it's a known limitation. However, with the shared
> > folder, you can copy to and from the client folder.
> I mean this's my requirement, so the shared folder is not adaptable for me
I don't understand you. If you need to copy to the client, or from the client, a shared folder will let you do that.
The current drag and drop support is a easy file copy operation from client to guest, quite far from a real drag and drop.
> >>
> >> >This function is mostly ready, and I will submit a new patch this week
> >> >(I'll
> >> >add you in CC).
> >>
> >> I'm really appreciate to hear that, thx a lot:)
> >> _______________________________________________
> >> Spice-devel mailing list
> >> Spice-devel at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> >>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>
More information about the Spice-devel
mailing list