libsysprof-gtk: use libpanel for PanelPaned

This responds to expand a bit more like we want.
This commit is contained in:
Christian Hergert
2023-06-13 14:09:33 -07:00
parent 1e2081f681
commit 6d5d5db8bb
4 changed files with 164 additions and 131 deletions

View File

@ -17,6 +17,7 @@ libsysprof_gtk_public_headers = [
libsysprof_gtk_deps = [
dependency('libadwaita-1'),
dependency('libpanel-1'),
dependency('gtk4', version: gtk_req_version),
libsysprof_analyze_dep,

View File

@ -20,6 +20,8 @@
#pragma once
#include <libpanel.h>
#include "sysprof-callgraph-view.h"
G_BEGIN_DECLS
@ -42,6 +44,7 @@ struct _SysprofCallgraphView
GtkCustomSorter *descendants_name_sorter;
GtkCustomSorter *functions_name_sorter;
GtkScrolledWindow *scrolled_window;
PanelPaned *right_paned;
GtkWidget *paned;
GCancellable *cancellable;

View File

@ -20,6 +20,8 @@
#include "config.h"
#include <libpanel.h>
#include "libsysprof-gtk-resources.h"
#include "sysprof-callgraph-view-private.h"
@ -161,6 +163,9 @@ sysprof_callgraph_view_list_traceables_cb (GObject *object,
gtk_column_view_set_model (self->traceables_column_view, GTK_SELECTION_MODEL (single));
traceables_selection_changed_cb (self, 0, 0, single);
}
gtk_widget_set_visible (gtk_widget_get_parent (GTK_WIDGET (self->right_paned)),
model && g_list_model_get_n_items (model));
}
static void
@ -362,7 +367,7 @@ sysprof_callgraph_view_class_init (SysprofCallgraphViewClass *klass)
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, functions_column_view);
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, functions_name_sorter);
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, paned);
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, scrolled_window);
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, right_paned);
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, traceable_column_view);
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, traceables_column_view);
gtk_widget_class_bind_template_callback (widget_class, format_time_offset);
@ -370,12 +375,16 @@ sysprof_callgraph_view_class_init (SysprofCallgraphViewClass *klass)
klass->augment_size = GLIB_SIZEOF_VOID_P;
g_resources_register (libsysprof_gtk_get_resource ());
g_type_ensure (PANEL_TYPE_PANED);
}
static void
sysprof_callgraph_view_init (SysprofCallgraphView *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
gtk_widget_set_visible (gtk_widget_get_parent (GTK_WIDGET (self->right_paned)), FALSE);
}
static int

View File

