[sysprof/wip/gtk4-port: 95/132] libsysprof-ui: more GTK 4 porting changes
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sysprof/wip/gtk4-port: 95/132] libsysprof-ui: more GTK 4 porting changes
- Date: Tue, 7 Dec 2021 08:29:13 +0000 (UTC)
commit a89012dfd6369ae08e2f6e194da7ea5a6e48ab92
Author: Christian Hergert <chergert redhat com>
Date: Fri Oct 1 13:05:05 2021 -0700
libsysprof-ui: more GTK 4 porting changes
src/libsysprof-ui/egg-three-grid.c | 24 +++-
src/libsysprof-ui/sysprof-marks-page.c | 8 +-
src/libsysprof-ui/sysprof-marks-page.ui | 146 ++++++++++++---------
src/libsysprof-ui/sysprof-scrollmap.c | 8 ++
src/libsysprof-ui/sysprof-scrollmap.h | 15 ++-
.../sysprof-visualizer-group-header.c | 3 +-
src/libsysprof-ui/sysprof-visualizers-frame.c | 2 +-
7 files changed, 132 insertions(+), 74 deletions(-)
---
diff --git a/src/libsysprof-ui/egg-three-grid.c b/src/libsysprof-ui/egg-three-grid.c
index 455e3c06..20e5165a 100644
--- a/src/libsysprof-ui/egg-three-grid.c
+++ b/src/libsysprof-ui/egg-three-grid.c
@@ -53,7 +53,11 @@ typedef struct
int nat_below_baseline;
} EggThreeGridRowInfo;
-G_DEFINE_TYPE_WITH_PRIVATE (EggThreeGrid, egg_three_grid, GTK_TYPE_WIDGET)
+static void buildable_iface_init (GtkBuildableIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (EggThreeGrid, egg_three_grid, GTK_TYPE_WIDGET,
+ G_ADD_PRIVATE (EggThreeGrid)
+ G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE, buildable_iface_init))
enum {
PROP_0,
@@ -695,3 +699,21 @@ egg_three_grid_column_get_type (void)
return type_id;
}
+
+static void
+egg_three_grid_add_child (GtkBuildable *buildable,
+ GtkBuilder *builder,
+ GObject *child,
+ const char *type)
+{
+ if (GTK_IS_WIDGET (child))
+ egg_three_grid_add (EGG_THREE_GRID (buildable), GTK_WIDGET (child), 0, EGG_THREE_GRID_COLUMN_LEFT);
+ else
+ g_warning ("%s cannot be added to %s", G_OBJECT_TYPE_NAME (child), G_OBJECT_TYPE_NAME (buildable));
+}
+
+static void
+buildable_iface_init (GtkBuildableIface *iface)
+{
+ iface->add_child = egg_three_grid_add_child;
+}
diff --git a/src/libsysprof-ui/sysprof-marks-page.c b/src/libsysprof-ui/sysprof-marks-page.c
index 3b7a7d35..c08381b9 100644
--- a/src/libsysprof-ui/sysprof-marks-page.c
+++ b/src/libsysprof-ui/sysprof-marks-page.c
@@ -50,6 +50,8 @@ typedef struct
GtkLabel *end;
GtkLabel *duration;
GtkTextView *message;
+ GtkWidget *failed;
+ GtkWidget *marks;
} SysprofMarksPagePrivate;
enum {
@@ -310,9 +312,9 @@ sysprof_marks_page_load_cb (GObject *object,
gtk_tree_view_set_model (priv->tree_view, GTK_TREE_MODEL (model));
if (gtk_tree_model_iter_n_children (GTK_TREE_MODEL (model), NULL) == 0)
- gtk_stack_set_visible_child_name (priv->stack, "empty-state");
+ gtk_stack_set_visible_child (priv->stack, GTK_WIDGET (priv->failed));
else
- gtk_stack_set_visible_child_name (priv->stack, "marks");
+ gtk_stack_set_visible_child (priv->stack, GTK_WIDGET (priv->marks));
g_task_return_boolean (task, TRUE);
}
@@ -517,6 +519,8 @@ sysprof_marks_page_class_init (SysprofMarksPageClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, SysprofMarksPage, duration);
gtk_widget_class_bind_template_child_private (widget_class, SysprofMarksPage, time);
gtk_widget_class_bind_template_child_private (widget_class, SysprofMarksPage, message);
+ gtk_widget_class_bind_template_child_private (widget_class, SysprofMarksPage, marks);
+ gtk_widget_class_bind_template_child_private (widget_class, SysprofMarksPage, failed);
properties [PROP_KIND] =
g_param_spec_enum ("kind", NULL, NULL,
diff --git a/src/libsysprof-ui/sysprof-marks-page.ui b/src/libsysprof-ui/sysprof-marks-page.ui
index 0697c835..e7f92c8d 100644
--- a/src/libsysprof-ui/sysprof-marks-page.ui
+++ b/src/libsysprof-ui/sysprof-marks-page.ui
@@ -3,10 +3,11 @@
<template class="SysprofMarksPage" parent="SysprofPage">
<child>
<object class="GtkStack" id="stack">
- <property name="homogeneous">false</property>
+ <property name="hhomogeneous">false</property>
+ <property name="vhomogeneous">false</property>
<property name="visible">true</property>
<child>
- <object class="GtkBox">
+ <object class="GtkBox" id="marks">
<property name="orientation">horizontal</property>
<property name="visible">true</property>
<child>
@@ -44,11 +45,11 @@
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="row">0</property>
+ <property name="column">0</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">0</property>
- <property name="left-attach">0</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
@@ -59,11 +60,11 @@
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="row">1</property>
+ <property name="column">0</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">1</property>
- <property name="left-attach">0</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
@@ -73,11 +74,11 @@
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="row">2</property>
+ <property name="column">0</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">2</property>
- <property name="left-attach">0</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
@@ -87,11 +88,11 @@
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="row">3</property>
+ <property name="column">0</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">3</property>
- <property name="left-attach">0</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
@@ -101,11 +102,11 @@
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="row">4</property>
+ <property name="column">0</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">4</property>
- <property name="left-attach">0</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
@@ -116,22 +117,22 @@
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="row">5</property>
+ <property name="column">0</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">5</property>
- <property name="left-attach">0</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="group">
<property name="visible">true</property>
<property name="xalign">0</property>
<property name="wrap">true</property>
+ <layout>
+ <property name="row">0</property>
+ <property name="column">1</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">0</property>
- <property name="left-attach">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="mark">
@@ -139,46 +140,45 @@
<property name="xalign">0</property>
<property name="max-width-chars">5</property>
<property name="ellipsize">end</property>
+ <layout>
+ <property name="row">1</property>
+ <property name="column">1</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">1</property>
- <property name="left-attach">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="time">
<property name="visible">true</property>
<property name="xalign">0</property>
+ <layout>
+ <property name="row">2</property>
+ <property name="column">1</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">2</property>
- <property name="left-attach">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="end">
<property name="visible">true</property>
<property name="xalign">0</property>
+ <layout>
+ <property name="row">3</property>
+ <property name="column">1</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">3</property>
- <property name="left-attach">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="duration">
<property name="visible">true</property>
<property name="xalign">0</property>
+ <layout>
+ <property name="row">4</property>
+ <property name="column">1</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">4</property>
- <property name="left-attach">1</property>
- </packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hexpand">true</property>
- <property name="shadow-type">in</property>
<property name="visible">true</property>
<child>
<object class="GtkTextView" id="message">
@@ -186,11 +186,11 @@
<property name="visible">true</property>
</object>
</child>
+ <layout>
+ <property name="row">5</property>
+ <property name="column">1</property>
+ </layout>
</object>
- <packing>
- <property name="top-attach">5</property>
- <property name="left-attach">1</property>
- </packing>
</child>
</object>
</child>
@@ -238,20 +238,44 @@
</object>
</child>
</object>
- <packing>
- <property name="name">marks</property>
- </packing>
</child>
<child>
- <object class="DzlEmptyState">
- <property name="icon-name">computer-fail-symbolic</property>
- <property name="title" translatable="yes">No Timings Available</property>
- <property name="subtitle" translatable="yes">No timing data was found for the current
selection</property>
+ <object class="GtkBox" id="failed">
+ <property name="halign">center</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <property name="valign">center</property>
<property name="visible">true</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">computer-fail-symbolic</property>
+ <property name="pixel-size">128</property>
+ <property name="visible">true</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="title">
+ <property name="label" translatable="yes">No Timings Available</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <attributes>
+ <attribute name="scale" value="2.0"/>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="subtitle">
+ <property name="label" translatable="yes">No timing data was found for the current
selection</property>
+ <property name="use-markup">true</property>
+ <property name="wrap">true</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
</object>
- <packing>
- <property name="name">empty-state</property>
- </packing>
</child>
</object>
</child>
diff --git a/src/libsysprof-ui/sysprof-scrollmap.c b/src/libsysprof-ui/sysprof-scrollmap.c
index 05e7b9bd..e21683bc 100644
--- a/src/libsysprof-ui/sysprof-scrollmap.c
+++ b/src/libsysprof-ui/sysprof-scrollmap.c
@@ -318,3 +318,11 @@ sysprof_scrollmap_set_adjustment (SysprofScrollmap *self,
gtk_scrollbar_set_adjustment (GTK_SCROLLBAR (self->scrollbar), adjustment);
}
+
+GtkAdjustment *
+sysprof_scrollmap_get_adjustment (SysprofScrollmap *self)
+{
+ g_return_val_if_fail (SYSPROF_IS_SCROLLMAP (self), NULL);
+
+ return gtk_scrollbar_get_adjustment (GTK_SCROLLBAR (self->scrollbar));
+}
diff --git a/src/libsysprof-ui/sysprof-scrollmap.h b/src/libsysprof-ui/sysprof-scrollmap.h
index 14371d9d..2fbe1721 100644
--- a/src/libsysprof-ui/sysprof-scrollmap.h
+++ b/src/libsysprof-ui/sysprof-scrollmap.h
@@ -28,12 +28,13 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (SysprofScrollmap, sysprof_scrollmap, SYSPROF, SCROLLMAP, GtkWidget)
-void sysprof_scrollmap_set_adjustment (SysprofScrollmap *self,
- GtkAdjustment *adjustment);
-void sysprof_scrollmap_set_timings (SysprofScrollmap *self,
- GArray *timings);
-void sysprof_scrollmap_set_time_range (SysprofScrollmap *self,
- gint64 begin_time,
- gint64 end_time);
+GtkAdjustment *sysprof_scrollmap_get_adjustment (SysprofScrollmap *self);
+void sysprof_scrollmap_set_adjustment (SysprofScrollmap *self,
+ GtkAdjustment *adjustment);
+void sysprof_scrollmap_set_timings (SysprofScrollmap *self,
+ GArray *timings);
+void sysprof_scrollmap_set_time_range (SysprofScrollmap *self,
+ gint64 begin_time,
+ gint64 end_time);
G_END_DECLS
diff --git a/src/libsysprof-ui/sysprof-visualizer-group-header.c
b/src/libsysprof-ui/sysprof-visualizer-group-header.c
index 84957b89..b870a82f 100644
--- a/src/libsysprof-ui/sysprof-visualizer-group-header.c
+++ b/src/libsysprof-ui/sysprof-visualizer-group-header.c
@@ -151,12 +151,11 @@ _sysprof_visualizer_group_header_add_row (SysprofVisualizerGroupHeader *self,
"icon-name", "view-more-symbolic",
"visible", TRUE,
NULL),
- "margin-right", 6,
+ "margin-end", 6,
"direction", GTK_ARROW_RIGHT,
"halign", GTK_ALIGN_CENTER,
"menu-model", menu,
"tooltip-text", _("Display supplemental graphs"),
- "use-popover", FALSE,
"valign", GTK_ALIGN_CENTER,
"visible", TRUE,
NULL);
diff --git a/src/libsysprof-ui/sysprof-visualizers-frame.c b/src/libsysprof-ui/sysprof-visualizers-frame.c
index 2f0fef1b..5e9740d3 100644
--- a/src/libsysprof-ui/sysprof-visualizers-frame.c
+++ b/src/libsysprof-ui/sysprof-visualizers-frame.c
@@ -706,7 +706,7 @@ sysprof_visualizers_frame_get_hadjustment (SysprofVisualizersFrame *self)
{
g_return_val_if_fail (SYSPROF_IS_VISUALIZERS_FRAME (self), NULL);
- return gtk_range_get_adjustment (GTK_RANGE (self->hscrollbar));
+ return sysprof_scrollmap_get_adjustment (self->hscrollbar);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]