File eds-comp-percent.diff of Package evolution-data-server

diff --git a/calendar/libecal/e-cal-component.c b/calendar/libecal/e-cal-component.c
index d62760b..7d00adf 100644
--- a/calendar/libecal/e-cal-component.c
+++ b/calendar/libecal/e-cal-component.c
@@ -3485,6 +3485,56 @@ e_cal_component_get_percent (ECalComponent *comp, int **percent)
 		*percent = NULL;
 }
 
+void
+e_cal_component_set_percent_as_int (ECalComponent *comp, int percent)
+{
+	ECalComponentPrivate *priv;
+
+	g_return_if_fail (comp != NULL);
+	g_return_if_fail (E_IS_CAL_COMPONENT (comp));
+
+	priv = comp->priv;
+	g_return_if_fail (priv->icalcomp != NULL);
+
+	if (percent == -1) {
+		if (priv->percent) {
+			icalcomponent_remove_property (priv->icalcomp, priv->percent);
+			icalproperty_free (priv->percent);
+			priv->percent = NULL;
+		}
+
+		return;
+	}
+
+	g_return_if_fail (percent >= 0 && percent <= 100);
+
+	if (priv->percent)
+		icalproperty_set_percentcomplete (priv->percent, percent);
+	else {
+		priv->percent = icalproperty_new_percentcomplete (percent);
+		icalcomponent_add_property (priv->icalcomp, priv->percent);
+	}
+
+	
+}
+
+int
+e_cal_component_get_percent_as_int (ECalComponent *comp)
+{
+	ECalComponentPrivate *priv;
+	int percent;
+
+	priv = comp->priv;
+	g_return_val_if_fail (priv->icalcomp != NULL, -1);
+
+	if (priv->percent) {
+		percent = icalproperty_get_percentcomplete (priv->percent);
+	} else
+		percent = -1;
+
+	return percent;
+}
+
 /**
  * e_cal_component_set_percent:
  * @comp: A calendar component object.
diff --git a/calendar/libecal/e-cal-component.h b/calendar/libecal/e-cal-component.h
index b8dc492..94c6f3a 100644
--- a/calendar/libecal/e-cal-component.h
+++ b/calendar/libecal/e-cal-component.h
@@ -285,6 +285,9 @@ void e_cal_component_get_organizer (ECalComponent *comp, ECalComponentOrganizer
 void e_cal_component_set_organizer (ECalComponent *comp, ECalComponentOrganizer *organizer);
 gboolean e_cal_component_has_organizer (ECalComponent *comp);
 
+int  e_cal_component_get_percent_as_int (ECalComponent *comp);
+void e_cal_component_set_percent_as_int (ECalComponent *comp, int percent);
+
 void e_cal_component_get_percent (ECalComponent *comp, int **percent);
 void e_cal_component_set_percent (ECalComponent *comp, int *percent);
 
openSUSE Build Service is sponsored by