Merge branch 'varunrmallya/issue136' into 'master'

Adds persistence to environment variables

See merge request GNOME/sysprof!125
This commit is contained in:
Christian Hergert
2025-03-09 17:28:08 +00:00
2 changed files with 32 additions and 0 deletions

View File

@ -208,6 +208,24 @@ sysprof_greeter_create_profiler (SysprofGreeter *self,
g_assert (SYSPROF_IS_GREETER (self));
if (g_list_model_get_n_items (G_LIST_MODEL (self->envvars)))
{
g_autoptr(GStrvBuilder) envvars_builder = NULL;
g_auto(GStrv) envvars_list = NULL;
envvars_builder = g_strv_builder_new ();
for (guint i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (self->envvars)); i++)
{
g_autoptr(GtkStringObject) env_strobj = g_list_model_get_item (G_LIST_MODEL (self->envvars), i);
g_strv_builder_add (envvars_builder, gtk_string_object_get_string (env_strobj));
}
envvars_list = g_strv_builder_end (envvars_builder);
g_object_set (self->recording_template,
"environ", envvars_list,
NULL);
}
if ((strobj = adw_combo_row_get_selected_item (self->power_combo)) &&
(str = gtk_string_object_get_string (strobj)))
g_object_set (self->recording_template,
@ -606,6 +624,19 @@ sysprof_greeter_init (SysprofGreeter *self)
create_envvar_row_cb,
self, NULL);
if (self->recording_template)
{
g_auto(GStrv) environ = NULL;
g_object_get (self->recording_template,
"environ", &environ,
NULL);
if (environ)
{
for (guint i = 0; environ[i]; i++)
gtk_string_list_append (self->envvars, environ[i]);
}
}
row = gtk_list_box_get_row_at_index (self->sidebar_list_box, 0);
gtk_list_box_select_row (self->sidebar_list_box, row);
sidebar_row_activated_cb (self, row, self->sidebar_list_box);

View File

@ -491,6 +491,7 @@ sysprof_recording_template_init (SysprofRecordingTemplate *self)
self->system_log = TRUE;
self->command_line = g_strdup ("");
self->cwd = g_strdup("");
self->environ = g_strdupv((char * []) { NULL });
self->stack_size = DEFAULT_STACK_SIZE;
}