aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/ChangeLog45
-rw-r--r--mail/component-factory.c3
-rw-r--r--mail/mail-accounts.c11
-rw-r--r--mail/mail-accounts.h5
-rw-r--r--mail/mail-config.c26
-rw-r--r--mail/mail-config.h7
6 files changed, 81 insertions, 16 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 67ad37d278..3da62b9f80 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,18 @@
2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
+ * mail-accounts.c (construct): Setup the Empty Trash On Exit
+ widgets.
+
+ * mail-config.c (config_read): Option to emtpy trash on exit.
+ (mail_config_write_on_exit): Same.
+ (mail_config_set_empty_trash_on_exit): Set the option.
+ (mail_config_get_empty_trash_on_exit): Get the option.
+
+ * component-factory.c (owner_unset_cb): Empty the trash folders if
+ the user set the "empty trash on exit" option.
+
+2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
+
* mail-callbacks.c (transfer_msg): Updated for the
mail_transfer_messages API.
@@ -34,34 +47,40 @@
2001-07-02 Peter Williams <peterw@ximian.com>
- * mail-folder-cache.h: New file. Protoypes for the Mail Folder Cache, which
- provides a place for all the disparate pieces of the mailer to save bits of
- information about a folder. Centralizes the information display code.
+ * mail-folder-cache.h: New file. Protoypes for the Mail Folder
+ Cache, which provides a place for all the disparate pieces of the
+ mailer to save bits of information about a folder. Centralizes the
+ information display code.
* mail-folder-cache.c: New file. Implements the Mail Folder Cache.
- * Makefile.am (evolution_mail_SOURCES): Add the mail-folder-cache.{c,h}
+ * Makefile.am (evolution_mail_SOURCES): Add the
+ mail-folder-cache.{c,h}
- * folder-browser-factory.c (fb_get_svi): Copy of that absurdly long-named
- function in mail-display.c that gets the GNOME_Evolution_ShellView.
+ * folder-browser-factory.c (fb_get_svi): Copy of that absurdly
+ long-named function in mail-display.c that gets the
+ GNOME_Evolution_ShellView.
(control_activate): Set the ShellView for the folder cache.
- * folder-browser.c (got_folder): Tell the folder browser about this folder.
+ * folder-browser.c (got_folder): Tell the folder browser about
+ this folder.
- * mail-callbacks.c (create_folders): Tell the folder cache about the new
- folders.
+ * mail-callbacks.c (create_folders): Tell the folder cache about
+ the new folders.
* mail-local.c (reconfigure_folder_reconfigure): Don't unhook our
events as we no longer hook them up.
(register_folder_registered): Tell the folder cache about this
folder's place in the local storage.
- (register_folder_register): No longer hook events; the Folder Cache
- will do this.
- (local_folder_changed, local_folder_changed_proxy): Move to mail-folder-cache.c
+ (register_folder_register): No longer hook events; the Folder
+ Cache will do this.
+ (local_folder_changed, local_folder_changed_proxy): Move to
+ mail-folder-cache.c
(free_local_folder): No longer unhook events.
* mail-ops.c (do_update_subfolders_rec): Instead of setting the
- folder status ourselves, inform the Folder Cache about the changes.
+ folder status ourselves, inform the Folder Cache about the
+ changes.
* mail-tools.c (mail_tool_uri_to_folder): Replace danw's cache
with the new Mail Folder Cache.
diff --git a/mail/component-factory.c b/mail/component-factory.c
index 149159faf6..10588c50cc 100644
--- a/mail/component-factory.c
+++ b/mail/component-factory.c
@@ -578,6 +578,9 @@ idle_quit (gpointer user_data)
static void
owner_unset_cb (EvolutionShellComponent *shell_component, gpointer user_data)
{
+ if (mail_config_get_empty_trash_on_exit ())
+ empty_trash (NULL, NULL, NULL);
+
unref_standard_folders ();
mail_importer_uninit ();
diff --git a/mail/mail-accounts.c b/mail/mail-accounts.c
index 47d53a8b62..0be25756f0 100644
--- a/mail/mail-accounts.c
+++ b/mail/mail-accounts.c
@@ -602,6 +602,12 @@ images_radio_toggled (GtkWidget *radio, gpointer data)
}
static void
+empty_trash_toggled (GtkWidget *toggle, gpointer data)
+{
+ mail_config_set_empty_trash_on_exit (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle)));
+}
+
+static void
forward_style_activated (GtkWidget *item, gpointer data)
{
int style = GPOINTER_TO_INT (data);
@@ -751,6 +757,11 @@ construct (MailAccountsDialog *dialog)
gtk_signal_connect (GTK_OBJECT (menu), "deactivate",
GTK_SIGNAL_FUNC (charset_menu_deactivate), NULL);
+ dialog->empty_trash = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkEmptyTrashOnExit"));
+ gtk_toggle_button_set_active (dialog->empty_trash, mail_config_get_empty_trash_on_exit ());
+ gtk_signal_connect (GTK_OBJECT (dialog->empty_trash), "toggled",
+ GTK_SIGNAL_FUNC (empty_trash_toggled), dialog);
+
/* now to fill in the clists */
dialog->accounts_row = -1;
dialog->accounts = mail_config_get_accounts ();
diff --git a/mail/mail-accounts.h b/mail/mail-accounts.h
index 62b73ec6f0..ebc67b3dec 100644
--- a/mail/mail-accounts.h
+++ b/mail/mail-accounts.h
@@ -82,7 +82,10 @@ struct _MailAccountsDialog {
GtkToggleButton *send_html;
GtkOptionMenu *forward_style;
GtkOptionMenu *charset;
-
+
+ /* Other page */
+ GtkToggleButton *empty_trash;
+
/* PGP page */
GnomeFileEntry *pgp_path;
};
diff --git a/mail/mail-config.c b/mail/mail-config.c
index c1b6f884f4..0a7fb4fbb5 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -61,6 +61,7 @@ typedef struct {
gboolean prompt_empty_subject;
gboolean prompt_only_bcc;
gint seen_timeout;
+ gboolean empty_trash_on_exit;
GSList *accounts;
GSList *news;
@@ -563,6 +564,14 @@ config_read (void)
config->default_charset = g_strdup (config->default_charset);
}
+ /* Trash folders */
+ str = g_strdup_printf ("=%s/config/Mail=/Trash/empty_on_exit",
+ evolution_dir);
+ config->empty_trash_on_exit = gnome_config_get_bool_with_default (str, &def);
+ if (def)
+ config->empty_trash_on_exit = FALSE;
+ g_free (str);
+
gnome_config_sync ();
}
@@ -807,6 +816,11 @@ mail_config_write_on_exit (void)
gnome_config_set_string (str, config->default_charset);
g_free (str);
+ /* Trash folders */
+ str = g_strdup_printf ("=%s/config/Mail=/Trash/empty_on_exit", evolution_dir);
+ gnome_config_set_bool (str, config->empty_trash_on_exit);
+ g_free (str);
+
/* Passwords */
gnome_config_private_clean_section ("/Evolution/Passwords");
sources = mail_config_get_sources ();
@@ -847,6 +861,18 @@ mail_config_is_configured (void)
}
gboolean
+mail_config_get_empty_trash_on_exit (void)
+{
+ return config->empty_trash_on_exit;
+}
+
+void
+mail_config_set_empty_trash_on_exit (gboolean value)
+{
+ config->empty_trash_on_exit = value;
+}
+
+gboolean
mail_config_get_show_preview (const char *uri)
{
if (uri) {
diff --git a/mail/mail-config.h b/mail/mail-config.h
index d65ced4f7d..4a3167f6b9 100644
--- a/mail/mail-config.h
+++ b/mail/mail-config.h
@@ -106,14 +106,17 @@ void mail_config_write_on_exit (void);
/* General Accessor functions */
gboolean mail_config_is_configured (void);
+gboolean mail_config_get_empty_trash_on_exit (void);
+void mail_config_set_empty_trash_on_exit (gboolean value);
+
gboolean mail_config_get_thread_list (const char *uri);
void mail_config_set_thread_list (const char *uri, gboolean value);
gboolean mail_config_get_show_preview (const char *uri);
void mail_config_set_show_preview (const char *uri, gboolean value);
-gboolean mail_config_get_hide_deleted (void);
-void mail_config_set_hide_deleted (gboolean value);
+gboolean mail_config_get_hide_deleted (void);
+void mail_config_set_hide_deleted (gboolean value);
gint mail_config_get_paned_size (void);
void mail_config_set_paned_size (gint size);