On 23/06/17 12:30, marcandre.lureau@xxxxxxxxxx wrote: > From: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> > Acked-by: Eduardo Lima (Etrunko) <etrunko@xxxxxxxxxx> > Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> > --- > src/remote-viewer.c | 70 ++++++++++++++++++++++++++++++++--------------------- > 1 file changed, 43 insertions(+), 27 deletions(-) > > diff --git a/src/remote-viewer.c b/src/remote-viewer.c > index b132214..fb5376c 100644 > --- a/src/remote-viewer.c > +++ b/src/remote-viewer.c > @@ -85,6 +85,10 @@ static void spice_foreign_menu_updated(RemoteViewer *self); > static void foreign_menu_title_changed(SpiceCtrlForeignMenu *menu, GParamSpec *pspec, RemoteViewer *self); > #endif > > +static gboolean > +remote_viewer_initial_connect(RemoteViewer *self, const gchar *type, > + VirtViewerFile *vvfile, GError **error); > + > static void > remote_viewer_dispose (GObject *object) > { > @@ -1080,6 +1084,41 @@ remote_viewer_session_connected(VirtViewerSession *session, > g_free(uri); > } > > +static gboolean > +remote_viewer_initial_connect(RemoteViewer *self, const gchar *type, > + VirtViewerFile *vvfile, GError **error) > +{ > + VirtViewerApp *app = VIRT_VIEWER_APP(self); > + > + if (!virt_viewer_app_create_session(app, type, error)) > + return FALSE; > + > + g_signal_connect(virt_viewer_app_get_session(app), "session-connected", > + G_CALLBACK(remote_viewer_session_connected), app); > + > + virt_viewer_session_set_file(virt_viewer_app_get_session(app), vvfile); > +#ifdef HAVE_OVIRT > + if (vvfile != NULL) { > + OvirtForeignMenu *ovirt_menu; > + ovirt_menu = ovirt_foreign_menu_new_from_file(vvfile); > + if (ovirt_menu != NULL) { > + virt_viewer_app_set_ovirt_foreign_menu(app, ovirt_menu); > + } > + } > +#endif > + > + if (!virt_viewer_app_initial_connect(app, error)) { > + if (*error == NULL) { > + g_set_error_literal(error, > + VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED, > + _("Failed to initiate connection")); > + } > + return FALSE; > + } > + > + return TRUE; > +} > + > static gboolean > remote_viewer_start(VirtViewerApp *app, GError **err) > { > @@ -1114,8 +1153,9 @@ remote_viewer_start(VirtViewerApp *app, GError **err) > spice_ctrl_foreign_menu_listen(priv->ctrl_foreign_menu, NULL, spice_ctrl_listen_async_cb, self); > > virt_viewer_app_show_status(VIRT_VIEWER_APP(self), _("Setting up Spice session...")); > - } else { > + } else > #endif > + { > retry_dialog: > if (priv->open_recent_dialog) { > VirtViewerWindow *main_window = virt_viewer_app_get_main_window(app); > @@ -1160,35 +1200,11 @@ retry_dialog: > } else > #endif > { > - if (!virt_viewer_app_create_session(app, type, &error)) > + if (!remote_viewer_initial_connect(self, type, vvfile, &error)) > goto cleanup; > } > - > - g_signal_connect(virt_viewer_app_get_session(app), "session-connected", > - G_CALLBACK(remote_viewer_session_connected), app); > - > - virt_viewer_session_set_file(virt_viewer_app_get_session(app), vvfile); > -#ifdef HAVE_OVIRT > - if (vvfile != NULL) { > - OvirtForeignMenu *ovirt_menu; > - ovirt_menu = ovirt_foreign_menu_new_from_file(vvfile); > - if (ovirt_menu != NULL) { > - virt_viewer_app_set_ovirt_foreign_menu(app, ovirt_menu); > - } > - } > -#endif > - > - if (!virt_viewer_app_initial_connect(app, &error)) { > - if (error == NULL) { > - g_set_error_literal(&error, > - VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED, > - _("Failed to initiate connection")); > - } > - goto cleanup; > - } > -#ifdef HAVE_SPICE_GTK > } > -#endif > + > > ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->start(app, &error); > > -- Eduardo de Barros Lima (Etrunko) Software Engineer - RedHat etrunko@xxxxxxxxxx _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list