From 34ded1881fbfd9fb6ddcf82e841fa30fd354f224 Mon Sep 17 00:00:00 2001 From: Gergely Polonkai Date: Fri, 14 Nov 2014 16:31:40 +0000 Subject: [PATCH 1/3] Fix instant-recalc property change handling Despite the actual value, only the gswe_timestamp_calculate_all() was called. --- src/gswe-timestamp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gswe-timestamp.c b/src/gswe-timestamp.c index 76e6817..ccede55 100644 --- a/src/gswe-timestamp.c +++ b/src/gswe-timestamp.c @@ -385,7 +385,11 @@ gswe_timestamp_set_property(GObject *object, switch (prop_id) { case PROP_INSTANT_RECALC: - gswe_timestamp_calculate_all(timestamp, NULL); + timestamp->priv->instant_recalc = g_value_get_boolean(value); + + if (timestamp->priv->instant_recalc) { + gswe_timestamp_calculate_all(timestamp, NULL); + } break; From e850018d62d483a215cd562f23f4df1ffd3d57dc Mon Sep 17 00:00:00 2001 From: Gergely Polonkai Date: Mon, 17 Nov 2014 11:27:26 +0100 Subject: [PATCH 2/3] Add GsweTimestamp::julian-day property It was somehow missing from the property list --- src/gswe-timestamp.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/gswe-timestamp.c b/src/gswe-timestamp.c index ccede55..c8d0a18 100644 --- a/src/gswe-timestamp.c +++ b/src/gswe-timestamp.c @@ -79,6 +79,7 @@ enum { PROP_GREGORIAN_SECOND, PROP_GREGORIAN_MICROSECOND, PROP_GREGORIAN_TIMEZONE_OFFSET, + PROP_JULIAN_DAY, PROP_JULIAN_DAY_VALID, PROP_COUNT }; @@ -329,6 +330,24 @@ gswe_timestamp_class_init(GsweTimestampClass *klass) gswe_timestamp_props[PROP_GREGORIAN_TIMEZONE_OFFSET] ); + /** + * GsweTimestamp:julian-day: + * + * The Julian Day represented by #GsweTimestamp + */ + gswe_timestamp_props[PROP_JULIAN_DAY] = g_param_spec_double( + "julian-day", + "Julian Day", + "The Julian Day represented by this object", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE + ); + g_object_class_install_property( + gobject_class, + PROP_JULIAN_DAY, + gswe_timestamp_props[PROP_JULIAN_DAY] + ); + /** * GsweTimestamp:julian-day-valid: * @@ -465,6 +484,15 @@ gswe_timestamp_set_property(GObject *object, break; + case PROP_JULIAN_DAY: + gswe_timestamp_set_julian_day_et( + timestamp, + g_value_get_double(value), + NULL + ); + + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); @@ -545,6 +573,14 @@ gswe_timestamp_get_property( break; + case PROP_JULIAN_DAY: + g_value_set_double( + value, + timestamp->priv->julian_day + ); + + break; + case PROP_JULIAN_DAY_VALID: g_value_set_boolean( value, From 2a615e44c84fe9bc1f2168be8d796cd82cda6036 Mon Sep 17 00:00:00 2001 From: Gergely Polonkai Date: Fri, 14 Nov 2014 18:07:24 +0100 Subject: [PATCH 3/3] Remove unnecessary notifications upon GsweTimestamp creation --- src/gswe-timestamp.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/gswe-timestamp.c b/src/gswe-timestamp.c index c8d0a18..a98d3bb 100644 --- a/src/gswe-timestamp.c +++ b/src/gswe-timestamp.c @@ -1687,14 +1687,6 @@ gswe_timestamp_new_from_gregorian_full( NULL)); timestamp->priv->valid_dates = VALID_GREGORIAN; - g_object_notify_by_pspec( - G_OBJECT(timestamp), - gswe_timestamp_props[PROP_GREGORIAN_VALID] - ); - g_object_notify_by_pspec( - G_OBJECT(timestamp), - gswe_timestamp_props[PROP_JULIAN_DAY_VALID] - ); return timestamp; }