Removed. (mail_config_set_show_preview): Removed.

2003-01-08  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-config.c (mail_config_get_show_preview): Removed.
	(mail_config_set_show_preview): Removed.

	* folder-browser.c (folder_browser_toggle_preview): Simply set the
	gconf show_preview setting and let the code in folder-browser-ui.c
	detect it and update the UI.

	* folder-browser-ui.c (folder_browser_ui_add_global): Listen for
	changed events on the show_preview setting.

svn path=/trunk/; revision=19288
This commit is contained in:
Jeffrey Stedfast
2003-01-08 20:34:53 +00:00
committed by Jeffrey Stedfast
parent ac80365c86
commit 5c49bda7d1
5 changed files with 48 additions and 93 deletions

View File

@ -1,5 +1,15 @@
2003-01-08 Jeffrey Stedfast <fejj@ximian.com>
* mail-config.c (mail_config_get_show_preview): Removed.
(mail_config_set_show_preview): Removed.
* folder-browser.c (folder_browser_toggle_preview): Simply set the
gconf show_preview setting and let the code in folder-browser-ui.c
detect it and update the UI.
* folder-browser-ui.c (folder_browser_ui_add_global): Listen for
changed events on the show_preview setting.
* mail-config.c (mail_config_set_default_account): Save the
setting via gconf.
(mail_config_add_account): Immediately save the list of accounts.

View File

