diff options
author | Kirill Moizik <kmoizik@redhat.com> | 2016-03-08 16:05:58 +0200 |
---|---|---|
committer | Jonathon Jongsma <jjongsma@redhat.com> | 2016-03-24 11:00:02 -0500 |
commit | 03e541add456485a6cc890064c98bc259f78ade4 (patch) | |
tree | 4ad8e4c24d993d6e7efca23f54ac0af94391d6c7 | |
parent | 9fbf679453d8dbfe797a738cb536136599d7adab (diff) |
UsbDeviceWidget: Show info bar during redirection flows
Signed-off-by: Kirill Moizik <kmoizik@redhat.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
-rw-r--r-- | src/map-file | 1 | ||||
-rw-r--r-- | src/usb-device-manager.c | 23 | ||||
-rw-r--r-- | src/usb-device-manager.h | 2 | ||||
-rw-r--r-- | src/usb-device-widget.c | 7 |
4 files changed, 33 insertions, 0 deletions
diff --git a/src/map-file b/src/map-file index 112b5ea..9df9017 100644 --- a/src/map-file +++ b/src/map-file @@ -133,6 +133,7 @@ spice_usb_device_manager_connect_device_finish; spice_usb_device_manager_disconnect_device; spice_usb_device_manager_disconnect_device_async; spice_usb_device_manager_disconnect_device_finish; +spice_usb_device_manager_is_redirecting; spice_usb_device_manager_get; spice_usb_device_manager_get_devices; spice_usb_device_manager_get_devices_with_filter; diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c index 1147643..1bbf6b3 100644 --- a/src/usb-device-manager.c +++ b/src/usb-device-manager.c @@ -231,6 +231,29 @@ _set_redirecting(SpiceUsbDeviceManager *self, gboolean is_redirecting) G_DEFINE_BOXED_TYPE(SpiceUsbDevice, spice_usb_device, g_object_ref, g_object_unref) #endif +/** +* spice_usb_device_manager_is_redirecting: +* @manager: the #SpiceUsbDeviceManager manager +* +* Returns: %TRUE if device redirection negotiation flow is in progress +*/ +gboolean spice_usb_device_manager_is_redirecting(SpiceUsbDeviceManager *self) +{ +#ifdef USE_USBREDIR + +#ifdef USE_GUDEV + gboolean redirecting; + g_object_get(self->priv->udev, "redirecting", &redirecting, NULL); + return redirecting; +#else + return self->priv->redirecting; +#endif + +#else + return FALSE; +#endif +} + static void spice_usb_device_manager_initable_iface_init(GInitableIface *iface); static guint signals[LAST_SIGNAL] = { 0, }; diff --git a/src/usb-device-manager.h b/src/usb-device-manager.h index d1b0a96..a9a4f7a 100644 --- a/src/usb-device-manager.h +++ b/src/usb-device-manager.h @@ -138,6 +138,8 @@ spice_usb_device_manager_can_redirect_device(SpiceUsbDeviceManager *self, SpiceUsbDevice *device, GError **err); +gboolean spice_usb_device_manager_is_redirecting(SpiceUsbDeviceManager *self); + G_END_DECLS #endif /* __SPICE_USB_DEVICE_MANAGER_H__ */ diff --git a/src/usb-device-widget.c b/src/usb-device-widget.c index 3b060e9..285bfd5 100644 --- a/src/usb-device-widget.c +++ b/src/usb-device-widget.c @@ -410,6 +410,9 @@ static gboolean spice_usb_device_widget_update_status(gpointer user_data) gchar *str, *markup_str; const gchar *free_channels_str; int free_channels; + gboolean redirecting; + + redirecting = spice_usb_device_manager_is_redirecting(priv->manager); g_object_get(priv->manager, "free-channels", &free_channels, NULL); free_channels_str = ngettext(_("Select USB devices to redirect (%d free channel)"), @@ -430,6 +433,10 @@ static gboolean spice_usb_device_widget_update_status(gpointer user_data) GTK_STOCK_DIALOG_WARNING); g_free(priv->err_msg); priv->err_msg = NULL; + } else if (redirecting) { + spice_usb_device_widget_show_info_bar(self, _("Redirecting USB Device..."), + GTK_MESSAGE_INFO, + GTK_STOCK_DIALOG_INFO); } else { spice_usb_device_widget_hide_info_bar(self); } |