utils: move utility method to get alarm's minutes
This commit is contained in:
+2
-32
@@ -190,36 +190,6 @@ gcal_event_update_uid_internal (GcalEvent *self)
|
|||||||
g_object_notify (G_OBJECT (self), "uid");
|
g_object_notify (G_OBJECT (self), "uid");
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
|
||||||
get_trigger_minutes (GcalEvent *self,
|
|
||||||
ECalComponentAlarm *alarm)
|
|
||||||
{
|
|
||||||
ECalComponentAlarmTrigger trigger;
|
|
||||||
GDateTime *alarm_dt;
|
|
||||||
gint diff;
|
|
||||||
|
|
||||||
e_cal_component_alarm_get_trigger (alarm, &trigger);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We only support alarms relative to the start date, and solely
|
|
||||||
* ignore whetever different it may be.
|
|
||||||
*/
|
|
||||||
if (trigger.type != E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
alarm_dt = g_date_time_add_full (self->dt_start,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
- (trigger.u.rel_duration.days + trigger.u.rel_duration.weeks * 7),
|
|
||||||
- trigger.u.rel_duration.hours,
|
|
||||||
- trigger.u.rel_duration.minutes,
|
|
||||||
- trigger.u.rel_duration.seconds);
|
|
||||||
|
|
||||||
diff = g_date_time_difference (self->dt_start, alarm_dt) / G_TIME_SPAN_MINUTE;
|
|
||||||
|
|
||||||
return diff;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
load_alarms (GcalEvent *self)
|
load_alarms (GcalEvent *self)
|
||||||
{
|
{
|
||||||
@@ -233,7 +203,7 @@ load_alarms (GcalEvent *self)
|
|||||||
gint trigger_minutes;
|
gint trigger_minutes;
|
||||||
|
|
||||||
alarm = e_cal_component_get_alarm (self->component, l->data);
|
alarm = e_cal_component_get_alarm (self->component, l->data);
|
||||||
trigger_minutes = get_trigger_minutes (self, alarm);
|
trigger_minutes = get_alarm_trigger_minutes (self, alarm);
|
||||||
|
|
||||||
/* We only support a single alarm for a given time */
|
/* We only support a single alarm for a given time */
|
||||||
if (!g_hash_table_contains (self->alarms, GINT_TO_POINTER (trigger_minutes)))
|
if (!g_hash_table_contains (self->alarms, GINT_TO_POINTER (trigger_minutes)))
|
||||||
@@ -940,7 +910,7 @@ gcal_event_get_alarms (GcalEvent *self)
|
|||||||
gint trigger_minutes;
|
gint trigger_minutes;
|
||||||
|
|
||||||
alarm = e_cal_component_get_alarm (self->component, l->data);
|
alarm = e_cal_component_get_alarm (self->component, l->data);
|
||||||
trigger_minutes = get_trigger_minutes (self, alarm);
|
trigger_minutes = get_alarm_trigger_minutes (self, alarm);
|
||||||
|
|
||||||
/* We only support a single alarm for a given time */
|
/* We only support a single alarm for a given time */
|
||||||
if (!g_hash_table_contains (tmp, GINT_TO_POINTER (trigger_minutes)))
|
if (!g_hash_table_contains (tmp, GINT_TO_POINTER (trigger_minutes)))
|
||||||
|
|||||||
@@ -809,3 +809,35 @@ format_utc_offset (gint64 offset)
|
|||||||
else
|
else
|
||||||
return g_strdup_printf ("%s%02i%02i", sign, hours, minutes);
|
return g_strdup_printf ("%s%02i%02i", sign, hours, minutes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
get_alarm_trigger_minutes (GcalEvent *event,
|
||||||
|
ECalComponentAlarm *alarm)
|
||||||
|
{
|
||||||
|
ECalComponentAlarmTrigger trigger;
|
||||||
|
GDateTime *alarm_dt;
|
||||||
|
gint diff;
|
||||||
|
|
||||||
|
e_cal_component_alarm_get_trigger (alarm, &trigger);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We only support alarms relative to the start date, and solely
|
||||||
|
* ignore whetever different it may be.
|
||||||
|
*/
|
||||||
|
if (trigger.type != E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
alarm_dt = g_date_time_add_full (gcal_event_get_date_start (event),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
- (trigger.u.rel_duration.days + trigger.u.rel_duration.weeks * 7),
|
||||||
|
- trigger.u.rel_duration.hours,
|
||||||
|
- trigger.u.rel_duration.minutes,
|
||||||
|
- trigger.u.rel_duration.seconds);
|
||||||
|
|
||||||
|
diff = g_date_time_difference (gcal_event_get_date_start (event), alarm_dt) / G_TIME_SPAN_MINUTE;
|
||||||
|
|
||||||
|
g_clear_pointer (&alarm_dt, g_date_time_unref);
|
||||||
|
|
||||||
|
return diff;
|
||||||
|
}
|
||||||
|
|||||||
@@ -120,4 +120,7 @@ void get_source_parent_name_color (GcalManager
|
|||||||
|
|
||||||
gchar* format_utc_offset (gint64 offset);
|
gchar* format_utc_offset (gint64 offset);
|
||||||
|
|
||||||
|
gint get_alarm_trigger_minutes (GcalEvent *event,
|
||||||
|
ECalComponentAlarm *alarm);
|
||||||
|
|
||||||
#endif // __GCAL_UTILS_H__
|
#endif // __GCAL_UTILS_H__
|
||||||
|
|||||||
Reference in New Issue
Block a user