static void report_error_to_ui (CamelService *service, const gchar *folder_name, const GError *error) { gchar *tmp = NULL; const gchar *display_name, *ident; struct ReportErrorToUIData *data; g_return_if_fail (CAMEL_IS_SERVICE (service)); g_return_if_fail (error != NULL); if (folder_name) { tmp = g_strdup_printf ("%s: %s", camel_service_get_display_name (service), folder_name); display_name = tmp; ident = "mail:no-refresh-folder"; } else { display_name = camel_service_get_display_name (service); ident = "mail:failed-connect"; } data = g_new0 (struct ReportErrorToUIData, 1); data->display_name = g_strdup (display_name); data->error_ident = g_strdup (ident); data->error = g_error_copy (error); g_idle_add_full (G_PRIORITY_DEFAULT, report_error_to_ui_cb, data, NULL); g_free (tmp); }
/* Helper for e_mail_store_prepare_for_offline() */ static void mail_store_prepare_for_offline_thread (GSimpleAsyncResult *simple, GObject *source_object, GCancellable *cancellable) { CamelService *service; const gchar *display_name; GError *local_error = NULL; service = CAMEL_SERVICE (source_object); display_name = camel_service_get_display_name (service); if (display_name == NULL || *display_name == '\0') display_name = G_OBJECT_TYPE_NAME (service); camel_operation_push_message ( cancellable, _("Preparing account “%s” for offline"), display_name); if (CAMEL_IS_OFFLINE_STORE (service)) camel_offline_store_prepare_for_offline_sync ( CAMEL_OFFLINE_STORE (service), cancellable, &local_error); if (local_error != NULL) g_simple_async_result_take_error (simple, local_error); camel_operation_pop_message (cancellable); }
gboolean e_mail_store_go_online_sync (CamelStore *store, GCancellable *cancellable, GError **error) { CamelService *service; const gchar *display_name; gboolean success = TRUE; g_return_val_if_fail (CAMEL_IS_STORE (store), FALSE); service = CAMEL_SERVICE (store); display_name = camel_service_get_display_name (service); if (display_name == NULL || *display_name == '\0') display_name = G_OBJECT_TYPE_NAME (service); camel_operation_push_message ( cancellable, _("Reconnecting to “%s”"), display_name); if (CAMEL_IS_OFFLINE_STORE (store)) success = camel_offline_store_set_online_sync ( CAMEL_OFFLINE_STORE (store), TRUE, cancellable, error); camel_operation_pop_message (cancellable); return success; }
static gchar * vfolder_adduri_desc (struct _adduri_msg *m) { CamelStore *store; CamelService *service; EMailSession *session; const gchar *display_name; gchar *folder_name; gchar *description; gboolean success; session = e_mail_backend_get_session (m->backend); success = e_mail_folder_uri_parse ( CAMEL_SESSION (session), m->uri, &store, &folder_name, NULL); if (!success) return NULL; service = CAMEL_SERVICE (store); display_name = camel_service_get_display_name (service); description = g_strdup_printf ( _("Updating Search Folders for '%s' : %s"), display_name, folder_name); g_object_unref (store); g_free (folder_name); return description; }
static gchar * format_service_name (CamelService *service) { CamelProvider *provider; CamelSettings *settings; gchar *service_name = NULL; const gchar *display_name; gchar *pretty_url = NULL; gchar *host = NULL; gchar *path = NULL; gchar *user = NULL; gchar *cp; gboolean have_host = FALSE; gboolean have_path = FALSE; gboolean have_user = FALSE; provider = camel_service_get_provider (service); display_name = camel_service_get_display_name (service); settings = camel_service_ref_settings (service); if (CAMEL_IS_NETWORK_SETTINGS (settings)) { host = camel_network_settings_dup_host ( CAMEL_NETWORK_SETTINGS (settings)); have_host = (host != NULL) && (*host != '\0'); user = camel_network_settings_dup_user ( CAMEL_NETWORK_SETTINGS (settings)); have_user = (user != NULL) && (*user != '\0'); } if (CAMEL_IS_LOCAL_SETTINGS (settings)) { path = camel_local_settings_dup_path ( CAMEL_LOCAL_SETTINGS (settings)); have_path = (path != NULL) && (*path != '\0'); } g_object_unref (settings); /* Shorten user names with '@', since multiple '@' in a * 'user@host' label look weird. This is just supposed * to be a hint anyway so it doesn't matter if it's not * strictly correct. */ if (have_user && (cp = strchr (user, '@')) != NULL) *cp = '\0'; g_return_val_if_fail (provider != NULL, NULL); /* This should never happen, but if the service has no * display name, fall back to the generic service name. */ if (display_name == NULL || *display_name == '\0') { service_name = camel_service_get_name (service, TRUE); display_name = service_name; } if (have_host && have_user) { pretty_url = g_markup_printf_escaped ( "<b>%s</b> <small>(%s@%s)</small>", display_name, user, host); } else if (have_host) { pretty_url = g_markup_printf_escaped ( "<b>%s</b> <small>(%s)</small>", display_name, host); } else if (have_path) { pretty_url = g_markup_printf_escaped ( "<b>%s</b> <small>(%s)</small>", display_name, path); } else { pretty_url = g_markup_printf_escaped ( "<b>%s</b>", display_name); } g_free (service_name); g_free (host); g_free (path); g_free (user); return pretty_url; }