void vnr_prefs_show_dialog(VnrPrefs *prefs) { if (prefs->dialog == NULL) { prefs->dialog = build_dialog (prefs); if (prefs->dialog == NULL) return; } gtk_window_present(GTK_WINDOW(prefs->dialog)); }
GtkWidget * mail_send_receive (void) { CamelFolder *outbox_folder; struct _send_data *data; EAccountList *accounts; EAccount *account; GList *scan; if (send_recv_dialog != NULL) { if (GTK_WIDGET_REALIZED(send_recv_dialog)) { gdk_window_show(send_recv_dialog->window); gdk_window_raise(send_recv_dialog->window); } return send_recv_dialog; } if (!camel_session_is_online (session)) return send_recv_dialog; account = mail_config_get_default_account (); if (!account || !account->transport->url) return send_recv_dialog; accounts = mail_config_get_accounts (); outbox_folder = mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX); data = build_dialog (accounts, outbox_folder, account->transport->url); scan = data->infos; while (scan) { struct _send_info *info = scan->data; switch(info->type) { case SEND_RECEIVE: mail_fetch_mail(info->uri, info->keep, FILTER_SOURCE_INCOMING, info->cancel, receive_get_folder, info, receive_status, info, receive_done, info); break; case SEND_SEND: /* todo, store the folder in info? */ mail_send_queue(outbox_folder, info->uri, FILTER_SOURCE_OUTGOING, info->cancel, receive_get_folder, info, receive_status, info, receive_done, info); break; case SEND_UPDATE: mail_get_store(info->uri, info->cancel, receive_update_got_store, info); break; default: break; } scan = scan->next; } return send_recv_dialog; }