profilerassistant: port to GTK 4

This commit is contained in:
Christian Hergert
2021-09-28 16:02:51 -07:00
parent e29b1836cc
commit 9a95835b59
3 changed files with 25 additions and 22 deletions

View File

@ -45,7 +45,7 @@
struct _SysprofProfilerAssistant struct _SysprofProfilerAssistant
{ {
GtkBin parent_instance; GtkWidget parent_instance;
SysprofProcessModel *process_model; SysprofProcessModel *process_model;
@ -70,7 +70,7 @@ enum {
static guint signals [N_SIGNALS]; static guint signals [N_SIGNALS];
G_DEFINE_TYPE (SysprofProfilerAssistant, sysprof_profiler_assistant, GTK_TYPE_BIN) G_DEFINE_TYPE (SysprofProfilerAssistant, sysprof_profiler_assistant, GTK_TYPE_WIDGET)
/** /**
* sysprof_profiler_assistant_new: * sysprof_profiler_assistant_new:
@ -155,12 +155,12 @@ sysprof_profiler_assistant_command_line_changed_cb (SysprofProfilerAssistant *se
g_assert (GTK_IS_ENTRY (entry)); g_assert (GTK_IS_ENTRY (entry));
style_context = gtk_widget_get_style_context (GTK_WIDGET (entry)); style_context = gtk_widget_get_style_context (GTK_WIDGET (entry));
text = gtk_entry_get_text (entry); text = gtk_editable_get_text (GTK_EDITABLE (entry));
if (text == NULL || text[0] == 0 || g_shell_parse_argv (text, &argc, &argv, NULL)) if (text == NULL || text[0] == 0 || g_shell_parse_argv (text, &argc, &argv, NULL))
gtk_style_context_remove_class (style_context, GTK_STYLE_CLASS_ERROR); gtk_style_context_remove_class (style_context, "error");
else else
gtk_style_context_add_class (style_context, GTK_STYLE_CLASS_ERROR); gtk_style_context_add_class (style_context, "error");
} }
static void static void
@ -222,9 +222,10 @@ sysprof_profiler_assistant_record_clicked_cb (SysprofProfilerAssistant *self,
sysprof_profiler_set_writer (profiler, writer); sysprof_profiler_set_writer (profiler, writer);
/* Add pids to profiler */ /* Add pids to profiler */
gtk_container_foreach (GTK_CONTAINER (self->process_list_box), for (GtkWidget *child = gtk_widget_get_first_child (GTK_WIDGET (self->process_list_box));
(GtkCallback) sysprof_profiler_assistant_foreach_cb, child;
profiler); child = gtk_widget_get_next_sibling (child))
sysprof_profiler_assistant_foreach_cb (child, profiler);
/* Setup whole system profiling */ /* Setup whole system profiling */
sysprof_profiler_set_whole_system (profiler, gtk_switch_get_active (self->whole_system_switch)); sysprof_profiler_set_whole_system (profiler, gtk_switch_get_active (self->whole_system_switch));
@ -237,7 +238,7 @@ sysprof_profiler_assistant_record_clicked_cb (SysprofProfilerAssistant *self,
const gchar *command; const gchar *command;
gint argc; gint argc;
command = gtk_entry_get_text (self->command_line); command = gtk_editable_get_text (GTK_EDITABLE (self->command_line));
g_shell_parse_argv (command, &argc, &argv, NULL); g_shell_parse_argv (command, &argc, &argv, NULL);
sysprof_profiler_set_spawn (profiler, TRUE); sysprof_profiler_set_spawn (profiler, TRUE);
@ -269,9 +270,10 @@ sysprof_profiler_assistant_record_clicked_cb (SysprofProfilerAssistant *self,
sysprof_profiler_add_source (profiler, symbols_source); sysprof_profiler_add_source (profiler, symbols_source);
/* Now allow the aids to add their sources */ /* Now allow the aids to add their sources */
gtk_container_foreach (GTK_CONTAINER (self->aid_flow_box), for (GtkWidget *child = gtk_widget_get_first_child (GTK_WIDGET (self->aid_flow_box));
(GtkCallback) sysprof_profiler_assistant_foreach_cb, child;
profiler); child = gtk_widget_get_next_sibling (child))
sysprof_profiler_assistant_foreach_cb (child, profiler);
g_signal_emit (self, signals [START_RECORDING], 0, profiler); g_signal_emit (self, signals [START_RECORDING], 0, profiler);
} }
@ -322,7 +324,7 @@ sysprof_profiler_assistant_search_changed_cb (SysprofProfilerAssistant *self,
sysprof_process_model_queue_reload (self->process_model); sysprof_process_model_queue_reload (self->process_model);
text = gtk_entry_get_text (GTK_ENTRY (search_entry)); text = gtk_editable_get_text (GTK_EDITABLE (search_entry));
if (text[0] == 0) if (text[0] == 0)
{ {
@ -345,21 +347,22 @@ sysprof_profiler_assistant_search_changed_cb (SysprofProfilerAssistant *self,
} }
static void static void
sysprof_profiler_assistant_destroy (GtkWidget *widget) sysprof_profiler_assistant_dispose (GObject *object)
{ {
SysprofProfilerAssistant *self = (SysprofProfilerAssistant *)widget; SysprofProfilerAssistant *self = (SysprofProfilerAssistant *)object;
g_clear_object (&self->process_model); g_clear_object (&self->process_model);
GTK_WIDGET_CLASS (sysprof_profiler_assistant_parent_class)->destroy (widget); G_OBJECT_CLASS (sysprof_profiler_assistant_parent_class)->dispose (object);
} }
static void static void
sysprof_profiler_assistant_class_init (SysprofProfilerAssistantClass *klass) sysprof_profiler_assistant_class_init (SysprofProfilerAssistantClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
widget_class->destroy = sysprof_profiler_assistant_destroy; object_class->dispose = sysprof_profiler_assistant_dispose;
/** /**
* SysprofProfilerAssistant::start-recording: * SysprofProfilerAssistant::start-recording:
@ -377,6 +380,7 @@ sysprof_profiler_assistant_class_init (SysprofProfilerAssistantClass *klass)
G_TYPE_NONE, 1, SYSPROF_TYPE_PROFILER); G_TYPE_NONE, 1, SYSPROF_TYPE_PROFILER);
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/sysprof/ui/sysprof-profiler-assistant.ui"); gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/sysprof/ui/sysprof-profiler-assistant.ui");
gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, allow_throttling); gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, allow_throttling);
gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, aid_flow_box); gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, aid_flow_box);
gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, command_line); gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, command_line);
@ -465,12 +469,12 @@ sysprof_profiler_assistant_set_executable (SysprofProfilerAssistant *self,
if (path == NULL || path[0] == 0) if (path == NULL || path[0] == 0)
{ {
gtk_entry_set_text (GTK_ENTRY (self->command_line), ""); gtk_editable_set_text (GTK_EDITABLE (self->command_line), "");
gtk_switch_set_active (self->launch_switch, FALSE); gtk_switch_set_active (self->launch_switch, FALSE);
} }
else else
{ {
gtk_entry_set_text (GTK_ENTRY (self->command_line), path); gtk_editable_set_text (GTK_EDITABLE (self->command_line), path);
gtk_switch_set_active (self->launch_switch, TRUE); gtk_switch_set_active (self->launch_switch, TRUE);
gtk_widget_grab_focus (GTK_WIDGET (self->command_line)); gtk_widget_grab_focus (GTK_WIDGET (self->command_line));
} }

View File

@ -28,7 +28,7 @@ G_BEGIN_DECLS
#define SYSPROF_TYPE_PROFILER_ASSISTANT (sysprof_profiler_assistant_get_type()) #define SYSPROF_TYPE_PROFILER_ASSISTANT (sysprof_profiler_assistant_get_type())
G_DECLARE_FINAL_TYPE (SysprofProfilerAssistant, sysprof_profiler_assistant, SYSPROF, PROFILER_ASSISTANT, GtkBin) G_DECLARE_FINAL_TYPE (SysprofProfilerAssistant, sysprof_profiler_assistant, SYSPROF, PROFILER_ASSISTANT, GtkWidget)
GtkWidget *sysprof_profiler_assistant_new (void); GtkWidget *sysprof_profiler_assistant_new (void);
void sysprof_profiler_assistant_set_executable (SysprofProfilerAssistant *self, void sysprof_profiler_assistant_set_executable (SysprofProfilerAssistant *self,

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<requires lib="gtk+" version="3.22"/>
<object class="SysprofCpuAid" id="cpu_aid"> <object class="SysprofCpuAid" id="cpu_aid">
<property name="icon-name">sysprof-cpu</property> <property name="icon-name">sysprof-cpu</property>
</object> </object>
@ -62,7 +61,7 @@
<object class="SysprofDiskstatSource"/> <object class="SysprofDiskstatSource"/>
</child> </child>
</object> </object>
<template class="SysprofProfilerAssistant" parent="GtkBin"> <template class="SysprofProfilerAssistant" parent="GtkWidget">
<child> <child>
<object class="GtkScrolledWindow"> <object class="GtkScrolledWindow">
<property name="propagate-natural-width">true</property> <property name="propagate-natural-width">true</property>