[sysprof] libsysprof-ui: add zoom action
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sysprof] libsysprof-ui: add zoom action
- Date: Wed, 29 May 2019 22:40:06 +0000 (UTC)
commit 004916e74efc5a9dc186f32ba1fcc11760f15a5a
Author: Christian Hergert <chergert redhat com>
Date: Mon May 20 17:05:38 2019 -0700
libsysprof-ui: add zoom action
src/libsysprof-ui/sysprof-zoom-manager.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
---
diff --git a/src/libsysprof-ui/sysprof-zoom-manager.c b/src/libsysprof-ui/sysprof-zoom-manager.c
index fc82bfe..31b47ba 100644
--- a/src/libsysprof-ui/sysprof-zoom-manager.c
+++ b/src/libsysprof-ui/sysprof-zoom-manager.c
@@ -94,6 +94,19 @@ sysprof_zoom_manager_zoom_one_action (GSimpleAction *action,
sysprof_zoom_manager_reset (self);
}
+static void
+sysprof_zoom_manager_zoom_action (GSimpleAction *action,
+ GVariant *param,
+ gpointer user_data)
+{
+ SysprofZoomManager *self = user_data;
+
+ g_assert (SYSPROF_IS_ZOOM_MANAGER (self));
+ g_assert (g_variant_is_of_type (param, G_VARIANT_TYPE_DOUBLE));
+
+ sysprof_zoom_manager_set_zoom (self, g_variant_get_double (param));
+}
+
static void
sysprof_zoom_manager_get_property (GObject *object,
guint prop_id,
@@ -224,6 +237,7 @@ sysprof_zoom_manager_init (SysprofZoomManager *self)
{ "zoom-in", sysprof_zoom_manager_zoom_in_action },
{ "zoom-out", sysprof_zoom_manager_zoom_out_action },
{ "zoom-one", sysprof_zoom_manager_zoom_one_action },
+ { "zoom", NULL, "d", "1.0", sysprof_zoom_manager_zoom_action },
};
GAction *action;
@@ -399,7 +413,15 @@ sysprof_zoom_manager_set_zoom (SysprofZoomManager *self,
if (zoom != self->zoom)
{
+ g_autoptr(GVariant) state = NULL;
+
self->zoom = zoom;
+ state = g_variant_take_ref (g_variant_new_double (zoom));
+
+ g_object_set (g_action_map_lookup_action (G_ACTION_MAP (self->actions), "zoom"),
+ "state", state,
+ NULL);
+
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_ZOOM]);
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_CAN_ZOOM_IN]);
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_CAN_ZOOM_OUT]);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]