Reconnect field in virt-viewer moved into virt-viewer-app and changed to property. New getter function implemented for it. This will be used in virt-viewer-window.c for implementing a "reconnect" button in the GUI. --- Changes since v1: - Moved the reconnect property from virt-viewer.c into virt-viewer-app.c, so it can be moved into preferences. - Added a getter function for reconnect to access it from virt-viewer.c - Changed g_object_notify to g_object_notify_by_pspec for reconnect in virt_viewer_app_set_property. --- src/virt-viewer-app.c | 41 ++++++++++++++++++++++++++++++++++++++++- src/virt-viewer-app.h | 3 +++ src/virt-viewer.c | 5 ++--- 3 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c index b22a876..e212831 100644 --- a/src/virt-viewer-app.c +++ b/src/virt-viewer-app.c @@ -123,7 +123,9 @@ struct _VirtViewerAppPrivate { gboolean attach; gboolean quitting; gboolean kiosk; - +#ifdef USING_VIRT_VIEWER + gboolean reconnect; +#endif VirtViewerSession *session; gboolean active; gboolean connected; @@ -172,6 +174,9 @@ enum { PROP_KIOSK, PROP_QUIT_ON_DISCONNECT, PROP_UUID, +#ifdef USING_VIRT_VIEWER + PROP_RECONNECT, +#endif }; enum { @@ -1603,6 +1608,12 @@ virt_viewer_app_get_property (GObject *object, guint property_id, g_value_set_string(value, priv->uuid); break; +#ifdef USING_VIRT_VIEWER + case PROP_RECONNECT: + g_value_set_boolean(value, priv->reconnect); + break; +#endif + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -1653,6 +1664,13 @@ virt_viewer_app_set_property (GObject *object, guint property_id, priv->quit_on_disconnect = g_value_get_boolean(value); break; +#ifdef USING_VIRT_VIEWER + case PROP_RECONNECT: + priv->reconnect = g_value_get_boolean(value); + g_object_notify_by_pspec(G_OBJECT(self), pspec); + break; +#endif + case PROP_UUID: virt_viewer_app_set_uuid_string(self, g_value_get_string(value)); break; @@ -1983,6 +2001,17 @@ virt_viewer_app_class_init (VirtViewerAppClass *klass) G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); +#ifdef USING_VIRT_VIEWER + g_object_class_install_property(object_class, + PROP_RECONNECT, + g_param_spec_boolean("reconnect", + "Reconnect", + "Reconnect", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); +#endif + signals[SIGNAL_WINDOW_ADDED] = g_signal_new("window-added", G_OBJECT_CLASS_TYPE(object_class), @@ -2427,6 +2456,16 @@ virt_viewer_app_get_enable_accel(VirtViewerApp *self) return self->priv->enable_accel; } +#ifdef USING_VIRT_VIEWER +gboolean +virt_viewer_app_get_reconnect(VirtViewerApp *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); + + return self->priv->reconnect; +} +#endif + VirtViewerSession* virt_viewer_app_get_session(VirtViewerApp *self) { diff --git a/src/virt-viewer-app.h b/src/virt-viewer-app.h index f53fa73..39e4059 100644 --- a/src/virt-viewer-app.h +++ b/src/virt-viewer-app.h @@ -103,6 +103,9 @@ void virt_viewer_app_set_enable_accel(VirtViewerApp *app, gboolean enable); void virt_viewer_app_show_preferences(VirtViewerApp *app, GtkWidget *parent); void virt_viewer_app_set_menus_sensitive(VirtViewerApp *self, gboolean sensitive); +#ifdef USING_VIRT_VIEWER +gboolean virt_viewer_app_get_reconnect(VirtViewerApp *self); +#endif G_END_DECLS #endif /* VIRT_VIEWER_APP_H */ diff --git a/src/virt-viewer.c b/src/virt-viewer.c index 9c3ccc9..3d2146a 100644 --- a/src/virt-viewer.c +++ b/src/virt-viewer.c @@ -56,7 +56,6 @@ struct _VirtViewerPrivate { virDomainPtr dom; char *domkey; gboolean waitvm; - gboolean reconnect; gboolean auth_cancelled; gint domain_event; guint reconnect_poll; /* source id */ @@ -161,7 +160,7 @@ virt_viewer_deactivated(VirtViewerApp *app, gboolean connect_error) priv->dom = NULL; } - if (priv->reconnect) { + if (virt_viewer_app_get_reconnect(VIRT_VIEWER_APP(self))) { if (priv->domain_event < 0) { g_debug("No domain events, falling back to polling"); virt_viewer_start_reconnect_poll(self); @@ -990,6 +989,7 @@ virt_viewer_new(const char *uri, self = g_object_new(VIRT_VIEWER_TYPE, "guest-name", name, + "reconnect", reconnect, NULL); app = VIRT_VIEWER_APP(self); priv = self->priv; @@ -1001,7 +1001,6 @@ virt_viewer_new(const char *uri, priv->uri = g_strdup(uri); priv->domkey = g_strdup(name); priv->waitvm = waitvm; - priv->reconnect = reconnect; return self; } -- 2.4.0 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list