mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 16:10:54 +00:00
libsysprof-gtk: add SysprofCallgraphView:utillity-traceables
This property is meant to hold accessory traceables that match the current selection in the callgraph view. Eventually we want this bridged with the callgraph sections to show something useful.
This commit is contained in:
@ -35,6 +35,7 @@ struct _SysprofCallgraphView
|
|||||||
SysprofDocument *document;
|
SysprofDocument *document;
|
||||||
SysprofCallgraph *callgraph;
|
SysprofCallgraph *callgraph;
|
||||||
GListModel *traceables;
|
GListModel *traceables;
|
||||||
|
GListModel *utility_traceables;
|
||||||
|
|
||||||
GtkColumnView *callers_column_view;
|
GtkColumnView *callers_column_view;
|
||||||
GtkColumnView *descendants_column_view;
|
GtkColumnView *descendants_column_view;
|
||||||
|
|||||||
@ -34,6 +34,7 @@ enum {
|
|||||||
PROP_HIDE_SYSTEM_LIBRARIES,
|
PROP_HIDE_SYSTEM_LIBRARIES,
|
||||||
PROP_INCLUDE_THREADS,
|
PROP_INCLUDE_THREADS,
|
||||||
PROP_TRACEABLES,
|
PROP_TRACEABLES,
|
||||||
|
PROP_UTILITY_TRACEABLES,
|
||||||
N_PROPS
|
N_PROPS
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -50,6 +51,17 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (SysprofCallgraphView, sysprof_callgraph_view,
|
|||||||
|
|
||||||
static GParamSpec *properties [N_PROPS];
|
static GParamSpec *properties [N_PROPS];
|
||||||
|
|
||||||
|
static void
|
||||||
|
sysprof_callgraph_view_set_utility_traceables (SysprofCallgraphView *self,
|
||||||
|
GListModel *model)
|
||||||
|
{
|
||||||
|
g_assert (SYSPROF_IS_CALLGRAPH_VIEW (self));
|
||||||
|
g_assert (!model || G_IS_LIST_MODEL (model));
|
||||||
|
|
||||||
|
if (g_set_object (&self->utility_traceables, model))
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_UTILITY_TRACEABLES]);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sysprof_callgraph_view_set_descendants (SysprofCallgraphView *self,
|
sysprof_callgraph_view_set_descendants (SysprofCallgraphView *self,
|
||||||
GListModel *model)
|
GListModel *model)
|
||||||
@ -181,6 +193,8 @@ sysprof_callgraph_view_list_traceables_cb (GObject *object,
|
|||||||
traceables_selection_changed_cb (self, 0, 0, single);
|
traceables_selection_changed_cb (self, 0, 0, single);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sysprof_callgraph_view_set_utility_traceables (self, model);
|
||||||
|
|
||||||
gtk_widget_set_visible (gtk_widget_get_parent (GTK_WIDGET (self->right_paned)),
|
gtk_widget_set_visible (gtk_widget_get_parent (GTK_WIDGET (self->right_paned)),
|
||||||
model && g_list_model_get_n_items (model));
|
model && g_list_model_get_n_items (model));
|
||||||
}
|
}
|
||||||
@ -197,7 +211,7 @@ descendants_selection_changed_cb (SysprofCallgraphView *self,
|
|||||||
g_assert (SYSPROF_IS_CALLGRAPH_VIEW (self));
|
g_assert (SYSPROF_IS_CALLGRAPH_VIEW (self));
|
||||||
g_assert (GTK_IS_SINGLE_SELECTION (single));
|
g_assert (GTK_IS_SINGLE_SELECTION (single));
|
||||||
|
|
||||||
gtk_column_view_set_model (self->traceables_column_view, NULL);
|
sysprof_callgraph_view_set_utility_traceables (self, NULL);
|
||||||
|
|
||||||
if ((object = gtk_single_selection_get_selected_item (single)) &&
|
if ((object = gtk_single_selection_get_selected_item (single)) &&
|
||||||
GTK_IS_TREE_LIST_ROW (object) &&
|
GTK_IS_TREE_LIST_ROW (object) &&
|
||||||
@ -364,6 +378,7 @@ sysprof_callgraph_view_dispose (GObject *object)
|
|||||||
g_clear_object (&self->callgraph);
|
g_clear_object (&self->callgraph);
|
||||||
g_clear_object (&self->document);
|
g_clear_object (&self->document);
|
||||||
g_clear_object (&self->traceables);
|
g_clear_object (&self->traceables);
|
||||||
|
g_clear_object (&self->utility_traceables);
|
||||||
|
|
||||||
G_OBJECT_CLASS (sysprof_callgraph_view_parent_class)->dispose (object);
|
G_OBJECT_CLASS (sysprof_callgraph_view_parent_class)->dispose (object);
|
||||||
}
|
}
|
||||||
@ -398,6 +413,10 @@ sysprof_callgraph_view_get_property (GObject *object,
|
|||||||
g_value_set_object (value, sysprof_callgraph_view_get_traceables (self));
|
g_value_set_object (value, sysprof_callgraph_view_get_traceables (self));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_UTILITY_TRACEABLES:
|
||||||
|
g_value_set_object (value, self->utility_traceables);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
}
|
}
|
||||||
@ -469,6 +488,11 @@ sysprof_callgraph_view_class_init (SysprofCallgraphViewClass *klass)
|
|||||||
G_TYPE_LIST_MODEL,
|
G_TYPE_LIST_MODEL,
|
||||||
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
|
properties[PROP_UTILITY_TRACEABLES] =
|
||||||
|
g_param_spec_object ("utility-traceables", NULL, NULL,
|
||||||
|
G_TYPE_LIST_MODEL,
|
||||||
|
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
g_object_class_install_properties (object_class, N_PROPS, properties);
|
g_object_class_install_properties (object_class, N_PROPS, properties);
|
||||||
|
|
||||||
gtk_widget_class_set_template_from_resource (widget_class, "/libsysprof-gtk/sysprof-callgraph-view.ui");
|
gtk_widget_class_set_template_from_resource (widget_class, "/libsysprof-gtk/sysprof-callgraph-view.ui");
|
||||||
|
|||||||
Reference in New Issue
Block a user