mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 16:10:54 +00:00
libsysprof-ui: add some mark details
This commit is contained in:
@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <glib/gi18n.h>
|
||||||
|
|
||||||
#include "sysprof-callgraph-view.h"
|
#include "sysprof-callgraph-view.h"
|
||||||
#include "sysprof-capture-view.h"
|
#include "sysprof-capture-view.h"
|
||||||
#include "sysprof-details-view.h"
|
#include "sysprof-details-view.h"
|
||||||
@ -29,6 +31,8 @@
|
|||||||
#include "sysprof-ui-private.h"
|
#include "sysprof-ui-private.h"
|
||||||
#include "sysprof-visualizer-view.h"
|
#include "sysprof-visualizer-view.h"
|
||||||
|
|
||||||
|
#define NSEC_PER_SEC (G_USEC_PER_SEC * 1000L)
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
gint64 begin_time;
|
gint64 begin_time;
|
||||||
@ -42,6 +46,7 @@ typedef struct
|
|||||||
{
|
{
|
||||||
SysprofCaptureReader *reader;
|
SysprofCaptureReader *reader;
|
||||||
GCancellable *cancellable;
|
GCancellable *cancellable;
|
||||||
|
GHashTable *mark_stats;
|
||||||
|
|
||||||
SysprofCaptureFeatures features;
|
SysprofCaptureFeatures features;
|
||||||
|
|
||||||
@ -122,6 +127,62 @@ sysprof_capture_view_new (void)
|
|||||||
return g_object_new (SYSPROF_TYPE_CAPTURE_VIEW, NULL);
|
return g_object_new (SYSPROF_TYPE_CAPTURE_VIEW, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
add_marks_to_details (SysprofCaptureView *self)
|
||||||
|
{
|
||||||
|
SysprofCaptureViewPrivate *priv = sysprof_capture_view_get_instance_private (self);
|
||||||
|
GHashTableIter iter;
|
||||||
|
gpointer k, v;
|
||||||
|
guint count = 0;
|
||||||
|
|
||||||
|
g_assert (SYSPROF_IS_CAPTURE_VIEW (self));
|
||||||
|
|
||||||
|
if (priv->mark_stats == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (g_hash_table_size (priv->mark_stats) == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
g_hash_table_iter_init (&iter, priv->mark_stats);
|
||||||
|
while (count < 100 && g_hash_table_iter_next (&iter, &k, &v))
|
||||||
|
{
|
||||||
|
g_autofree gchar *str = NULL;
|
||||||
|
SysprofMarkStat *st = v;
|
||||||
|
GtkLabel *left_label;
|
||||||
|
GtkLabel *center_label;
|
||||||
|
|
||||||
|
if (st->avg == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
left_label = g_object_new (GTK_TYPE_LABEL,
|
||||||
|
"visible", TRUE,
|
||||||
|
"xalign", 1.0f,
|
||||||
|
"label", st->name,
|
||||||
|
"ellipsize", PANGO_ELLIPSIZE_START,
|
||||||
|
NULL);
|
||||||
|
gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (left_label)),
|
||||||
|
GTK_STYLE_CLASS_DIM_LABEL);
|
||||||
|
str = g_strdup_printf ("<span fgalpha='32767'>Min:</span> %.4lf "
|
||||||
|
"<span fgalpha='32767'>Max:</span> %.4lf "
|
||||||
|
"<span fgalpha='32767'>Ø:</span> %.4lf",
|
||||||
|
st->min / (gdouble)NSEC_PER_SEC,
|
||||||
|
st->max / (gdouble)NSEC_PER_SEC,
|
||||||
|
st->avg / (gdouble)NSEC_PER_SEC);
|
||||||
|
center_label = g_object_new (GTK_TYPE_LABEL,
|
||||||
|
"label", str,
|
||||||
|
"use-markup", TRUE,
|
||||||
|
"visible", TRUE,
|
||||||
|
"xalign", 0.0f,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
sysprof_details_view_add_item (priv->details_view,
|
||||||
|
GTK_WIDGET (left_label),
|
||||||
|
GTK_WIDGET (center_label));
|
||||||
|
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sysprof_capture_view_task_completed (SysprofCaptureView *self,
|
sysprof_capture_view_task_completed (SysprofCaptureView *self,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
@ -348,6 +409,11 @@ sysprof_capture_view_scan_worker (GTask *task,
|
|||||||
|
|
||||||
sysprof_capture_reader_set_stat (reader, &st_buf);
|
sysprof_capture_reader_set_stat (reader, &st_buf);
|
||||||
|
|
||||||
|
g_object_set_data_full (G_OBJECT (task),
|
||||||
|
"MARK_STAT",
|
||||||
|
g_steal_pointer (&mark_stats),
|
||||||
|
(GDestroyNotify) g_hash_table_unref);
|
||||||
|
|
||||||
if (!g_task_return_error_if_cancelled (task))
|
if (!g_task_return_error_if_cancelled (task))
|
||||||
{
|
{
|
||||||
priv->features = features;
|
priv->features = features;
|
||||||
@ -384,6 +450,7 @@ sysprof_capture_view_scan_finish (SysprofCaptureView *self,
|
|||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
SysprofCaptureViewPrivate *priv = sysprof_capture_view_get_instance_private (self);
|
SysprofCaptureViewPrivate *priv = sysprof_capture_view_get_instance_private (self);
|
||||||
|
GHashTable *stats;
|
||||||
|
|
||||||
g_assert (SYSPROF_IS_CAPTURE_VIEW (self));
|
g_assert (SYSPROF_IS_CAPTURE_VIEW (self));
|
||||||
g_assert (G_IS_TASK (result));
|
g_assert (G_IS_TASK (result));
|
||||||
@ -391,6 +458,12 @@ sysprof_capture_view_scan_finish (SysprofCaptureView *self,
|
|||||||
if (!priv->features.has_samples && priv->features.has_marks)
|
if (!priv->features.has_samples && priv->features.has_marks)
|
||||||
gtk_stack_set_visible_child_name (priv->stack, "timings");
|
gtk_stack_set_visible_child_name (priv->stack, "timings");
|
||||||
|
|
||||||
|
g_clear_pointer (&priv->mark_stats, g_hash_table_unref);
|
||||||
|
if ((stats = g_object_get_data (G_OBJECT (result), "MARK_STAT")))
|
||||||
|
priv->mark_stats = g_hash_table_ref (stats);
|
||||||
|
|
||||||
|
add_marks_to_details (self);
|
||||||
|
|
||||||
return g_task_propagate_boolean (G_TASK (result), error);
|
return g_task_propagate_boolean (G_TASK (result), error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -671,6 +744,7 @@ sysprof_capture_view_finalize (GObject *object)
|
|||||||
SysprofCaptureView *self = (SysprofCaptureView *)object;
|
SysprofCaptureView *self = (SysprofCaptureView *)object;
|
||||||
SysprofCaptureViewPrivate *priv = sysprof_capture_view_get_instance_private (self);
|
SysprofCaptureViewPrivate *priv = sysprof_capture_view_get_instance_private (self);
|
||||||
|
|
||||||
|
g_clear_pointer (&priv->mark_stats, g_hash_table_unref);
|
||||||
g_clear_pointer (&priv->reader, sysprof_capture_reader_unref);
|
g_clear_pointer (&priv->reader, sysprof_capture_reader_unref);
|
||||||
g_clear_object (&priv->cancellable);
|
g_clear_object (&priv->cancellable);
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,10 @@
|
|||||||
struct _SysprofDetailsView
|
struct _SysprofDetailsView
|
||||||
{
|
{
|
||||||
GtkBin parent_instance;
|
GtkBin parent_instance;
|
||||||
|
|
||||||
|
/* Template Objects */
|
||||||
|
GtkBox *left_box;
|
||||||
|
GtkBox *center_box;
|
||||||
GtkLabel *duration;
|
GtkLabel *duration;
|
||||||
GtkLabel *filename;
|
GtkLabel *filename;
|
||||||
GtkLabel *forks;
|
GtkLabel *forks;
|
||||||
@ -38,6 +42,7 @@ struct _SysprofDetailsView
|
|||||||
GtkLabel *processes;
|
GtkLabel *processes;
|
||||||
GtkLabel *samples;
|
GtkLabel *samples;
|
||||||
GtkLabel *start_time;
|
GtkLabel *start_time;
|
||||||
|
GtkBox *vbox;
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (SysprofDetailsView, sysprof_details_view, GTK_TYPE_BIN)
|
G_DEFINE_TYPE (SysprofDetailsView, sysprof_details_view, GTK_TYPE_BIN)
|
||||||
@ -87,6 +92,9 @@ sysprof_details_view_class_init (SysprofDetailsViewClass *klass)
|
|||||||
gtk_widget_class_bind_template_child (widget_class, SysprofDetailsView, processes);
|
gtk_widget_class_bind_template_child (widget_class, SysprofDetailsView, processes);
|
||||||
gtk_widget_class_bind_template_child (widget_class, SysprofDetailsView, samples);
|
gtk_widget_class_bind_template_child (widget_class, SysprofDetailsView, samples);
|
||||||
gtk_widget_class_bind_template_child (widget_class, SysprofDetailsView, start_time);
|
gtk_widget_class_bind_template_child (widget_class, SysprofDetailsView, start_time);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, SysprofDetailsView, vbox);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, SysprofDetailsView, left_box);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, SysprofDetailsView, center_box);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -150,3 +158,20 @@ sysprof_details_view_set_reader (SysprofDetailsView *self,
|
|||||||
#undef SET_FRAME_COUNT
|
#undef SET_FRAME_COUNT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
sysprof_details_view_add_item (SysprofDetailsView *self,
|
||||||
|
GtkWidget *left,
|
||||||
|
GtkWidget *center)
|
||||||
|
{
|
||||||
|
g_return_if_fail (SYSPROF_IS_DETAILS_VIEW (self));
|
||||||
|
g_return_if_fail (GTK_IS_WIDGET (left));
|
||||||
|
g_return_if_fail (GTK_IS_WIDGET (center));
|
||||||
|
|
||||||
|
gtk_container_add_with_properties (GTK_CONTAINER (self->left_box), left,
|
||||||
|
"pack-type", GTK_PACK_START,
|
||||||
|
"expand", TRUE,
|
||||||
|
"fill", TRUE,
|
||||||
|
NULL);
|
||||||
|
gtk_container_add (GTK_CONTAINER (self->center_box), center);
|
||||||
|
}
|
||||||
|
|||||||
@ -32,5 +32,8 @@ G_DECLARE_FINAL_TYPE (SysprofDetailsView, sysprof_details_view, SYSPROF, DETAILS
|
|||||||
GtkWidget *sysprof_details_view_new (void);
|
GtkWidget *sysprof_details_view_new (void);
|
||||||
void sysprof_details_view_set_reader (SysprofDetailsView *self,
|
void sysprof_details_view_set_reader (SysprofDetailsView *self,
|
||||||
SysprofCaptureReader *reader);
|
SysprofCaptureReader *reader);
|
||||||
|
void sysprof_details_view_add_item (SysprofDetailsView *self,
|
||||||
|
GtkWidget *left,
|
||||||
|
GtkWidget *center);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
@ -142,7 +142,6 @@
|
|||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="SysprofDetailsView" id="details_view">
|
<object class="SysprofDetailsView" id="details_view">
|
||||||
<property name="margin">36</property>
|
|
||||||
<property name="visible">true</property>
|
<property name="visible">true</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
|||||||
@ -5,169 +5,178 @@
|
|||||||
<template class="SysprofDetailsView" parent="GtkBin">
|
<template class="SysprofDetailsView" parent="GtkBin">
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkScrolledWindow">
|
||||||
<property name="visible">True</property>
|
<property name="hscrollbar-policy">never</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="propagate-natural-height">true</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="visible">true</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox" id="vbox">
|
||||||
|
<property name="margin">36</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="vexpand">True</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="spacing">12</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="halign">end</property>
|
<property name="spacing">12</property>
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="spacing">6</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkBox" id="left_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="label" translatable="yes">Filename</property>
|
<property name="halign">end</property>
|
||||||
<property name="xalign">1</property>
|
<property name="orientation">vertical</property>
|
||||||
<style>
|
<property name="spacing">6</property>
|
||||||
<class name="dim-label"/>
|
<child>
|
||||||
</style>
|
<object class="GtkLabel">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Filename</property>
|
||||||
|
<property name="xalign">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Captured At</property>
|
||||||
|
<property name="xalign">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Duration</property>
|
||||||
|
<property name="xalign">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="margin-top">12</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Samples Captured</property>
|
||||||
|
<property name="xalign">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Marks Captured</property>
|
||||||
|
<property name="xalign">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Processes Captured</property>
|
||||||
|
<property name="xalign">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="margin-bottom">12</property>
|
||||||
|
<property name="label" translatable="yes">Forks Captured</property>
|
||||||
|
<property name="xalign">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="pack-type">start</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
<property name="expand">true</property>
|
||||||
|
<property name="fill">true</property>
|
||||||
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child type="center">
|
||||||
<object class="GtkLabel">
|
<object class="GtkBox" id="center_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="label" translatable="yes">Captured At</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="xalign">1</property>
|
<property name="spacing">6</property>
|
||||||
<style>
|
<child>
|
||||||
<class name="dim-label"/>
|
<object class="GtkLabel" id="filename">
|
||||||
</style>
|
<property name="visible">True</property>
|
||||||
</object>
|
<property name="can_focus">False</property>
|
||||||
</child>
|
<property name="ellipsize">start</property>
|
||||||
<child>
|
<property name="xalign">0</property>
|
||||||
<object class="GtkLabel">
|
</object>
|
||||||
<property name="visible">True</property>
|
</child>
|
||||||
<property name="can_focus">False</property>
|
<child>
|
||||||
<property name="label" translatable="yes">Duration</property>
|
<object class="GtkLabel" id="start_time">
|
||||||
<property name="xalign">1</property>
|
<property name="visible">True</property>
|
||||||
<style>
|
<property name="can_focus">False</property>
|
||||||
<class name="dim-label"/>
|
<property name="ellipsize">start</property>
|
||||||
</style>
|
<property name="xalign">0</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel" id="duration">
|
||||||
<property name="margin-top">12</property>
|
<property name="visible">True</property>
|
||||||
<property name="visible">True</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">Samples Captured</property>
|
</object>
|
||||||
<property name="xalign">1</property>
|
</child>
|
||||||
<style>
|
<child>
|
||||||
<class name="dim-label"/>
|
<object class="GtkLabel" id="samples">
|
||||||
</style>
|
<property name="margin-top">12</property>
|
||||||
</object>
|
<property name="visible">True</property>
|
||||||
</child>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<property name="ellipsize">start</property>
|
||||||
<object class="GtkLabel">
|
<property name="xalign">0</property>
|
||||||
<property name="visible">True</property>
|
</object>
|
||||||
<property name="can_focus">False</property>
|
</child>
|
||||||
<property name="label" translatable="yes">Marks Captured</property>
|
<child>
|
||||||
<property name="xalign">1</property>
|
<object class="GtkLabel" id="marks">
|
||||||
<style>
|
<property name="visible">True</property>
|
||||||
<class name="dim-label"/>
|
<property name="can_focus">False</property>
|
||||||
</style>
|
<property name="ellipsize">start</property>
|
||||||
</object>
|
<property name="xalign">0</property>
|
||||||
</child>
|
</object>
|
||||||
<child>
|
</child>
|
||||||
<object class="GtkLabel">
|
<child>
|
||||||
<property name="visible">True</property>
|
<object class="GtkLabel" id="processes">
|
||||||
<property name="can_focus">False</property>
|
<property name="visible">True</property>
|
||||||
<property name="label" translatable="yes">Processes Captured</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">1</property>
|
<property name="ellipsize">start</property>
|
||||||
<style>
|
<property name="xalign">0</property>
|
||||||
<class name="dim-label"/>
|
</object>
|
||||||
</style>
|
</child>
|
||||||
</object>
|
<child>
|
||||||
</child>
|
<object class="GtkLabel" id="forks">
|
||||||
<child>
|
<property name="visible">True</property>
|
||||||
<object class="GtkLabel">
|
<property name="can_focus">False</property>
|
||||||
<property name="visible">True</property>
|
<property name="ellipsize">start</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="margin-bottom">12</property>
|
||||||
<property name="label" translatable="yes">Forks Captured</property>
|
<property name="xalign">0</property>
|
||||||
<property name="xalign">1</property>
|
</object>
|
||||||
<style>
|
</child>
|
||||||
<class name="dim-label"/>
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="pack-type">start</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
<property name="expand">true</property>
|
|
||||||
<property name="fill">true</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child type="center">
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="spacing">6</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="filename">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="ellipsize">start</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="start_time">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="ellipsize">start</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="duration">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="samples">
|
|
||||||
<property name="margin-top">12</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="ellipsize">start</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="marks">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="ellipsize">start</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="processes">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="ellipsize">start</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="forks">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="ellipsize">start</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
|||||||
Reference in New Issue
Block a user