[gtk] fishbowl: Don't show ridiculous precision



commit e2fc00222e036c0da261c714f0703673c095901c
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu May 23 12:37:47 2019 +0000

    fishbowl: Don't show ridiculous precision
    
    Two decimals are more than enough for the frame rate.

 demos/gtk-demo/fishbowl.ui   |  2 +-
 demos/gtk-demo/gtkfishbowl.c | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
---
diff --git a/demos/gtk-demo/fishbowl.ui b/demos/gtk-demo/fishbowl.ui
index c6216666b6..34136b2946 100644
--- a/demos/gtk-demo/fishbowl.ui
+++ b/demos/gtk-demo/fishbowl.ui
@@ -31,7 +31,7 @@
         </child>
         <child type="end">
           <object class="GtkLabel">
-            <property name="label" bind-source="bowl" bind-property="framerate"/>
+            <property name="label" bind-source="bowl" bind-property="framerate-string"/>
           </object>
         </child>
         <child type="end">
diff --git a/demos/gtk-demo/gtkfishbowl.c b/demos/gtk-demo/gtkfishbowl.c
index 5cfbcf83fc..1711d91376 100644
--- a/demos/gtk-demo/gtkfishbowl.c
+++ b/demos/gtk-demo/gtkfishbowl.c
@@ -53,6 +53,7 @@ enum {
    PROP_BENCHMARK,
    PROP_COUNT,
    PROP_FRAMERATE,
+   PROP_FRAMERATE_STRING,
    PROP_UPDATE_DELAY,
    NUM_PROPERTIES
 };
@@ -290,6 +291,14 @@ gtk_fishbowl_get_property (GObject         *object,
       g_value_set_double (value, gtk_fishbowl_get_framerate (fishbowl));
       break;
 
+    case PROP_FRAMERATE_STRING:
+      {
+        char *s = g_strdup_printf ("%.2f", gtk_fishbowl_get_framerate (fishbowl));
+        g_value_set_string (value, s);
+        g_free (s);
+      }
+      break;
+
     case PROP_UPDATE_DELAY:
       g_value_set_int64 (value, gtk_fishbowl_get_update_delay (fishbowl));
       break;
@@ -343,6 +352,13 @@ gtk_fishbowl_class_init (GtkFishbowlClass *klass)
                            0,
                            G_PARAM_READABLE);
 
+  props[PROP_FRAMERATE_STRING] =
+      g_param_spec_string ("framerate-string",
+                           "Framerate as string",
+                           "Framerate as string, with 2 decimals",
+                           NULL,
+                           G_PARAM_READABLE);
+
   props[PROP_UPDATE_DELAY] =
       g_param_spec_int64 ("update-delay",
                           "Update delay",
@@ -491,7 +507,10 @@ gtk_fishbowl_do_update (GtkFishbowl *fishbowl)
 
   n_frames = end_counter - start_counter;
   priv->framerate = ((double) n_frames) * G_USEC_PER_SEC / (end_timestamp - start_timestamp);
+  priv->framerate = ((int)(priv->framerate * 100))/100.0;
+
   g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_FRAMERATE]);
+  g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_FRAMERATE_STRING]);
 
   if (!priv->benchmark)
     return;


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