[sysprof/wip/chergert/sysprof-3] libsysprof-ui: wire up spawn args



commit fec8876c87659d2640354e6628aefd8a2cc86dee
Author: Christian Hergert <chergert redhat com>
Date:   Sat May 18 18:40:17 2019 -0700

    libsysprof-ui: wire up spawn args

 src/libsysprof-ui/sysprof-profiler-assistant.c | 31 ++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
---
diff --git a/src/libsysprof-ui/sysprof-profiler-assistant.c b/src/libsysprof-ui/sysprof-profiler-assistant.c
index 9ad1d68..6324747 100644
--- a/src/libsysprof-ui/sysprof-profiler-assistant.c
+++ b/src/libsysprof-ui/sysprof-profiler-assistant.c
@@ -41,6 +41,9 @@ struct _SysprofProfilerAssistant
   GtkListBox           *process_list_box;
   SysprofEnvironEditor *environ_editor;
   GtkFlowBox           *aid_flow_box;
+  GtkSwitch            *whole_system_switch;
+  GtkSwitch            *launch_switch;
+  GtkSwitch            *inherit_switch;
 };
 
 enum {
@@ -183,6 +186,31 @@ sysprof_profiler_assistant_record_clicked_cb (SysprofProfilerAssistant *self,
                          (GtkCallback) sysprof_profiler_assistant_foreach_cb,
                          profiler);
 
+  /* Setup whole system profiling */
+  sysprof_profiler_set_whole_system (profiler, gtk_switch_get_active (self->whole_system_switch));
+
+  if (gtk_switch_get_active (self->launch_switch))
+    {
+      g_auto(GStrv) argv = NULL;
+      g_auto(GStrv) env = NULL;
+      SysprofEnviron *environ;
+      const gchar *command;
+      gint argc;
+
+      command = gtk_entry_get_text (self->command_line);
+      g_shell_parse_argv (command, &argc, &argv, NULL);
+
+      sysprof_profiler_set_spawn (profiler, TRUE);
+      sysprof_profiler_set_spawn_argv (profiler, (const gchar * const *)argv);
+
+      environ = sysprof_environ_editor_get_environ (self->environ_editor);
+      env = sysprof_environ_get_environ (environ);
+      sysprof_profiler_set_spawn_env (profiler, (const gchar * const *)env);
+
+      sysprof_profiler_set_spawn_inherit_environ (profiler,
+                                                  gtk_switch_get_active (self->inherit_switch));
+    }
+
   g_signal_emit (self, signals [START_RECORDING], 0, profiler);
 }
 
@@ -213,6 +241,9 @@ sysprof_profiler_assistant_class_init (SysprofProfilerAssistantClass *klass)
   gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, process_list_box);
   gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, process_revealer);
   gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, record_button);
+  gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, whole_system_switch);
+  gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, launch_switch);
+  gtk_widget_class_bind_template_child (widget_class, SysprofProfilerAssistant, inherit_switch);
 
   g_type_ensure (SYSPROF_TYPE_AID_ICON);
   g_type_ensure (SYSPROF_TYPE_CPU_AID);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]