sysprof: add buttons to open on capture page

This commit is contained in:
Christian Hergert
2023-08-04 22:38:11 -07:00
parent 60f8e0bc0a
commit 53f4a33de2
2 changed files with 61 additions and 22 deletions

View File

@ -38,7 +38,8 @@ struct _SysprofGreeter
GFile *file; GFile *file;
AdwViewStack *view_stack; AdwViewStack *view_stack;
GtkBox *toolbar; GtkWidget *open_buttons;
GtkWidget *record_buttons;
AdwPreferencesPage *record_page; AdwPreferencesPage *record_page;
GtkWidget *open_page; GtkWidget *open_page;
GtkSwitch *sample_native_stacks; GtkSwitch *sample_native_stacks;
@ -67,11 +68,17 @@ sysprof_greeter_view_stack_notify_visible_child (SysprofGreeter *self,
GParamSpec *pspec, GParamSpec *pspec,
AdwViewStack *stack) AdwViewStack *stack)
{ {
GtkWidget *visible_child;
g_assert (SYSPROF_IS_GREETER (self)); g_assert (SYSPROF_IS_GREETER (self));
g_assert (ADW_IS_VIEW_STACK (stack)); g_assert (ADW_IS_VIEW_STACK (stack));
gtk_widget_set_visible (GTK_WIDGET (self->toolbar), visible_child = adw_view_stack_get_visible_child (stack);
GTK_WIDGET (self->record_page) == adw_view_stack_get_visible_child (stack));
gtk_widget_set_visible (GTK_WIDGET (self->record_buttons),
GTK_WIDGET (self->record_page) == visible_child);
gtk_widget_set_visible (GTK_WIDGET (self->open_buttons),
GTK_WIDGET (self->open_page) == visible_child);
} }
static SysprofProfiler * static SysprofProfiler *
@ -402,6 +409,7 @@ sysprof_greeter_class_init (SysprofGreeterClass *klass)
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/sysprof/sysprof-greeter.ui"); gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/sysprof/sysprof-greeter.ui");
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, bundle_symbols); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, bundle_symbols);
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, open_buttons);
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, open_page); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, open_page);
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, record_compositor); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, record_compositor);
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, record_disk_usage); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, record_disk_usage);
@ -412,7 +420,7 @@ sysprof_greeter_class_init (SysprofGreeterClass *klass)
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, record_system_logs); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, record_system_logs);
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, sample_native_stacks); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, sample_native_stacks);
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, sample_javascript_stacks); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, sample_javascript_stacks);
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, toolbar); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, record_buttons);
gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, view_stack); gtk_widget_class_bind_template_child (widget_class, SysprofGreeter, view_stack);
gtk_widget_class_bind_template_callback (widget_class, sysprof_greeter_view_stack_notify_visible_child); gtk_widget_class_bind_template_callback (widget_class, sysprof_greeter_view_stack_notify_visible_child);

View File

@ -388,32 +388,63 @@
</object> </object>
</property> </property>
<child type="bottom"> <child type="bottom">
<object class="GtkBox" id="toolbar"> <object class="GtkBox">
<property name="orientation">vertical</property>
<child> <child>
<object class="GtkBox" id="record_buttons"> <object class="AdwClamp" id="record_buttons">
<style> <property name="maximum-size">500</property>
<class name="toolbar"/>
</style>
<property name="homogeneous">true</property>
<property name="halign">center</property>
<property name="width-request">500</property>
<child> <child>
<object class="GtkButton"> <object class="GtkBox">
<property name="label" translatable="yes">Record to _File…</property> <style>
<property name="action-name">win.record-to-file</property> <class name="toolbar"/>
<property name="use-underline">true</property> </style>
<property name="hexpand">true</property> <property name="hexpand">true</property>
<property name="homogeneous">true</property>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">Record to _File…</property>
<property name="action-name">win.record-to-file</property>
<property name="use-underline">true</property>
<property name="hexpand">true</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">_Record to Memory</property>
<property name="action-name">win.record-to-memory</property>
<property name="use-underline">true</property>
<property name="hexpand">true</property>
<style>
<class name="suggested-action"/>
</style>
</object>
</child>
</object> </object>
</child> </child>
</object>
</child>
<child>
<object class="AdwClamp" id="open_buttons">
<property name="maximum-size">500</property>
<property name="visible">false</property>
<child> <child>
<object class="GtkButton"> <object class="GtkBox">
<property name="label" translatable="yes">_Record to Memory</property>
<property name="action-name">win.record-to-memory</property>
<property name="use-underline">true</property>
<property name="hexpand">true</property>
<style> <style>
<class name="suggested-action"/> <class name="toolbar"/>
</style> </style>
<property name="hexpand">true</property>
<property name="homogeneous">true</property>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">_Open Capture…</property>
<property name="action-name">win.open-capture</property>
<property name="use-underline">true</property>
<property name="hexpand">true</property>
<style>
<class name="suggested-action"/>
</style>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>