void e_sendoptions_utils_set_default_data (ESendOptionsDialog *sod, ESource *source, char * type) { ESendOptionsGeneral *gopts = NULL; ESendOptionsStatusTracking *sopts; GConfClient *gconf = gconf_client_get_default (); ESourceList *source_list; const char *uid; const char *value; gopts = sod->data->gopts; sopts = sod->data->sopts; if (!strcmp (type, "calendar")) source_list = e_source_list_new_for_gconf (gconf, "/apps/evolution/calendar/sources"); else source_list = e_source_list_new_for_gconf (gconf, "/apps/evolution/tasks/sources"); uid = e_source_peek_uid (source); source = e_source_list_peek_source_by_uid (source_list, uid); /* priority */ value = e_source_get_property (source, "priority"); if (value) { if (!strcmp (value, "high")) gopts->priority = E_PRIORITY_HIGH; else if (!strcmp (value, "standard")) gopts->priority = E_PRIORITY_STANDARD; else if (!strcmp (value, "low")) gopts->priority = E_PRIORITY_LOW; else gopts->priority = E_PRIORITY_UNDEFINED; } /* Reply requested */ value = e_source_get_property (source, "reply-requested"); if (value) { if (!strcmp (value, "none")) gopts->reply_enabled = FALSE; else if (!strcmp (value, "convinient")) { gopts->reply_enabled = TRUE; gopts->reply_convenient = TRUE; } else { gint i = atoi (value); gopts->reply_within = i; } } /* Delay delivery */ value = e_source_get_property (source, "delay-delivery"); if (value) { if (!strcmp (value, "none")) gopts->delay_enabled = FALSE; else { gopts->delay_enabled = TRUE; gopts->delay_until = icaltime_as_timet (icaltime_from_string (value)); } } /* Expiration Date */ value = e_source_get_property (source, "expiration"); if (value) { if (!strcmp (value, "none")) gopts->expiration_enabled = FALSE; else { gint i = atoi (value); if (i == 0) gopts->expiration_enabled = FALSE; else gopts->expiration_enabled = TRUE; gopts->expire_after = i; } } /* status tracking */ value = e_source_get_property (source, "status-tracking"); if (value) { if (!strcmp (value, "none")) sopts->tracking_enabled = FALSE; else { sopts->tracking_enabled = TRUE; if (!strcmp (value, "delivered")) sopts->track_when = E_DELIVERED; else if (!strcmp (value, "delivered-opened")) sopts->track_when = E_DELIVERED_OPENED; else sopts->track_when = E_ALL; } } /* Return Notifications */ value = e_source_get_property (source, "return-open"); if (value) { if (!strcmp (value, "none")) sopts->opened = E_RETURN_NOTIFY_NONE; else sopts->opened = E_RETURN_NOTIFY_MAIL; } value = e_source_get_property (source, "return-accept"); if (value) { if (!strcmp (value, "none")) sopts->accepted = E_RETURN_NOTIFY_NONE; else sopts->accepted = E_RETURN_NOTIFY_MAIL; } value = e_source_get_property (source, "return-decline"); if (value) { if (!strcmp (value, "none")) sopts->declined = E_RETURN_NOTIFY_NONE; else sopts->declined = E_RETURN_NOTIFY_MAIL; } value = e_source_get_property (source, "return-complete"); if (value) { if (!strcmp (value, "none")) sopts->completed = E_RETURN_NOTIFY_NONE; else sopts->completed = E_RETURN_NOTIFY_MAIL; } g_object_unref (gconf); }
static gboolean write_calendar (gchar *uid, ESourceList *source_list, GOutputStream *stream) { ESource *source; ECal *client = NULL; GError *error = NULL; GList *objects; icaltimezone *utc; time_t start = time(NULL), end; icalcomponent *top_level; char *email = NULL; GList *users = NULL; gboolean res = FALSE; utc = icaltimezone_get_utc_timezone (); start = time_day_begin_with_zone (start, utc); end = time_add_week_with_zone (start, 6, utc); source = e_source_list_peek_source_by_uid (source_list, uid); if (source) client = auth_new_cal_from_source (source, E_CAL_SOURCE_TYPE_EVENT); if (!client) { g_warning (G_STRLOC ": Could not publish calendar: Calendar backend no longer exists"); return FALSE; } if (!e_cal_open (client, TRUE, &error)) { if (error) { g_warning ("%s", error->message); g_error_free (error); } g_object_unref (client); return FALSE; } if (e_cal_get_cal_address (client, &email, &error)) { if (email && *email) users = g_list_append (users, email); } top_level = e_cal_util_new_top_level (); error = NULL; if (e_cal_get_free_busy (client, users, start, end, &objects, &error)) { char *ical_string; while (objects) { ECalComponent *comp = objects->data; icalcomponent *icalcomp = e_cal_component_get_icalcomponent (comp); icalcomponent_add_component (top_level, icalcomp); objects = g_list_remove (objects, comp); } ical_string = icalcomponent_as_ical_string (top_level); res = g_output_stream_write_all (stream, ical_string, strlen (ical_string), NULL, NULL, &error); g_free (ical_string); } if (users) g_list_free (users); g_free (email); g_object_unref (client); if (error) { g_warning ("%s", error->message); g_error_free (error); } return res; }
static gint on_idle_do_stuff (gpointer unused_data) { GConfClient *client = gconf_client_get_default (); ESourceGroup *new_group = NULL; ESource *new_source = NULL; list = e_source_list_new_for_gconf (client, key_arg); g_object_unref (client); if (add_group_arg != NULL) { if (group_arg != NULL) { fprintf (stderr, "--add-group and --group cannot be used at the same time.\n"); exit (1); } if (set_base_uri_arg == NULL) { fprintf (stderr, "When using --add-group, you need to specify a base URI using --set-base-uri.\n"); exit (1); } new_group = e_source_group_new (add_group_arg, set_base_uri_arg); e_source_list_add_group (list, new_group, -1); g_object_unref (new_group); e_source_list_sync (list, NULL); } if (remove_group_arg != NULL) { ESourceGroup *group; group = e_source_list_peek_group_by_uid (list, remove_group_arg); if (group == NULL) { fprintf (stderr, "No such group \"%s\".\n", remove_group_arg); exit (1); } e_source_list_remove_group (list, group); e_source_list_sync (list, NULL); } if (add_source_arg != NULL) { ESourceGroup *group; if (group_arg == NULL && new_group == NULL) { fprintf (stderr, "When using --add-source, you need to specify a group using either --group\n" "or --add-group.\n"); exit (1); } if (set_relative_uri_arg == NULL) { fprintf (stderr, "When using --add-source, you need to specify a relative URI using\n" "--set-relative-uri.\n"); exit (1); } if (group_arg == NULL) { group = new_group; } else { group = e_source_list_peek_group_by_uid (list, group_arg); if (group == NULL) { fprintf (stderr, "No such group \"%s\".\n", group_arg == NULL ? add_group_arg : group_arg); exit (1); } } new_source = e_source_new (add_source_arg, set_relative_uri_arg); e_source_group_add_source (group, new_source, -1); e_source_list_sync (list, NULL); } if (remove_source_arg != NULL) { ESource *source; source = e_source_list_peek_source_by_uid (list, remove_source_arg); if (source == NULL) { fprintf (stderr, "No such source \"%s\".\n", remove_source_arg); exit (1); } e_source_list_remove_source_by_uid (list, remove_source_arg); e_source_list_sync (list, NULL); } if (set_name_arg != NULL) { if (group_arg == NULL && source_arg == NULL) { fprintf (stderr, "When using --set-name, you need to specify a source (using --source" "alone) or a group (using --group alone).\n"); exit (1); } if (source_arg != NULL) { ESource *source = e_source_list_peek_source_by_uid (list, source_arg); if (source != NULL) { e_source_set_name (source, set_name_arg); } else { fprintf (stderr, "No such source \"%s\".\n", source_arg); exit (1); } } else { ESourceGroup *group = e_source_list_peek_group_by_uid (list, group_arg); if (group != NULL) { e_source_group_set_name (group, set_name_arg); } else { fprintf (stderr, "No such group \"%s\".\n", group_arg); exit (1); } } e_source_list_sync (list, NULL); } if (set_relative_uri_arg != NULL && add_source_arg == NULL) { ESource *source; if (source_arg == NULL) { fprintf (stderr, "When using --set-relative-uri, you need to specify a source using " "--source.\n"); exit (1); } source = e_source_list_peek_source_by_uid (list, source_arg); e_source_set_relative_uri (source, set_relative_uri_arg); e_source_list_sync (list, NULL); } if (set_color_arg != NULL) { ESource *source; if (add_source_arg == NULL && source_arg == NULL) { fprintf (stderr, "When using --set-color, you need to specify a source using --source\n"); exit (1); } if (add_source_arg != NULL) source = new_source; else source = e_source_list_peek_source_by_uid (list, source_arg); e_source_set_color_spec (source, set_color_arg); e_source_list_sync (list, NULL); } if (unset_color) { ESource *source; if (add_source_arg == NULL && source_arg == NULL) { fprintf (stderr, "When using --unset-color, you need to specify a source using --source\n"); exit (1); } if (add_source_arg != NULL) source = new_source; else source = e_source_list_peek_source_by_uid (list, source_arg); e_source_set_color_spec (source, NULL); e_source_list_sync (list, NULL); } if (set_base_uri_arg != NULL && add_group_arg == NULL) { ESourceGroup *group; if (group_arg == NULL) { fprintf (stderr, "When using --set-base-uri, you need to specify a group using --group.\n"); exit (1); } group = e_source_list_peek_group_by_uid (list, group_arg); e_source_group_set_base_uri (group, set_base_uri_arg); e_source_list_sync (list, NULL); } if (set_value_arg != NULL) { ESource *source; if (add_source_arg == NULL && source_arg == NULL) { fprintf (stderr, "When using --set-value, you need to specify a source using --source\n"); exit (1); } if (property_arg == NULL) { fprintf (stderr, "When using --set-value, you need to specify a property using --property\n"); exit (1); } if (add_source_arg != NULL) source = new_source; else source = e_source_list_peek_source_by_uid (list, source_arg); e_source_set_property (source, property_arg, set_value_arg); e_source_list_sync (list, NULL); } if (unset_value) { ESource *source; if (add_source_arg == NULL && source_arg == NULL) { fprintf (stderr, "When using --unset-value, you need to specify a source using --source\n"); exit (1); } if (property_arg == NULL) { fprintf (stderr, "When using --unset-value, you need to specify a property using --property\n"); exit (1); } if (add_source_arg != NULL) source = new_source; else source = e_source_list_peek_source_by_uid (list, source_arg); e_source_set_property (source, property_arg, NULL); e_source_list_sync (list, NULL); } connect_list (); if (dump) dump_list (); if (!listen) g_main_loop_quit (main_loop); return FALSE; }