@ -2,15 +2,15 @@
<interface>
<template class="SysprofCallgraphView" parent="GtkWidget">
<child>
<object class="GtkPaned" id="paned">
<property name="position">250</property>
<property name="start-child">
<object class="GtkPaned">
<object class="PanelPaned" id="paned">
<child>
<object class="PanelPaned">
<property name="orientation">vertical</property>
<property name="start-child">
<child>
<object class="GtkScrolledWindow" id="functions_scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="vexpand">true</property>
<property name="propagate-natural-width">true</property>
<property name="hscrollbar-policy">never</property>
<child>
<object class="GtkColumnView" id="functions_column_view">
<child>
@ -24,25 +24,33 @@
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GtkListItem">
<property name="child">
<object class="GtkInscription">
<property name="text-overflow">ellipsize-start</property>
<property name="xalign">.0</property>
<binding name="text">
<lookup name="name">
<lookup name="symbol" type="SysprofCallgraphSymbol">
<lookup name="item">GtkListItem</lookup>
</lookup>
</lookup>
</binding>
</object>
</property>
</template>
</interface>
]]>
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GtkListItem">
<property name="child">
<object class="GtkInscription">
<property name="text-overflow">clip</property>
<property name="nat-chars">15</property>
<property name="xalign">.0</property>
<binding name="text">
<lookup name="name">
<lookup name="symbol" type="SysprofCallgraphSymbol">
<lookup name="item">GtkListItem</lookup>
</lookup>
</lookup>
</binding>
<binding name="tooltip-text">
<lookup name="name">
<lookup name="symbol" type="SysprofCallgraphSymbol">
<lookup name="item">GtkListItem</lookup>
</lookup>
</lookup>
</binding>
</object>
</property>
</template>
</interface>
]]>
</property>
</object>
</property>
@ -51,11 +59,11 @@
</object>
</child>
</object>
</property>
<property name="end-child">
</child>
<child>
<object class="GtkScrolledWindow" id="callers_scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="vexpand">true</property>
<property name="min-content-height">150</property>
<child>
<object class="GtkColumnView" id="callers_column_view">
<style>
@ -73,7 +81,7 @@
<template class="GtkListItem">
<property name="child">
<object class="GtkInscription">
<property name="text-overflow">ellipsize-start</property>
<property name="text-overflow">ellipsize-middle</property>
<property name="xalign">.0</property>
<binding name="text">
<lookup name="name">
@ -82,6 +90,13 @@
</lookup>
</lookup>
</binding>
<binding name="tooltip-text">
<lookup name="name">
<lookup name="symbol" type="SysprofCallgraphSymbol">
<lookup name="item">GtkListItem</lookup>
</lookup>
</lookup>
</binding>
</object>
</property>
</template>
@ -95,30 +110,29 @@
</object>
</child>
</object>
</property>
</child>
</object>
</property>
<property name="end-child">
<object class="GtkPaned">
<property name="start-child">
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hexpand">true</property>
</child>
<child>
<object class="GtkScrolledWindow" id="descendants_scrolled_window">
<property name="hexpand">true</property>
<property name="propagate-natural-height">true</property>
<child>
<object class="GtkColumnView" id="descendants_column_view">
<style>
<class name="data-table"/>
</style>
<child>
<object class="GtkColumnView" id="descendants_column_view">
<style>
<class name="data-table"/>
</style>
<child>
<object class="GtkColumnViewColumn" id="descendants_column">
<property name="title" translatable="yes">Descendants</property>
<property name="expand">true</property>
<property name="sorter">
<object class="GtkCustomSorter" id="descendants_name_sorter">
</object>
</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
<object class="GtkColumnViewColumn" id="descendants_column">
<property name="title" translatable="yes">Descendants</property>
<property name="expand">true</property>
<property name="sorter">
<object class="GtkCustomSorter" id="descendants_name_sorter">
</object>
</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GtkListItem">
@ -203,32 +217,33 @@
</template>
</interface>
]]>
</property>
</object>
</property>
</object>
</child>
</property>
</object>
</child>
</object>
</property>
<property name="end-child">
<object class="GtkPaned">
<property name="orientation">vertical</property>
<property name="end-child">
<object class="GtkScrolledWindow">
<property name="vexpand">false</property>
</child>
</object>
</child>
<child>
<object class="PanelPaned" id="right_paned">
<property name="hexpand">false</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="vexpand">true</property>
<child>
<object class="GtkColumnView" id="traceables_column_view">
<style>
<class name="data-table"/>
</style>
<child>
<object class="GtkColumnView" id="traceables_column_view">
<style>
<class name="data-table"/>
</style>
<child>
<object class="GtkColumnViewColumn" id="traceables_time_column">
<property name="title" translatable="yes">Time</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
<object class="GtkColumnViewColumn" id="traceables_time_column">
<property name="title" translatable="yes">Time</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GtkListItem">
@ -248,17 +263,17 @@
</template>
</interface>
]]>
</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkColumnViewColumn" id="traceables_pid_column">
<property name="title" translatable="yes">PID</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
</property>
</object>
</child>
<child>
<object class="GtkColumnViewColumn" id="traceables_pid_column">
<property name="title" translatable="yes">PID</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GtkListItem">
@ -278,18 +293,18 @@
</template>
</interface>
]]>
</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkColumnViewColumn" id="traceables_depth_column">
<property name="title" translatable="yes">Depth</property>
<property name="expand">true</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
</property>
</object>
</child>
<child>
<object class="GtkColumnViewColumn" id="traceables_depth_column">
<property name="title" translatable="yes">Depth</property>
<property name="expand">true</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GtkListItem">
@ -309,57 +324,64 @@
</template>
</interface>
]]>
</property>
</object>
</property>
</object>
</child>
</object>
</child>
</object>
</property>
<property name="start-child">
<object class="GtkScrolledWindow">
<property name="vexpand">true</property>
<child>
<object class="GtkColumnView" id="traceable_column_view">
<style>
<class name="data-table"/>
</style>
<child>
<object class="GtkColumnViewColumn" id="traceable_symbol_column">
<property name="title" translatable="yes">Stack Trace</property>
<property name="expand">true</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
</property>
</object>
</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="propagate-natural-width">true</property>
<property name="vexpand">true</property>
<child>
<object class="GtkColumnView" id="traceable_column_view">
<style>
<class name="data-table"/>
</style>
<child>
<object class="GtkColumnViewColumn" id="traceable_symbol_column">
<property name="title" translatable="yes">Stack Trace</property>
<property name="expand">true</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GtkListItem">
<property name="child">
<object class="GtkInscription">
<property name="text-overflow">ellipsize-middle</property>
<property name="text-overflow">clip</property>
<property name="nat-chars">15</property>
<binding name="text">
<lookup name="name" type="SysprofSymbol">
<lookup name="item">GtkListItem</lookup>
</lookup>
</binding>
<binding name="tooltip-text">
<lookup name="name" type="SysprofSymbol">
<lookup name="item">GtkListItem</lookup>
</lookup>
</binding>
</object>
</property>
</template>
</interface>
]]>
</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkColumnViewColumn" id="traceable_depth_column">
<property name="title" translatable="yes">Frame</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
</property>
</object>
</child>
<child>
<object class="GtkColumnViewColumn" id="traceable_depth_column">
<property name="title" translatable="yes">Frame</property>
<property name="factory">
<object class="GtkBuilderListItemFactory">
<property name="bytes"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GtkListItem">
@ -377,19 +399,17 @@
</template>
</interface>
]]>
</property>
</object>
</property>
</object>
</child>
</property>
</object>
</child>
</object>
</property>
</child>
</object>
</property>
</child>
</object>
</property>
</child>
</object>
</child>
</template>