sysprof: add size column (and use columnview) for files

This commit is contained in:
Christian Hergert
2023-07-08 13:09:13 -07:00
parent 0a379647dd
commit e6d1389f83
2 changed files with 44 additions and 5 deletions

View File

@ -104,6 +104,13 @@ sysprof_files_dialog_activate_cb (SysprofFilesDialog *self,
gtk_window_present (window);
}
static char *
format_size (gpointer unused,
guint64 size)
{
return g_format_size (size);
}
static void
sysprof_files_dialog_dispose (GObject *object)
{
@ -173,6 +180,7 @@ sysprof_files_dialog_class_init (SysprofFilesDialogClass *klass)
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/sysprof/sysprof-files-dialog.ui");
gtk_widget_class_bind_template_callback (widget_class, sysprof_files_dialog_activate_cb);
gtk_widget_class_bind_template_callback (widget_class, format_size);
gtk_widget_class_bind_template_child (widget_class, SysprofFilesDialog, column_view);
gtk_widget_class_bind_template_child (widget_class, SysprofFilesDialog, path_column);
}

View File

@ -20,7 +20,6 @@
<child>
<object class="GtkColumnView" id="column_view">
<signal name="activate" handler="sysprof_files_dialog_activate_cb" swapped="true"/>
<property name="show-column-separators">true</property>
<property name="show-row-separators">true</property>
<property name="model">
<object class="GtkNoSelection">
@ -58,10 +57,6 @@
<property name="child">
<object class="GtkLabel">
<property name="xalign">0</property>
<property name="margin-top">3</property>
<property name="margin-bottom">3</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<binding name="label">
<lookup name="path" type="SysprofDocumentFile">
<lookup name="item">GtkListItem</lookup>
@ -71,6 +66,42 @@
</property>
</template>
</interface>
]]>
</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkColumnViewColumn" id="size_column">
<property name="title" translatable="yes">Size</property>
<property name="sorter">
<object class="GtkNumericSorter">
<property name="expression">
<lookup name="size" type="SysprofDocumentFile"/>
</property>
</object>
</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="GtkLabel">
<property name="xalign">0</property>
<binding name="label">
<closure type="gchararray" function="format_size">
<lookup name="size" type="SysprofDocumentFile">
<lookup name="item">GtkListItem</lookup>
</lookup>
</closure>
</binding>
</object>
</property>
</template>
</interface>
]]>
</property>
</object>