[sysprof/wip/chergert/sysprof-3] libsysprof-ui: update samples while recording



commit ec7cd0fba4a0e3d8a5bff4315ce86c02839a1092
Author: Christian Hergert <chergert redhat com>
Date:   Sun May 19 17:46:55 2019 -0700

    libsysprof-ui: update samples while recording

 src/libsysprof-ui/sysprof-recording-state-view.c   | 34 ++++++++++-----
 .../ui/sysprof-recording-state-view.ui             | 51 +++++++++++++++++-----
 2 files changed, 64 insertions(+), 21 deletions(-)
---
diff --git a/src/libsysprof-ui/sysprof-recording-state-view.c 
b/src/libsysprof-ui/sysprof-recording-state-view.c
index 21222b4..1763e72 100644
--- a/src/libsysprof-ui/sysprof-recording-state-view.c
+++ b/src/libsysprof-ui/sysprof-recording-state-view.c
@@ -25,8 +25,9 @@
 typedef struct
 {
   SysprofProfiler *profiler;
-  gulong      notify_elapsed_handler;
-  GtkLabel   *elapsed;
+  GtkLabel        *elapsed;
+  GtkLabel        *samples;
+  gulong           notify_elapsed_handler;
 } SysprofRecordingStateViewPrivate;
 
 G_DEFINE_TYPE_WITH_PRIVATE (SysprofRecordingStateView, sysprof_recording_state_view, GTK_TYPE_BIN)
@@ -47,11 +48,12 @@ sysprof_recording_state_view_new (void)
 
 static void
 sysprof_recording_state_view_notify_elapsed (SysprofRecordingStateView *self,
-                                        GParamSpec           *pspec,
-                                        SysprofProfiler           *profiler)
+                                             GParamSpec                *pspec,
+                                             SysprofProfiler           *profiler)
 {
   SysprofRecordingStateViewPrivate *priv = sysprof_recording_state_view_get_instance_private (self);
   g_autofree gchar *str = NULL;
+  SysprofCaptureWriter *writer;
   gint64 elapsed;
   guint hours;
   guint minutes;
@@ -60,6 +62,16 @@ sysprof_recording_state_view_notify_elapsed (SysprofRecordingStateView *self,
   g_assert (SYSPROF_IS_RECORDING_STATE_VIEW (self));
   g_assert (SYSPROF_IS_PROFILER (profiler));
 
+  if ((writer = sysprof_profiler_get_writer (profiler)))
+    {
+      SysprofCaptureStat st;
+      g_autofree gchar *samples = NULL;
+
+      sysprof_capture_writer_stat (writer, &st);
+      samples = g_strdup_printf ("%"G_GINT64_FORMAT, st.frame_count[SYSPROF_CAPTURE_FRAME_SAMPLE]);
+      gtk_label_set_label (priv->samples, samples);
+    }
+
   elapsed = (gint64)sysprof_profiler_get_elapsed (profiler);
 
   hours = elapsed / (60 * 60);
@@ -94,9 +106,9 @@ sysprof_recording_state_view_destroy (GtkWidget *widget)
 
 static void
 sysprof_recording_state_view_get_property (GObject    *object,
-                                      guint       prop_id,
-                                      GValue     *value,
-                                      GParamSpec *pspec)
+                                           guint       prop_id,
+                                           GValue     *value,
+                                           GParamSpec *pspec)
 {
   SysprofRecordingStateView *self = SYSPROF_RECORDING_STATE_VIEW (object);
   SysprofRecordingStateViewPrivate *priv = sysprof_recording_state_view_get_instance_private (self);
@@ -114,9 +126,9 @@ sysprof_recording_state_view_get_property (GObject    *object,
 
 static void
 sysprof_recording_state_view_set_property (GObject      *object,
-                                      guint         prop_id,
-                                      const GValue *value,
-                                      GParamSpec   *pspec)
+                                           guint         prop_id,
+                                           const GValue *value,
+                                           GParamSpec   *pspec)
 {
   SysprofRecordingStateView *self = SYSPROF_RECORDING_STATE_VIEW (object);
 
@@ -164,7 +176,7 @@ sysprof_recording_state_view_init (SysprofRecordingStateView *self)
 
 void
 sysprof_recording_state_view_set_profiler (SysprofRecordingStateView *self,
-                                      SysprofProfiler           *profiler)
+                                           SysprofProfiler           *profiler)
 {
   SysprofRecordingStateViewPrivate *priv = sysprof_recording_state_view_get_instance_private (self);
 
diff --git a/src/libsysprof-ui/ui/sysprof-recording-state-view.ui 
b/src/libsysprof-ui/ui/sysprof-recording-state-view.ui
index e9631c9..948ae34 100644
--- a/src/libsysprof-ui/ui/sysprof-recording-state-view.ui
+++ b/src/libsysprof-ui/ui/sysprof-recording-state-view.ui
@@ -44,17 +44,48 @@
           </object>
         </child>
         <child>
-          <object class="GtkButton">
-            <property name="action-name">display.stop-recording</property>
-            <property name="margin-top">24</property>
+          <object class="GtkBox">
+            <property name="orientation">horizontal</property>
+            <property name="spacing">6</property>
             <property name="visible">true</property>
-            <property name="label" translatable="yes">_Stop Recording</property>
-            <property name="halign">end</property>
-            <property name="width-request">125</property>
-            <property name="use-underline">true</property>
-            <style>
-              <class name="destructive-action"/>
-            </style>
+            <child>
+              <object class="GtkLabel">
+                <property name="label" translatable="yes">Samples</property>
+                <property name="xalign">1.0</property>
+                <property name="valign">baseline</property>
+                <property name="visible">true</property>
+                <style>
+                  <class name="dim-label"/>
+                </style>
+              </object>
+            </child>
+            <child>
+              <object class="GtkLabel" id="samples">
+                <property name="label">0</property>
+                <property name="visible">true</property>
+                <property name="hexpand">true</property>
+                <property name="valign">baseline</property>
+                <property name="xalign">0.0</property>
+                <attributes>
+                  <attribute name="font-features" value="font-feature-settings: &apos;tnum&apos;"/>
+                </attributes>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton">
+                <property name="action-name">display.stop-recording</property>
+                <property name="margin-top">24</property>
+                <property name="visible">true</property>
+                <property name="label" translatable="yes">_Stop Recording</property>
+                <property name="halign">end</property>
+                <property name="width-request">125</property>
+                <property name="valign">baseline</property>
+                <property name="use-underline">true</property>
+                <style>
+                  <class name="destructive-action"/>
+                </style>
+              </object>
+            </child>
           </object>
         </child>
       </object>


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