2000-10-10 Chris Toshok <toshok@helixcode.com> * mail-ops.c (setup_scan_subfolders): add a ref to input->storage here so that the ref/unref pattern more closely matches other mail-ops. also, this keeps the storage from being freed when we hit the unref in cleanup_scan_subfolders, which is important because we maintain a reference to it in the storage_hash in component-factory.c * subscribe-dialog.h: add storage field. * subscribe-dialog.c (subscribe_folder_info): new function, subscribe to a folder given it's CamelFolderInfo, and add it to the shell - we're generating a path from the name of the folder which is bad. (unsubscribe_folder_info): same (except we unsubscribe and remove from the shell). (storage_selected_cb): unref the currently selected storage. (subscribe_dialog_destroy): unref the currently selected storage. (subscribe_dialog_construct): sc->storage = NULL. * component-factory.c (mail_lookup_storage): new function, to look up a EvolutionStorage corresponding to a CamelService. we ref the EvolutionStorage before passing it back. (mail_add_new_storage): insert the storage into storages_hash if result is EVOLUTION_STORAGE_OK. * mail.h: add prototype for mail_lookup_storage. svn path=/trunk/; revision=5830
141 lines
5.7 KiB
C
141 lines
5.7 KiB
C
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
/*
|
|
* Copyright 2000, Helix Code, Inc. (http://www.helixcode.com)
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
/* This file is a F*CKING MESS. Shame to us! */
|
|
|
|
#include <gtkhtml/gtkhtml.h>
|
|
#include <libgnomevfs/gnome-vfs-mime-handlers.h>
|
|
#include "camel/camel.h"
|
|
#include "composer/e-msg-composer.h"
|
|
#include "mail-config.h"
|
|
#include "mail-config-gui.h"
|
|
#include "folder-browser.h"
|
|
#include "shell/evolution-storage.h"
|
|
|
|
extern char *evolution_dir;
|
|
|
|
/* mail-crypto */
|
|
char *mail_crypto_openpgp_decrypt (const char *ciphertext,
|
|
CamelException *ex);
|
|
|
|
char *mail_crypto_openpgp_encrypt (const char *plaintext,
|
|
const GPtrArray *recipients,
|
|
gboolean sign,
|
|
CamelException *ex);
|
|
|
|
char *mail_crypto_openpgp_clearsign (const char *plaintext,
|
|
const char *userid,
|
|
CamelException *ex);
|
|
|
|
/* mail-format */
|
|
void mail_format_mime_message (CamelMimeMessage *mime_message,
|
|
MailDisplay *md);
|
|
|
|
typedef gboolean (*MailMimeHandlerFn) (CamelMimePart *part,
|
|
const char *mime_type,
|
|
MailDisplay *md);
|
|
typedef struct {
|
|
gboolean generic;
|
|
OAF_ServerInfo *component;
|
|
GnomeVFSMimeApplication *application;
|
|
MailMimeHandlerFn builtin;
|
|
} MailMimeHandler;
|
|
MailMimeHandler *mail_lookup_handler (const char *mime_type);
|
|
|
|
gboolean mail_part_is_inline (CamelMimePart *part);
|
|
|
|
EMsgComposer *mail_generate_reply (CamelMimeMessage *mime_message,
|
|
gboolean to_all);
|
|
|
|
char *mail_get_message_body (CamelDataWrapper *data, gboolean want_plain,
|
|
gboolean *is_html);
|
|
|
|
/* mail-identify */
|
|
char *mail_identify_mime_part (CamelMimePart *part);
|
|
|
|
/* mail-callbacks */
|
|
void fetch_mail (GtkWidget *widget, gpointer user_data);
|
|
void send_queued_mail (GtkWidget *widget, gpointer user_data);
|
|
void send_receieve_mail (GtkWidget *widget, gpointer user_data);
|
|
|
|
void compose_msg (GtkWidget *widget, gpointer user_data);
|
|
void send_to_url (const char *url);
|
|
void forward_msg (GtkWidget *widget, gpointer user_data);
|
|
void reply_to_sender (GtkWidget *widget, gpointer user_data);
|
|
void reply_to_all (GtkWidget *widget, gpointer user_data);
|
|
void delete_msg (GtkWidget *widget, gpointer user_data);
|
|
void move_msg (GtkWidget *widget, gpointer user_data);
|
|
void copy_msg (GtkWidget *widget, gpointer user_data);
|
|
void print_msg (GtkWidget *widget, gpointer user_data);
|
|
void print_preview_msg (GtkWidget *widget, gpointer user_data);
|
|
void edit_msg (GtkWidget *widget, gpointer user_data);
|
|
void view_msg (GtkWidget *widget, gpointer user_data);
|
|
|
|
void select_all (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void invert_selection (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void mark_as_seen (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void mark_as_unseen (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void edit_message (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void view_message (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void expunge_folder (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void filter_edit (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void vfolder_edit_vfolders (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void providers_config (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
void manage_subscriptions (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
|
|
void configure_folder (BonoboUIHandler *uih, void *user_data, const char *path);
|
|
|
|
void mail_reply (CamelFolder *folder, CamelMimeMessage *msg, const char *uid, gboolean to_all);
|
|
void composer_send_cb (EMsgComposer *composer, gpointer data);
|
|
void composer_postpone_cb (EMsgComposer *composer, gpointer data);
|
|
|
|
void mail_print_preview_msg (MailDisplay *md);
|
|
void mail_print_msg (MailDisplay *md);
|
|
|
|
void run_filter_ondemand (BonoboUIHandler *uih, gpointer user_data, const char *path);
|
|
|
|
/* mail view */
|
|
GtkWidget *mail_view_create (CamelFolder *source, const char *uid, CamelMimeMessage *msg);
|
|
|
|
/* component factory for lack of a better place */
|
|
/*takes a GSList of MailConfigServices */
|
|
void mail_load_storages (Evolution_Shell corba_shell, GSList *sources);
|
|
void mail_add_new_storage (const char *uri, Evolution_Shell corba_shell, CamelException *ex);
|
|
/* used in the subscribe dialog code */
|
|
EvolutionStorage* mail_lookup_storage (CamelService *service);
|
|
|
|
/* session */
|
|
void session_init (void);
|
|
char *mail_request_dialog (const char *prompt, gboolean secret,
|
|
const char *key, gboolean async);
|
|
void forget_passwords (BonoboUIHandler *uih, void *user_data,
|
|
const char *path);
|
|
extern CamelSession *session;
|
|
|
|
/* message-list */
|
|
void vfolder_subject (GtkWidget *w, FolderBrowser *fb);
|
|
void vfolder_sender (GtkWidget *w, FolderBrowser *fb);
|
|
void vfolder_recipient (GtkWidget *w, FolderBrowser *fb);
|
|
|
|
void filter_subject (GtkWidget *w, FolderBrowser *fb);
|
|
void filter_sender (GtkWidget *w, FolderBrowser *fb);
|
|
void filter_recipient (GtkWidget *w, FolderBrowser *fb);
|
|
void filter_mlist (GtkWidget *w, FolderBrowser *fb);
|
|
|