aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog4
-rw-r--r--mail/folder-browser-factory.c3
-rw-r--r--mail/mail-config.c32
-rw-r--r--mail/mail-config.h5
-rw-r--r--mail/main.c2
-rw-r--r--mail/message-list.c8
6 files changed, 47 insertions, 7 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index e2802b2814..e807608d8e 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,7 @@
+2000-08-08 Jeremy Wise <jwise@pathwaynet.com>
+ * mail-config.[ch], main.c, folder-browser-factory.c: State of the
+ threaded list toggle is now saved via gnome_config
+
2000-08-08 Dan Winship <danw@helixcode.com>
* mail-config-gui.c (service_page_item_new): Attach a signal
diff --git a/mail/folder-browser-factory.c b/mail/folder-browser-factory.c
index 9453ea7aaa..dc5fd25ca5 100644
--- a/mail/folder-browser-factory.c
+++ b/mail/folder-browser-factory.c
@@ -18,6 +18,7 @@
#include "folder-browser.h"
#include "mail.h"
#include "shell/Evolution.h"
+#include "mail-config.h"
static GnomeUIInfo gnome_toolbar [] = {
GNOMEUIINFO_ITEM_STOCK (N_("Get mail"), N_("Check for new mail"), fetch_mail, GNOME_STOCK_PIXMAP_MAIL_RCV),
@@ -60,7 +61,7 @@ control_activate (BonoboControl *control, BonoboUIHandler *uih,
_("_Threaded Message List"),
NULL, -1, 0, 0, NULL, NULL);
bonobo_ui_handler_menu_set_toggle_state (uih, "/View/Threaded",
- threaded_view);
+ mail_config_thread_list());
bonobo_ui_handler_menu_set_callback (uih, "/View/Threaded",
message_list_toggle_threads,
FOLDER_BROWSER (folder_browser)->message_list,
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 3427080cff..a62abfee5c 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -243,6 +243,12 @@ mail_config_read ()
evolution_dir);
config->send_html = gnome_config_get_bool (str);
g_free (str);
+
+ /* Show Messages Threaded */
+ str = g_strdup_printf ("=%s/config/Mail=/Display/thread_list",
+ evolution_dir);
+ config->thread_list = gnome_config_get_bool (str);
+ g_free (str);
gnome_config_sync ();
}
@@ -339,6 +345,20 @@ mail_config_write ()
evolution_dir);
gnome_config_set_bool (str, config->send_html);
g_free (str);
+
+ gnome_config_sync ();
+}
+
+void
+mail_config_write_on_exit ()
+{
+ gchar *str;
+
+ /* Show Messages Threaded */
+ str = g_strdup_printf ("=%s/config/Mail=/Display/thread_list",
+ evolution_dir);
+ gnome_config_set_bool (str, config->thread_list);
+ g_free (str);
gnome_config_sync ();
}
@@ -380,6 +400,18 @@ mail_config_send_html ()
return config->send_html;
}
+gboolean
+mail_config_thread_list ()
+{
+ return config->thread_list;
+}
+
+void
+mail_config_set_thread_list (gboolean value)
+{
+ config->thread_list = value;
+}
+
MailConfig *
mail_config_fetch (void)
{
diff --git a/mail/mail-config.h b/mail/mail-config.h
index 033bf18337..18921b20c4 100644
--- a/mail/mail-config.h
+++ b/mail/mail-config.h
@@ -45,6 +45,7 @@ typedef struct
GSList *news;
MailConfigService *transport;
gboolean send_html;
+ gboolean thread_list;
} MailConfig;
/* Identities */
@@ -62,6 +63,7 @@ void mail_config_init (void);
void mail_config_clear (void);
void mail_config_read (void);
void mail_config_write (void);
+void mail_config_write_on_exit (void);
/* Accessor functions */
gboolean mail_config_is_configured ();
@@ -69,7 +71,8 @@ MailConfigIdentity *mail_config_get_default_identity (void);
MailConfigService *mail_config_get_default_source (void);
MailConfigService *mail_config_get_transport (void);
gboolean mail_config_send_html ();
-
+gboolean mail_config_thread_list ();
+void mail_config_set_thread_list (gboolean value);
MailConfig *mail_config_fetch (void);
#endif
diff --git a/mail/main.c b/mail/main.c
index 32572dd064..8ad567da21 100644
--- a/mail/main.c
+++ b/mail/main.c
@@ -67,5 +67,7 @@ main (int argc, char *argv [])
GDK_THREADS_LEAVE ();
#endif
+ mail_config_write_on_exit ();
+
return 0;
}
diff --git a/mail/message-list.c b/mail/message-list.c
index eb6a163bcc..c20534541e 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -19,6 +19,7 @@
#include <camel/camel-folder.h>
#include "message-list.h"
#include "message-thread.h"
+#include "mail-config.h"
#include "mail.h"
#include "Mail.h"
#include "widgets/e-table/e-table-header-item.h"
@@ -848,7 +849,7 @@ message_list_regenerate (MessageList *message_list, const char *search)
e_tree_model_node_insert(etm, NULL, 0, message_list);
e_tree_model_node_set_expanded (etm, message_list->tree_root, TRUE);
- if (threaded_view) {
+ if (mail_config_thread_list()) {
struct _container *head;
head = thread_messages (message_list->folder, uids);
@@ -1031,14 +1032,11 @@ message_list_foreach (MessageList *message_list,
mlfe_callback, &mlfe_data);
}
-gboolean threaded_view = TRUE;
-
void
message_list_toggle_threads (BonoboUIHandler *uih, void *user_data,
const char *path)
{
MessageList *ml = user_data;
-
- threaded_view = bonobo_ui_handler_menu_get_toggle_state (uih, path);
+ mail_config_set_thread_list(bonobo_ui_handler_menu_get_toggle_state (uih, path));
message_list_regenerate (ml, ml->search);
}