libsysprof-gtk: add some callgraph toggles to session

The idea is that we bind these to properties for use in UI/menus.
This commit is contained in:
Christian Hergert
2023-07-10 11:32:49 -07:00
parent 304943a03c
commit 5082616c94

View File

@ -40,12 +40,17 @@ struct _SysprofSession
SysprofTimeSpan selected_time; SysprofTimeSpan selected_time;
SysprofTimeSpan visible_time; SysprofTimeSpan visible_time;
guint include_threads : 1;
guint hide_system_libraries : 1;
}; };
enum { enum {
PROP_0, PROP_0,
PROP_DOCUMENT, PROP_DOCUMENT,
PROP_FILTER, PROP_FILTER,
PROP_HIDE_SYSTEM_LIBRARIES,
PROP_INCLUDE_THREADS,
PROP_SELECTED_TIME, PROP_SELECTED_TIME,
PROP_SELECTED_TIME_AXIS, PROP_SELECTED_TIME_AXIS,
PROP_TRACKS, PROP_TRACKS,
@ -128,6 +133,14 @@ sysprof_session_get_property (GObject *object,
g_value_set_object (value, sysprof_session_get_filter (self)); g_value_set_object (value, sysprof_session_get_filter (self));
break; break;
case PROP_HIDE_SYSTEM_LIBRARIES:
g_value_set_boolean (value, self->hide_system_libraries);
break;
case PROP_INCLUDE_THREADS:
g_value_set_boolean (value, self->include_threads);
break;
case PROP_SELECTED_TIME: case PROP_SELECTED_TIME:
g_value_set_boxed (value, sysprof_session_get_selected_time (self)); g_value_set_boxed (value, sysprof_session_get_selected_time (self));
break; break;
@ -167,6 +180,14 @@ sysprof_session_set_property (GObject *object,
sysprof_session_set_document (self, g_value_get_object (value)); sysprof_session_set_document (self, g_value_get_object (value));
break; break;
case PROP_HIDE_SYSTEM_LIBRARIES:
self->hide_system_libraries = g_value_get_boolean (value);
break;
case PROP_INCLUDE_THREADS:
self->include_threads = g_value_get_boolean (value);
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
} }
@ -191,6 +212,16 @@ sysprof_session_class_init (SysprofSessionClass *klass)
GTK_TYPE_FILTER, GTK_TYPE_FILTER,
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
properties [PROP_HIDE_SYSTEM_LIBRARIES] =
g_param_spec_boolean ("hide-system-libraries", NULL, NULL,
FALSE,
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
properties [PROP_INCLUDE_THREADS] =
g_param_spec_boolean ("include-threads", NULL, NULL,
FALSE,
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
properties [PROP_SELECTED_TIME] = properties [PROP_SELECTED_TIME] =
g_param_spec_boxed ("selected-time", NULL, NULL, g_param_spec_boxed ("selected-time", NULL, NULL,
SYSPROF_TYPE_TIME_SPAN, SYSPROF_TYPE_TIME_SPAN,
@ -211,7 +242,7 @@ sysprof_session_class_init (SysprofSessionClass *klass)
SYSPROF_TYPE_AXIS, SYSPROF_TYPE_AXIS,
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
properties[PROP_TRACKS] = properties [PROP_TRACKS] =
g_param_spec_object ("tracks", NULL, NULL, g_param_spec_object ("tracks", NULL, NULL,
G_TYPE_LIST_MODEL, G_TYPE_LIST_MODEL,
(G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS)); (G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));