Hey, On Fri, Nov 23, 2012 at 01:41:12PM +0100, Marc-André Lureau wrote: > --- > src/remote-viewer.c | 25 +++++++++++++++++++++++-- > 1 file changed, 23 insertions(+), 2 deletions(-) > > diff --git a/src/remote-viewer.c b/src/remote-viewer.c > index 72b1ca8..553f251 100644 > --- a/src/remote-viewer.c > +++ b/src/remote-viewer.c > @@ -35,6 +35,7 @@ > #include "virt-viewer-session-spice.h" > #endif > #include "virt-viewer-app.h" > +#include "virt-viewer-file.h" > #include "remote-viewer.h" > > #ifndef G_VALUE_INIT /* see bug https://bugzilla.gnome.org/show_bug.cgi?id=654793 */ > @@ -626,9 +627,13 @@ remote_viewer_start(VirtViewerApp *app) > RemoteViewer *self = REMOTE_VIEWER(app); > RemoteViewerPrivate *priv = self->priv; > #endif > + GFile *file = NULL; > + VirtViewerFile *vvfile = NULL; > gboolean ret = FALSE; > gchar *guri = NULL; > gchar *type = NULL; > + gchar *path = NULL; > + GError *error = NULL; > > #if HAVE_SPICE_GTK > g_signal_connect(app, "notify", G_CALLBACK(app_notified), self); > @@ -659,7 +664,17 @@ remote_viewer_start(VirtViewerApp *app) > if (virt_viewer_app_get_title(app) == NULL) > virt_viewer_app_set_title(app, guri); > > - if (virt_viewer_util_extract_host(guri, &type, NULL, NULL, NULL, NULL) < 0 || type == NULL) { > + file = g_file_new_for_commandline_arg(guri); > + if (g_file_query_exists(file, NULL)) { > + path = g_file_get_path(file); > + vvfile = virt_viewer_file_new(path, &error); I'd make 'error' and 'path' local to that block, the function is a bit big, so that makes less things to mentally track for the whole function. Looks good apart from this. Christophe > + if (error) { > + virt_viewer_app_simple_message_dialog(app, _("Invalid file %s"), guri); > + g_warning(error->message); > + goto cleanup; > + } > + g_object_get(G_OBJECT(vvfile), "type", &type, NULL); > + } else if (virt_viewer_util_extract_host(guri, &type, NULL, NULL, NULL, NULL) < 0 || type == NULL) { > virt_viewer_app_simple_message_dialog(app, _("Cannot determine the connection type from URI")); > goto cleanup; > } > @@ -669,6 +684,8 @@ remote_viewer_start(VirtViewerApp *app) > goto cleanup; > } > > + virt_viewer_session_set_file(virt_viewer_app_get_session(app), vvfile); > + > if (virt_viewer_app_initial_connect(app) < 0) { > virt_viewer_app_simple_message_dialog(app, _("Failed to initiate connection")); > goto cleanup; > @@ -679,7 +696,11 @@ remote_viewer_start(VirtViewerApp *app) > > ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->start(app); > > - cleanup: > +cleanup: > + g_clear_error(&error); > + g_clear_object(&file); > + g_clear_object(&vvfile); > + g_free(path); > g_free(guri); > g_free(type); > return ret; > -- > 1.7.11.7 > > _______________________________________________ > virt-tools-list mailing list > virt-tools-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/virt-tools-list
Attachment:
pgp2Jp3hs9gU9.pgp
Description: PGP signature
_______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list