From 62fa0a364fb7eaccab9e8037e9f607f78a088dbb Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Thu, 8 Mar 2012 22:33:09 +0100 Subject: issue 187 --- src/trg-cell-renderer-speed.c | 83 +++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 47 deletions(-) (limited to 'src/trg-cell-renderer-speed.c') diff --git a/src/trg-cell-renderer-speed.c b/src/trg-cell-renderer-speed.c index b2396fb..cd2d9c7 100644 --- a/src/trg-cell-renderer-speed.c +++ b/src/trg-cell-renderer-speed.c @@ -24,12 +24,11 @@ #include "util.h" enum { - PROP_0, - PROP_SPEED_VALUE + PROP_0, PROP_SPEED_VALUE }; G_DEFINE_TYPE(TrgCellRendererSpeed, trg_cell_renderer_speed, - GTK_TYPE_CELL_RENDERER_TEXT) + GTK_TYPE_CELL_RENDERER_TEXT) #define TRG_CELL_RENDERER_SPEED_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRG_TYPE_CELL_RENDERER_SPEED, TrgCellRendererSpeedPrivate)) typedef struct _TrgCellRendererSpeedPrivate TrgCellRendererSpeedPrivate; @@ -38,13 +37,10 @@ struct _TrgCellRendererSpeedPrivate { gint64 speed_value; }; -static void -trg_cell_renderer_speed_get_property(GObject * object, - guint property_id, - GValue * value, GParamSpec * pspec) -{ +static void trg_cell_renderer_speed_get_property(GObject * object, + guint property_id, GValue * value, GParamSpec * pspec) { TrgCellRendererSpeedPrivate *priv = - TRG_CELL_RENDERER_SPEED_GET_PRIVATE(object); + TRG_CELL_RENDERER_SPEED_GET_PRIVATE(object); switch (property_id) { case PROP_SPEED_VALUE: g_value_set_int64(value, priv->speed_value); @@ -55,62 +51,55 @@ trg_cell_renderer_speed_get_property(GObject * object, } } -static void -trg_cell_renderer_speed_set_property(GObject * object, guint property_id, - const GValue * value, - GParamSpec * pspec) -{ +static void trg_cell_renderer_speed_set_property(GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec) { TrgCellRendererSpeedPrivate *priv = - TRG_CELL_RENDERER_SPEED_GET_PRIVATE(object); + TRG_CELL_RENDERER_SPEED_GET_PRIVATE(object); if (property_id == PROP_SPEED_VALUE) { - priv->speed_value = g_value_get_int64(value); - if (priv->speed_value > 0) { - char speedString[32]; - trg_strlspeed(speedString, priv->speed_value / disk_K); - g_object_set(object, "text", speedString, NULL); - } else { - g_object_set(object, "text", "", NULL); + gint64 new_value = g_value_get_int64(value); + if (new_value != priv->speed_value) { + if (new_value > 0) { + char speedString[32]; + trg_strlspeed(speedString, new_value / disk_K); + g_object_set(object, "text", speedString, NULL); + } else { + g_object_set(object, "text", "", NULL); + } + priv->speed_value = new_value; } } else { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } } -static void -trg_cell_renderer_speed_class_init(TrgCellRendererSpeedClass * klass) -{ +static void trg_cell_renderer_speed_class_init( + TrgCellRendererSpeedClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); object_class->get_property = trg_cell_renderer_speed_get_property; object_class->set_property = trg_cell_renderer_speed_set_property; - g_object_class_install_property(object_class, - PROP_SPEED_VALUE, - g_param_spec_int64("speed-value", - "Speed Value", - "Speed Value", - 0, - G_MAXINT64, - 0, - G_PARAM_READWRITE - | - G_PARAM_STATIC_NAME - | - G_PARAM_STATIC_NICK - | - G_PARAM_STATIC_BLURB)); + g_object_class_install_property( + object_class, + PROP_SPEED_VALUE, + g_param_spec_int64( + "speed-value", + "Speed Value", + "Speed Value", + 0, + G_MAXINT64, + 0, + G_PARAM_READWRITE | G_PARAM_STATIC_NAME + | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_type_class_add_private(klass, sizeof(TrgCellRendererSpeedPrivate)); } -static void trg_cell_renderer_speed_init(TrgCellRendererSpeed * self) -{ +static void trg_cell_renderer_speed_init(TrgCellRendererSpeed * self) { g_object_set(self, "xalign", 1.0f, NULL); } -GtkCellRenderer *trg_cell_renderer_speed_new(void) -{ - return - GTK_CELL_RENDERER(g_object_new - (TRG_TYPE_CELL_RENDERER_SPEED, NULL)); +GtkCellRenderer *trg_cell_renderer_speed_new(void) { + return GTK_CELL_RENDERER(g_object_new + (TRG_TYPE_CELL_RENDERER_SPEED, NULL)); } -- cgit v1.2.3