/** * as_review_equal: * @review1: a #AsReview instance. * @review2: a #AsReview instance. * * Checks if two reviews are the same. * * Returns: %TRUE for success * * Since: 0.6.1 **/ gboolean as_review_equal (AsReview *review1, AsReview *review2) { AsReviewPrivate *priv1 = GET_PRIVATE (review1); AsReviewPrivate *priv2 = GET_PRIVATE (review2); /* trivial */ if (review1 == review2) return TRUE; /* check for equality */ if (!g_date_time_equal (priv1->date, priv2->date)) return FALSE; if (priv1->priority != priv2->priority) return FALSE; if (priv1->rating != priv2->rating) return FALSE; if (g_strcmp0 (priv1->id, priv2->id) != 0) return FALSE; if (g_strcmp0 (priv1->summary, priv2->summary) != 0) return FALSE; if (g_strcmp0 (priv1->description, priv2->description) != 0) return FALSE; if (g_strcmp0 (priv1->locale, priv2->locale) != 0) return FALSE; if (g_strcmp0 (priv1->version, priv2->version) != 0) return FALSE; /* success */ return TRUE; }
static gboolean _datetimes_equal(GDateTime *dt1, GDateTime *dt2) { if ((dt1 == NULL) && (dt2 == NULL)) { return TRUE; } else if ((dt1 == NULL) && (dt2 != NULL)) { return FALSE; } else if ((dt1 != NULL) && (dt2 == NULL)) { return FALSE; } else { return g_date_time_equal(dt1, dt2); } }
/** * gcal_event_widget_set_date_start: * @self: a #GcalEventWidget * @date_end: the start date of this widget * * Sets the visible start date of this widget. This * may differ from the event's start date, but cannot * be before it. */ void gcal_event_widget_set_date_start (GcalEventWidget *self, GDateTime *date_start) { g_return_if_fail (GCAL_IS_EVENT_WIDGET (self)); if (self->dt_start != date_start && (!self->dt_start || !date_start || (self->dt_start && date_start && !g_date_time_equal (self->dt_start, date_start)))) { /* The start date should never be before the event's start date */ if (date_start && g_date_time_compare (date_start, gcal_event_get_date_start (self->event)) < 0) return; g_clear_pointer (&self->dt_start, g_date_time_unref); self->dt_start = g_date_time_ref (date_start); gcal_event_widget_update_style (self); g_object_notify (G_OBJECT (self), "date-start"); } }
/** * gcal_event_widget_set_date_end: * @self: a #GcalEventWidget * @date_end: the end date of this widget * * Sets the visible end date of this widget. This * may differ from the event's end date, but cannot * be after it. */ void gcal_event_widget_set_date_end (GcalEventWidget *self, GDateTime *date_end) { g_return_if_fail (GCAL_IS_EVENT_WIDGET (self)); if (self->dt_end != date_end && (!self->dt_end || !date_end || (self->dt_end && date_end && !g_date_time_equal (self->dt_end, date_end)))) { /* The end date should never be after the event's end date */ if (date_end && g_date_time_compare (date_end, gcal_event_get_date_end (self->event)) > 0) return; g_clear_pointer (&self->dt_end, g_date_time_unref); self->dt_end = g_date_time_ref (date_end); gcal_event_widget_update_style (self); g_object_notify (G_OBJECT (self), "date-end"); } }