mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2025-12-27 23:00:54 +00:00
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:
parent
2d8d923fd0
commit
e7b134c270
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user