spice-gtk/doc/reference/spice-gtk-docs.xml
Jonathon Jongsma 2c26ee3c37 New file transfer API
There were several shortcomings to the existing file transfer API,
particularly in terms of monitoring ongoing file transfers. The major
issue is that spice_main_file_copy_async() allows you to pass an array
of files, but the progress callback does not provide a way to
identify which file the callback is associated with. This makes it
nearly impossible for an application to monitor file transfers.

In addition, the SpiceDisplay widget automatically handles drag-and-drop
actions on the widget, and initiates file transfers without allowing the
application to specify a progress callback. So there's no way for an app
to monitor file transfers that are initiated via drag and drop.

http://lists.freedesktop.org/archives/spice-devel/2015-September/021931.html
has a more detailed explanation of the issues.

This change doesn't break the existing API, but adds some new API that
will allow an application to monitor file transfer progress, even for
transfers that are initiated within spice-gtk itself.

- A new public SpiceFileTransferTask object is added.
- The SpiceMainChannel object gains a "new-file-transfer" signal that is
  emitted whenever a new file transfer is initiated. The
  SpiceFileTransferTask object is passed to the signal handler.
- The application can retain this object and monitor its 'progress'
  property to be notified when the progress of the file transfer
  changes. The SpiceFileTransferTask::finished signal indicates when the
  given file transfer has completed. The application can also cancel the
  file transfer by calling the _cancel() method.

The 'spicy' test application has been updated to use this new API and
display a simple dialog showing the progress of individual files.
2015-10-09 15:42:56 -05:00

84 lines
2.9 KiB
XML

<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<book id="index">
<bookinfo>
<title>Spice-GTK Reference Manual</title>
<!--
<releaseinfo>
for spice-gtk [VERSION].
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://[SERVER]/spice-gtk/index.html">http://[SERVER]/spice-gtk/</ulink>.
</releaseinfo>
-->
</bookinfo>
<part id="api-reference">
<title>API Reference</title>
<chapter>
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml" />
</chapter>
<chapter>
<title>Session and Channels Objects, from spice-client-glib</title>
<xi:include href="xml/spice-session.xml"/>
<xi:include href="xml/spice-channel.xml"/>
<xi:include href="xml/channel-cursor.xml"/>
<xi:include href="xml/channel-display.xml"/>
<xi:include href="xml/channel-inputs.xml"/>
<xi:include href="xml/channel-main.xml"/>
<xi:include href="xml/channel-playback.xml"/>
<xi:include href="xml/channel-record.xml"/>
<xi:include href="xml/channel-smartcard.xml"/>
<xi:include href="xml/channel-usbredir.xml"/>
<xi:include href="xml/channel-port.xml"/>
<xi:include href="xml/channel-webdav.xml"/>
</chapter>
<chapter>
<title>GTK Widget, from spice-client-gtk</title>
<xi:include href="xml/spice-gtk-session.xml"/>
<xi:include href="xml/spice-widget.xml"/>
<xi:include href="xml/usb-device-widget.xml"/>
</chapter>
<chapter id="application-support">
<title>Application Support, from spice-client-glib</title>
<xi:include href="xml/spice-audio.xml"/>
<xi:include href="xml/smartcard-manager.xml"/>
<xi:include href="xml/usb-device-manager.xml"/>
<xi:include href="xml/spice-util.xml"/>
<xi:include href="xml/spice-version.xml"/>
<xi:include href="xml/spice-uri.xml"/>
<xi:include href="xml/file-transfer-task.xml"/>
</chapter>
</part>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<!--
<index role="2.26">
<title>Index of new symbols in 2.26</title>
<xi:include href="xml/api-index-2.26.xml"><xi:fallback/></xi:include>
</index>
-->
<index id="api-index-deprecated" role="deprecated">
<title>Index of deprecated symbols</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</book>