manager: remove get_event* methods
Now those values are accesible from inside GcalEventWidget and GcalEditDialog using its internals copies of ECalComponent of the event they represent
This commit is contained in:
@@ -942,374 +942,6 @@ gcal_manager_set_new_range (GcalManager *manager,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
icaltimetype*
|
|
||||||
gcal_manager_get_event_start_date (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
GcalManagerUnit *unit;
|
|
||||||
ECalComponent *event;
|
|
||||||
ECalComponentDateTime dt;
|
|
||||||
icaltimetype *dtstart;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
|
|
||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
|
||||||
event = g_hash_table_lookup (unit->events, event_uid);
|
|
||||||
e_cal_component_get_dtstart (event, &dt);
|
|
||||||
dtstart = gcal_dup_icaltime (dt.value);
|
|
||||||
|
|
||||||
if (dtstart->is_date != 1)
|
|
||||||
*dtstart = icaltime_convert_to_zone (*(dt.value), priv->system_timezone);
|
|
||||||
|
|
||||||
e_cal_component_free_datetime (&dt);
|
|
||||||
return dtstart;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* gcal_manager_get_event_end_date:
|
|
||||||
* @manager: a #GcalManager object
|
|
||||||
* @source_uid: the uid of the #ESource
|
|
||||||
* @event_uid: the uid of the #ECalComponent
|
|
||||||
*
|
|
||||||
* Get the date/time end of a calendar event
|
|
||||||
*
|
|
||||||
* Returns: (transfer full) An #icaltimetype object, free with g_free().
|
|
||||||
**/
|
|
||||||
icaltimetype*
|
|
||||||
gcal_manager_get_event_end_date (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
GcalManagerUnit *unit;
|
|
||||||
ECalComponent *event;
|
|
||||||
ECalComponentDateTime dt;
|
|
||||||
icaltimetype *dtend;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
|
|
||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
|
||||||
event = g_hash_table_lookup (unit->events, event_uid);
|
|
||||||
e_cal_component_get_dtend (event, &dt);
|
|
||||||
dtend = gcal_dup_icaltime (dt.value);
|
|
||||||
|
|
||||||
if (dtend->is_date != 1)
|
|
||||||
*dtend = icaltime_convert_to_zone (*(dt.value), priv->system_timezone);
|
|
||||||
|
|
||||||
e_cal_component_free_datetime (&dt);
|
|
||||||
return dtend;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* gcal_manager_get_event_summary:
|
|
||||||
* @manager: a #GcalManager object
|
|
||||||
* @source_uid: the uid of the #ESource
|
|
||||||
* @event_uid: the uid of the #ECalComponent
|
|
||||||
*
|
|
||||||
* Returns the summary of a calendar event.
|
|
||||||
*
|
|
||||||
* Returns: (transfer full) a c-string to be freed with g_free()
|
|
||||||
**/
|
|
||||||
gchar*
|
|
||||||
gcal_manager_get_event_summary (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
GcalManagerUnit *unit;
|
|
||||||
ECalComponent *event;
|
|
||||||
ECalComponentText e_summary;
|
|
||||||
gchar *summary;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
|
|
||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
|
||||||
event = g_hash_table_lookup (unit->events, event_uid);
|
|
||||||
e_cal_component_get_summary (event, &e_summary);
|
|
||||||
summary = g_strdup (e_summary.value);
|
|
||||||
|
|
||||||
return summary;
|
|
||||||
}
|
|
||||||
|
|
||||||
gchar**
|
|
||||||
gcal_manager_get_event_organizer (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
GcalManagerUnit *unit;
|
|
||||||
ECalComponent *event;
|
|
||||||
ECalComponentOrganizer e_organizer;
|
|
||||||
gchar** values;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
|
|
||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
|
||||||
event = g_hash_table_lookup (unit->events, event_uid);
|
|
||||||
e_cal_component_get_organizer (event, &e_organizer);
|
|
||||||
|
|
||||||
if (e_organizer.cn == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
values = g_new (gchar*, 3);
|
|
||||||
values[2] = NULL;
|
|
||||||
values[0] = g_strdup (e_organizer.cn);
|
|
||||||
values[1] = g_strdup (e_organizer.value);
|
|
||||||
|
|
||||||
return values;
|
|
||||||
}
|
|
||||||
|
|
||||||
const gchar*
|
|
||||||
gcal_manager_get_event_location (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
GcalManagerUnit *unit;
|
|
||||||
ECalComponent *event;
|
|
||||||
const gchar* location;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
|
|
||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
|
||||||
event = g_hash_table_lookup (unit->events, event_uid);
|
|
||||||
e_cal_component_get_location (event, &location);
|
|
||||||
return location;
|
|
||||||
}
|
|
||||||
|
|
||||||
gchar*
|
|
||||||
gcal_manager_get_event_description (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
GcalManagerUnit *unit;
|
|
||||||
ECalComponent *event;
|
|
||||||
GSList *text_list;
|
|
||||||
GSList *l;
|
|
||||||
|
|
||||||
gchar *desc;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
desc = NULL;
|
|
||||||
|
|
||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
|
||||||
event = g_hash_table_lookup (unit->events, event_uid);
|
|
||||||
e_cal_component_get_description_list (event, &text_list);
|
|
||||||
|
|
||||||
for (l = text_list; l != NULL; l = l->next)
|
|
||||||
{
|
|
||||||
if (l->data != NULL)
|
|
||||||
{
|
|
||||||
ECalComponentText *text;
|
|
||||||
gchar *carrier;
|
|
||||||
text = l->data;
|
|
||||||
|
|
||||||
if (desc != NULL)
|
|
||||||
{
|
|
||||||
carrier = g_strconcat (desc, text->value, NULL);
|
|
||||||
g_free (desc);
|
|
||||||
desc = carrier;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
desc = g_strdup (text->value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
e_cal_component_free_text_list (text_list);
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
GdkRGBA*
|
|
||||||
gcal_manager_get_event_color (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
ESource *source;
|
|
||||||
ESourceSelectable *extension;
|
|
||||||
GdkRGBA *color;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
source = e_source_registry_ref_source (priv->source_registry,
|
|
||||||
source_uid);
|
|
||||||
color = NULL;
|
|
||||||
|
|
||||||
if (source != NULL)
|
|
||||||
{
|
|
||||||
color = g_new0 (GdkRGBA, 1);
|
|
||||||
|
|
||||||
extension =
|
|
||||||
E_SOURCE_SELECTABLE (e_source_get_extension (source,
|
|
||||||
E_SOURCE_EXTENSION_CALENDAR));
|
|
||||||
gdk_rgba_parse (color, e_source_selectable_get_color (extension));
|
|
||||||
|
|
||||||
g_object_unref (source);
|
|
||||||
}
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
GList*
|
|
||||||
gcal_manager_get_event_reminders (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
GcalManagerUnit *unit;
|
|
||||||
ECalComponent *event;
|
|
||||||
GList *reminders;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
reminders = NULL;
|
|
||||||
|
|
||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
|
||||||
event = g_hash_table_lookup (unit->events, event_uid);
|
|
||||||
|
|
||||||
if (e_cal_component_has_alarms (event))
|
|
||||||
{
|
|
||||||
GList *alarms;
|
|
||||||
GList *l;
|
|
||||||
|
|
||||||
alarms = e_cal_component_get_alarm_uids (event);
|
|
||||||
for (l = alarms; l != NULL; l = l->next)
|
|
||||||
{
|
|
||||||
gchar *type;
|
|
||||||
gint number;
|
|
||||||
gchar *time;
|
|
||||||
ECalComponentAlarm *alarm;
|
|
||||||
ECalComponentAlarmAction action;
|
|
||||||
ECalComponentAlarmTrigger trigger;
|
|
||||||
|
|
||||||
type = NULL;
|
|
||||||
time = NULL;
|
|
||||||
number = 0;
|
|
||||||
alarm = e_cal_component_get_alarm (event, l->data);
|
|
||||||
|
|
||||||
e_cal_component_alarm_get_action (alarm, &action);
|
|
||||||
/* here, this are the tricky bits.
|
|
||||||
* We assume a bunch of differents AlarmAction(s) as one:
|
|
||||||
* "Notification". In case we need to add extra-refinemen. This is the
|
|
||||||
* place to change stuff t*/
|
|
||||||
if (action == E_CAL_COMPONENT_ALARM_AUDIO
|
|
||||||
|| action == E_CAL_COMPONENT_ALARM_DISPLAY)
|
|
||||||
type = g_strdup (_("Notification"));
|
|
||||||
else if (action == E_CAL_COMPONENT_ALARM_EMAIL)
|
|
||||||
type = g_strdup (_("Email"));
|
|
||||||
|
|
||||||
e_cal_component_alarm_get_trigger (alarm, &trigger);
|
|
||||||
/* Second part of tricky bits. We will ignore triggers types other
|
|
||||||
* than E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START, and other than
|
|
||||||
* before. In case of extra tweaking (almost sure it will be needed)
|
|
||||||
* this is the place of doing it. */
|
|
||||||
if (trigger.type == E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START)
|
|
||||||
{
|
|
||||||
/* cut/pasted/tweaking chunk of code from
|
|
||||||
* evo:calendar/gui/e-alarm-list.c +435 */
|
|
||||||
if (trigger.u.rel_duration.is_neg && trigger.u.rel_duration.days >= 1)
|
|
||||||
{
|
|
||||||
number = trigger.u.rel_duration.days;
|
|
||||||
time = g_strdup (_("days"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (trigger.u.rel_duration.is_neg && trigger.u.rel_duration.weeks >= 1)
|
|
||||||
{
|
|
||||||
number = trigger.u.rel_duration.weeks;
|
|
||||||
time = g_strdup (_("weeks"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (trigger.u.rel_duration.is_neg && trigger.u.rel_duration.hours >= 1)
|
|
||||||
{
|
|
||||||
number = trigger.u.rel_duration.hours;
|
|
||||||
time = g_strdup (_("hours"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (trigger.u.rel_duration.is_neg && trigger.u.rel_duration.minutes >= 1)
|
|
||||||
{
|
|
||||||
number = trigger.u.rel_duration.minutes;
|
|
||||||
time = g_strdup (_("minutes"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type != NULL && time != NULL)
|
|
||||||
{
|
|
||||||
gchar *one_reminder;
|
|
||||||
|
|
||||||
one_reminder = g_strdup_printf ("%s %d %s %s",
|
|
||||||
type,
|
|
||||||
number,
|
|
||||||
time,
|
|
||||||
_("before"));
|
|
||||||
reminders = g_list_prepend (reminders, one_reminder);
|
|
||||||
|
|
||||||
g_free (type);
|
|
||||||
g_free (time);
|
|
||||||
}
|
|
||||||
|
|
||||||
e_cal_component_alarm_free (alarm);
|
|
||||||
}
|
|
||||||
cal_obj_uid_list_free (alarms);
|
|
||||||
}
|
|
||||||
|
|
||||||
reminders = g_list_reverse (reminders);
|
|
||||||
return reminders;
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gcal_manager_has_event_reminders (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
GcalManagerUnit *unit;
|
|
||||||
ECalComponent *event;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
|
|
||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
|
||||||
event = g_hash_table_lookup (unit->events, event_uid);
|
|
||||||
return e_cal_component_has_alarms (event);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gcal_manager_get_event_all_day (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid)
|
|
||||||
{
|
|
||||||
GcalManagerPrivate *priv;
|
|
||||||
GcalManagerUnit *unit;
|
|
||||||
ECalComponent *event;
|
|
||||||
|
|
||||||
ECalComponentDateTime dt;
|
|
||||||
icaltimetype *dtstart;
|
|
||||||
icaltimetype *dtend;
|
|
||||||
|
|
||||||
gboolean all_day;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (manager);
|
|
||||||
|
|
||||||
unit = g_hash_table_lookup (priv->clients, source_uid);
|
|
||||||
event = g_hash_table_lookup (unit->events, event_uid);
|
|
||||||
|
|
||||||
e_cal_component_get_dtstart (event, &dt);
|
|
||||||
dtstart = gcal_dup_icaltime (dt.value);
|
|
||||||
e_cal_component_free_datetime (&dt);
|
|
||||||
|
|
||||||
e_cal_component_get_dtend (event, &dt);
|
|
||||||
dtend = gcal_dup_icaltime (dt.value);
|
|
||||||
e_cal_component_free_datetime (&dt);
|
|
||||||
|
|
||||||
all_day = (dtstart->is_date == 1) && (dtend->is_date == 1);
|
|
||||||
|
|
||||||
g_free (dtstart);
|
|
||||||
g_free (dtend);
|
|
||||||
return all_day;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
gcal_manager_remove_event (GcalManager *manager,
|
gcal_manager_remove_event (GcalManager *manager,
|
||||||
const gchar *source_uid,
|
const gchar *source_uid,
|
||||||
|
|||||||
@@ -85,47 +85,6 @@ void gcal_manager_set_new_range (GcalManager *manager
|
|||||||
const icaltimetype *initial_date,
|
const icaltimetype *initial_date,
|
||||||
const icaltimetype *final_date);
|
const icaltimetype *final_date);
|
||||||
|
|
||||||
/* Get methods */
|
|
||||||
icaltimetype* gcal_manager_get_event_start_date (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
icaltimetype* gcal_manager_get_event_end_date (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
gchar* gcal_manager_get_event_summary (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
gchar** gcal_manager_get_event_organizer (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
const gchar* gcal_manager_get_event_location (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
gchar* gcal_manager_get_event_description (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
GdkRGBA* gcal_manager_get_event_color (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
GList* gcal_manager_get_event_reminders (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
gboolean gcal_manager_has_event_reminders (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
gboolean gcal_manager_get_event_all_day (GcalManager *manager,
|
|
||||||
const gchar *source_uid,
|
|
||||||
const gchar *event_uid);
|
|
||||||
|
|
||||||
void gcal_manager_remove_event (GcalManager *manager,
|
void gcal_manager_remove_event (GcalManager *manager,
|
||||||
const gchar *source_uid,
|
const gchar *source_uid,
|
||||||
const gchar *event_uid);
|
const gchar *event_uid);
|
||||||
|
|||||||
Reference in New Issue
Block a user