Hey! On Fri, Aug 12, 2016 at 9:59 PM, Jonathon Jongsma <jjongsma@xxxxxxxxxx> wrote: > When transferring a large number of files, the file transfer dialog was > unusable because the window size would be larger than the client > desktop. To solve this, we put the list of individual files into a > GtkScrolledWindow. But to further simplify the dialog, these files are > hidden by default in a GtkExpander, and there is a single overall > progress bar that shows the status of all ongoing transfers. We had a brief discussion on IRC about this patch. I'd like to see virt-viewer taking the same approach taken by Nautilus when transferring files. For instance, when selecting a bunch of files and transferring them Nautilus shows: "Copying n files to <folder name>" and shows just a single overall progress bar. Also, would be really nice if some re-work/re-design happens on spice-gtk so we can keep track of different file-transfer operations (and then I'd love to see it implemented on virt-viewer as something like presented in this Nautilus mockup: https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/nautilus/nautilus-next/ongoing-operations-wires.png Anyways, I'm not sure how much time is worth to spend improving file transfer. I'm just suggesting because I can see (by the mailing list/improvements done recently) that we are already doing some improvements on this so, why not? :-) > --- > This patch also requires new API from spice-gtk to calculate the overall > progress: > spice_file_transfer_task_get_total_bytes() > spice_file_transfer_task_get_transferred_bytes() > > There are patches on the spice-devel list for this new API > > .../ui/virt-viewer-file-transfer-dialog.ui | 138 +++++++++++++++++++++ > 1 file changed, 138 insertions(+) > create mode 100644 src/resources/ui/virt-viewer-file-transfer-dialog.ui > > diff --git a/src/resources/ui/virt-viewer-file-transfer-dialog.ui b/src/resources/ui/virt-viewer-file-transfer-dialog.ui > new file mode 100644 > index 0000000..a71af6d > --- /dev/null > +++ b/src/resources/ui/virt-viewer-file-transfer-dialog.ui > @@ -0,0 +1,138 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<interface> > + <requires lib="gtk+" version="2.24"/> > + <!-- interface-naming-policy project-wide --> > + <template class="VirtViewerFileTransferDialog" parent="GtkDialog"> > + <property name="default_width">400</property> > + <property name="can_focus">False</property> > + <property name="border_width">5</property> > + <property name="type_hint">dialog</property> > + <child internal-child="vbox"> > + <object class="GtkVBox" id="dialog-vbox1"> > + <property name="visible">True</property> > + <property name="can_focus">False</property> > + <property name="spacing">2</property> > + <property name="border-width">12</property> > + <child internal-child="action_area"> > + <object class="GtkHButtonBox" id="dialog-action_area1"> > + <property name="visible">True</property> > + <property name="can_focus">False</property> > + <property name="layout_style">end</property> > + <child> > + <placeholder/> > + </child> > + <child> > + <object class="GtkButton" id="button1"> > + <property name="label">gtk-cancel</property> > + <property name="visible">True</property> > + <property name="can_focus">True</property> > + <property name="receives_default">True</property> > + <property name="use_underline">True</property> > + <property name="use_stock">True</property> > + </object> > + <packing> > + <property name="expand">False</property> > + <property name="fill">False</property> > + <property name="position">1</property> > + </packing> > + </child> > + </object> > + <packing> > + <property name="expand">True</property> > + <property name="fill">True</property> > + <property name="position">0</property> > + </packing> > + </child> > + <child> > + <object class="GtkVBox" id="vbox1"> > + <property name="visible">True</property> > + <property name="can_focus">False</property> > + <property name="spacing">12</property> > + <child> > + <object class="GtkLabel" id="transfer_summary"> > + <property name="visible">True</property> > + <property name="can_focus">False</property> > + <property name="label" translatable="yes">label</property> > + </object> > + <packing> > + <property name="expand">True</property> > + <property name="fill">True</property> > + <property name="position">0</property> > + </packing> > + </child> > + <child> > + <object class="GtkProgressBar" id="progressbar"> > + <property name="visible">True</property> > + <property name="can_focus">False</property> > + </object> > + <packing> > + <property name="expand">True</property> > + <property name="fill">True</property> > + <property name="position">1</property> > + </packing> > + </child> > + <child> > + <object class="GtkExpander" id="files_expander"> > + <property name="visible">True</property> > + <property name="can_focus">True</property> > + <child> > + <object class="GtkScrolledWindow" id="scrolledwindow1"> > + <property name="height_request">200</property> > + <property name="visible">True</property> > + <property name="can_focus">True</property> > + <property name="hscrollbar_policy">never</property> > + <property name="vscrollbar_policy">automatic</property> > + <child> > + <object class="GtkViewport" id="viewport1"> > + <property name="visible">True</property> > + <property name="can_focus">False</property> > + <child> > + <object class="GtkVBox" id="transfer_details"> > + <property name="margin-start">12</property> > + <property name="spacing">12</property> > + <property name="visible">True</property> > + <property name="can_focus">False</property> > + <child> > + <placeholder/> > + </child> > + <child> > + <placeholder/> > + </child> > + <child> > + <placeholder/> > + </child> > + </object> > + </child> > + </object> > + </child> > + </object> > + </child> > + <child type="label"> > + <object class="GtkLabel" id="label1"> > + <property name="visible">True</property> > + <property name="can_focus">False</property> > + <property name="label" translatable="yes">Details</property> > + </object> > + </child> > + </object> > + <packing> > + <property name="expand">True</property> > + <property name="fill">True</property> > + <property name="position">3</property> > + <property name="padding">12</property> > + </packing> > + </child> > + </object> > + <packing> > + <property name="expand">True</property> > + <property name="fill">True</property> > + <property name="position">1</property> > + </packing> > + </child> > + </object> > + </child> > + <action-widgets> > + <action-widget response="-6">button1</action-widget> > + </action-widgets> > + </template> > +</interface> > -- > 2.7.4 > > _______________________________________________ > virt-tools-list mailing list > virt-tools-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/virt-tools-list Best Regards, -- Fabiano Fidêncio _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list