@ -602,12 +602,24 @@ folder_browser_ui_rm_list (FolderBrowser *fb)
folder_browser_ui_discard_view_menus (fb);
}
static void
show_preview_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer user_data)
{
FolderBrowser *fb = user_data;
gboolean show_preview;
show_preview = gconf_client_get_bool (client, "/apps/evolution/mail/display/show_preview", NULL);
bonobo_ui_component_set_prop (fb->uicomp, "/commands/ViewPreview", "state", show_preview ? "1" : "0", NULL);
folder_browser_set_message_preview (fb, show_preview);
}
void
folder_browser_ui_add_global (FolderBrowser *fb)
{
int state;
BonoboUIComponent *uic = fb->uicomp;
gboolean show_preview;
GConfClient *gconf;
if (fb->sensitise_state) {
g_hash_table_destroy (fb->sensitise_state);
fb->sensitise_state = NULL;
@ -615,13 +627,25 @@ folder_browser_ui_add_global (FolderBrowser *fb)
ui_add (fb, "global", global_verbs, global_pixcache);
gconf = gconf_client_get_default ();
/* (Pre)view toggle */
state = mail_config_get_show_preview (FOLDER_BROWSER (fb)->uri);
bonobo_ui_component_set_prop (uic, "/commands/ViewPreview", "state", state ? "1" : "0", NULL);
/* watch the show_preview setting */
gconf_client_add_dir (gconf, "/apps/evolution/mail/display/show_preview",
GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
/* listen for changed events to the show_preview setting */
gconf_client_notify_add (gconf, "/apps/evolution/mail/display/show_preview",
show_preview_changed, fb, NULL, NULL);
show_preview = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/show_preview", NULL);
bonobo_ui_component_set_prop (uic, "/commands/ViewPreview", "state", show_preview ? "1" : "0", NULL);
/* listen for user-changes */
bonobo_ui_component_add_listener (uic, "ViewPreview", folder_browser_toggle_preview, fb);
/* FIXME: this kind of bypasses bonobo but seems the only way when we change components */
folder_browser_toggle_preview (uic, "", Bonobo_UIComponent_STATE_CHANGED, state ? "1" : "0", fb);
folder_browser_toggle_preview (uic, "", Bonobo_UIComponent_STATE_CHANGED, show_preview ? "1" : "0", fb);
/* Stop button */
/* TODO: Go through cache, but we can't becaus eof mail-mt.c:set_stop at the moment */

View File

@ -1106,21 +1106,21 @@ set_cursor_pos (FolderBrowser *fb, int y)
static gboolean do_message_selected(FolderBrowser *fb);
void
folder_browser_set_message_preview (FolderBrowser *folder_browser, gboolean show_message_preview)
folder_browser_set_message_preview (FolderBrowser *folder_browser, gboolean show_preview)
{
GConfClient *gconf;
int paned_size, y;
if (folder_browser->preview_shown == show_message_preview
if (folder_browser->preview_shown == show_preview
|| folder_browser->message_list == NULL)
return;
folder_browser->preview_shown = show_message_preview;
folder_browser->preview_shown = show_preview;
gconf = gconf_client_get_default ();
paned_size = gconf_client_get_int (gconf, "/apps/evolution/mail/display/paned_size", NULL);
if (show_message_preview) {
if (show_preview) {
y = save_cursor_pos (folder_browser);
e_paned_set_position (E_PANED (folder_browser->vpaned), paned_size);
gtk_widget_show (GTK_WIDGET (folder_browser->mail_display));
@ -1261,13 +1261,13 @@ folder_browser_toggle_preview (BonoboUIComponent *component,
gpointer user_data)
{
FolderBrowser *fb = user_data;
GConfClient *gconf;
if (type != Bonobo_UIComponent_STATE_CHANGED
|| fb->message_list == NULL)
if (type != Bonobo_UIComponent_STATE_CHANGED || fb->message_list == NULL)
return;
mail_config_set_show_preview (fb->uri, atoi (state));
folder_browser_set_message_preview (fb, atoi (state));
gconf = gconf_client_get_default ();
gconf_client_set_bool (gconf, "/apps/evolution/mail/display/show_preview", atoi (state), NULL);
}
void

View File

@ -80,7 +80,6 @@ typedef struct {
GSList *accounts;
GHashTable *threaded_hash;
GHashTable *preview_hash;
GList *signature_list;
int signatures;
@ -845,10 +844,6 @@ mail_config_write_on_exit (void)
if (config->threaded_hash)
g_hash_table_foreach_remove (config->threaded_hash, hash_save_state, "Threads");
/* Message Preview */
if (config->preview_hash)
g_hash_table_foreach_remove (config->preview_hash, hash_save_state, "Preview");
/* Passwords */
/* then we make sure the ones we want to remember are in the
@ -920,65 +915,6 @@ uri_to_key (const char *uri)
return rval;
}
gboolean
mail_config_get_show_preview (const char *uri)
{
#warning "FIXME: need to rework how we save state, probably shouldn't use gconf"
#if 0
if (uri && *uri) {
gpointer key, val;
char *dbkey;
dbkey = uri_to_key (uri);
if (!config->preview_hash)
config->preview_hash = g_hash_table_new (g_str_hash, g_str_equal);
if (!g_hash_table_lookup_extended (config->preview_hash, dbkey, &key, &val)) {
gboolean value;
char *str;
str = g_strdup_printf ("/apps/Evolution/Mail/Preview/%s", dbkey);
value = e_config_listener_get_boolean_with_default (config->db, str, TRUE, NULL);
g_free (str);
g_hash_table_insert (config->preview_hash, dbkey,
GINT_TO_POINTER (value));
return value;
} else {
g_free (dbkey);
return GPOINTER_TO_INT (val);
}
}
#endif
/* return the default value */
return gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/show_preview", NULL);
}
void
mail_config_set_show_preview (const char *uri, gboolean value)
{
if (uri && *uri) {
char *dbkey = uri_to_key (uri);
gpointer key, val;
if (!config->preview_hash)
config->preview_hash = g_hash_table_new (g_str_hash, g_str_equal);
if (g_hash_table_lookup_extended (config->preview_hash, dbkey, &key, &val)) {
g_hash_table_insert (config->preview_hash, dbkey,
GINT_TO_POINTER (value));
g_free (dbkey);
} else {
g_hash_table_insert (config->preview_hash, dbkey,
GINT_TO_POINTER (value));
}
}
}
gboolean
mail_config_get_thread_list (const char *uri)
{
@ -1389,16 +1325,7 @@ mail_config_uri_renamed(GCompareFunc uri_cmp, const char *old, const char *new)
g_hash_table_insert (config->threaded_hash, g_strdup(newkey), val);
work = 2;
}
/* ditto */
mail_config_get_show_preview (old);
if (g_hash_table_lookup_extended (config->preview_hash, oldkey, &hashkey, &val)) {
/*printf ("changing key in preview_hash\n");*/
g_hash_table_remove (config->preview_hash, hashkey);
g_hash_table_insert (config->preview_hash, g_strdup(newkey), val);
work = 2;
}
g_free (oldkey);
g_free (newkey);

View File

@ -161,12 +161,6 @@ gboolean mail_config_is_corrupt (void);
gboolean mail_config_get_thread_list (const char *uri);
void mail_config_set_thread_list (const char *uri, gboolean value);
gboolean mail_config_get_thread_subject (void);
void mail_config_set_thread_subject (gboolean thread_subject);
gboolean mail_config_get_show_preview (const char *uri);
void mail_config_set_show_preview (const char *uri, gboolean value);
const char *mail_config_get_label_name (int label);
void mail_config_set_label_name (int label, const char *name);
guint32 mail_config_get_label_color (int label);