app: add "vm-running" property

Add "vm-running" property and modify "menu-vm-pause" check button
state when the running state changes.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
This commit is contained in:
Marc-André Lureau 2018-07-31 13:02:07 +02:00
parent 2d8d923fd0
commit e7b134c270
2 changed files with 35 additions and 0 deletions

View File

@ -128,6 +128,7 @@ struct _VirtViewerAppPrivate {
gboolean quitting;
gboolean kiosk;
gboolean vm_ui;
gboolean vm_running;
VirtViewerSession *session;
gboolean active;
@ -176,6 +177,7 @@ enum {
PROP_QUIT_ON_DISCONNECT,
PROP_UUID,
PROP_VM_UI,
PROP_VM_RUNNING,
};
void
@ -1584,6 +1586,10 @@ virt_viewer_app_get_property (GObject *object, guint property_id,
g_value_set_boolean(value, priv->vm_ui);
break;
case PROP_VM_RUNNING:
g_value_set_boolean(value, priv->vm_running);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
@ -1642,6 +1648,10 @@ virt_viewer_app_set_property (GObject *object, guint property_id,
priv->vm_ui = g_value_get_boolean(value);
break;
case PROP_VM_RUNNING:
priv->vm_running = g_value_get_boolean(value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
@ -2041,6 +2051,15 @@ virt_viewer_app_class_init (VirtViewerAppClass *klass)
FALSE,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
g_object_class_install_property(object_class,
PROP_VM_RUNNING,
g_param_spec_boolean("vm-running",
"VM running",
"VM running",
FALSE,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
}
void

View File

@ -237,6 +237,20 @@ vm_ui_changed(GObject *gobject G_GNUC_UNUSED,
gtk_widget_set_visible(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-machine")), vm_ui);
}
static void
vm_running_changed(GObject *gobject G_GNUC_UNUSED,
GParamSpec *pspec G_GNUC_UNUSED,
gpointer user_data)
{
VirtViewerWindow *self = user_data;
GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(self->priv->builder, "menu-vm-pause"));
gboolean running;
g_object_get(G_OBJECT(self->priv->app), "vm-running", &running, NULL);
gtk_check_menu_item_set_active(check, !running);
}
static void
virt_viewer_window_constructed(GObject *object)
{
@ -249,6 +263,8 @@ virt_viewer_window_constructed(GObject *object)
G_CALLBACK(rebuild_combo_menu), object);
g_signal_connect(priv->app, "notify::vm-ui",
G_CALLBACK(vm_ui_changed), object);
g_signal_connect(priv->app, "notify::vm-running",
G_CALLBACK(vm_running_changed), object);
rebuild_combo_menu(NULL, NULL, object);
}