From fb6caf533c7629ff9a7ffbdfa1eafd9afd5e7817 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Wed, 8 Jan 2003 01:39:21 +0000 Subject: Use gconf to get the paned size. (folder_browser_set_message_preview): 2003-01-07 Jeffrey Stedfast * folder-browser.c (save_cursor_pos): Use gconf to get the paned size. (folder_browser_set_message_preview): Same. (folder_browser_toggle_hide_deleted): Use gconf to set the hide-deleted state. (folder_browser_set_message_display_style): Same but for the message_display_style. (fb_resize_cb): Save the paned_size via gconf. (paned_size_changed): Callback for when the paned_size gets changed. Change the folder-browser's paned size to the new setting. (folder_browser_gui_init): Listen to changes to the paned_size and also get the initial size from gconf. * message-list.c (message_list_set_folder): Use gconf. (regen_list_regen): Use gconf. * message-browser.c (transfer_msg_done): Use gconf to get the hide_deleted setting. * mail-account-gui.c (sig_add_new_signature): Use gconf. * folder-browser-ui.c (folder_browser_ui_add_list): Use gconf. * folder-browser.c (save_cursor_pos): Use gconf. (folder_browser_set_message_preview): Same. (folder_browser_toggle_hide_deleted): Here too. (folder_browser_set_message_display_style): And here. (folder_browser_gui_init): Here too. (done_message_selected): And here. * mail-config.c (mail_config_get_thread_subject): Removed. (mail_config_set_thread_subject): Removed. (mail_config_get_empty_trash_on_exit): Removed. (mail_config_set_empty_trash_on_exit): Removed. (mail_config_get_last_filesel_dir): Removed. (mail_config_set_last_filesel_dir): Removed. (mail_config_get_hide_deleted): Removed. (mail_config_set_hide_deleted): Removed. (mail_config_get_paned_size): Removed. (mail_config_set_paned_size): Removed. (mail_config_get_send_html): Removed. (mail_config_set_send_html): Removed. (mail_config_get_confirm_unwanted_html): Removed. (mail_config_set_confirm_unwanted_html): Removed. (mail_config_get_citation_highlight): Removed. (mail_config_set_citation_highlight): Removed. (mail_config_get_citation_color): Removed. (mail_config_set_citation_color): Removed. (mail_config_get_do_seen_timeout): Removed. (mail_config_set_do_seen_timeout): Removed. (mail_config_get_mark_as_seen_timeout): Removed. (mail_config_set_mark_as_seen_timeout): Removed. (mail_config_get_prompt_empty_subject): Removed. (mail_config_set_prompt_empty_subject): Removed. (mail_config_get_prompt_only_bcc): Removed. (mail_config_set_prompt_only_bcc): Removed. (mail_config_get_confirm_expunge): Removed. (mail_config_set_confirm_expunge): Removed. (mail_config_get_confirm_goto_next_folder): Removed. (mail_config_set_confirm_goto_next_folder): Removed. (mail_config_get_goto_next_folder): Removed. (mail_config_set_goto_next_folder): Removed. (mail_config_get_http_mode): Removed. (mail_config_set_http_mode): Removed. (mail_config_get_default_forward_style): Removed. (mail_config_set_default_forward_style): Removed. (mail_config_get_default_reply_style): Removed. (mail_config_set_default_reply_style): Removed. (mail_config_get_message_display_style): Removed. (mail_config_set_message_display_style): Removed. (mail_config_get_default_charset): Removed. (mail_config_set_default_charset): Removed. (mail_config_get_x_mailer_display_style): Removed. (mail_config_set_x_mailer_display_style): Removed. * subscribe-dialog.c (populate_store_list): Use the list of accounts. We can't get the list of sources anymore. (populate_store_foreach): Updated. * mail-callbacks.c (guess_me_from_accounts): Use account->enabled. (mail_generate_reply): Same. (empty_trash): Here too. * mail-accounts.c (account_delete_clicked): Use account->enabled rather than source->enabled. (account_able_clicked): Same. (account_cursor_change): Here too. (mail_accounts_load): And here. * component-factory.c (owner_unset_cb): Use gconf empty-on-exit settings. (mail_load_storages): Use account->enabled rather than account->source->enabled. The struct changed. * mail-composer-prefs.c (sig_add): Get the send_html pref from gconf. * message-tag-followup.c (target_date_new): Use gconf. * mail-config.c (mail_config_get_week_start_day): Removed. * mail-tools.c (mail_tool_quote_message): Use gconf here too, but we don't need to parse the colour - just use it as a raw string. (mail_tool_forward_message): Use gconf. * mail-format.c (mail_format_data_wrapper_write_to_stream): Use gconf. (write_headers): Use gconf. (handle_text_plain): Same. * mail-display.c (mail_text_write): Updated to use gconf and parse GdkColour strings. (on_url_requested): Updated to use gconf. * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): Use gconf rather than the old mail-config APIs which will be removed. (ask_confirm_for_empty_subject): Same. (ask_confirm_for_only_bcc): Here too. (composer_get_message): And here. (create_msg_composer): Same. (transfer_msg_done): Again here. (delete_msg): Here too. (confirm_expunge): And finally here. * mail-config.c (mail_config_write): Use gconf. (mail_config_get_sources): Removed. * mail-account-gui.c (mail_account_gui_save): No need to save enabled-state anymore for a source. * mail-config-druid.c (wizard_finish_cb): Instead of setting account->source->enabled to TRUE, just set account->enabled to TRUE. The structures changed a bit. * mail-send-recv.c (mail_send_receive): Get the list of accounts instead of sources, and pass them along to build_dialogue. I'm trying to get rid of the mail_config_get_sources() api. (mail_autoreceive_setup): Here too. * mail-config.c (mail_config_get_filter_log): Removed. (mail_config_set_filter_log): Removed. (mail_config_get_filter_log_path): Removed. (mail_config_set_filter_log_path): Removed. (mail_config_get_new_mail_notify): Removed. (mail_config_set_new_mail_notify): Removed. (mail_config_get_new_mail_notify_sound_file): Removed. (mail_config_set_new_mail_notify_sound_file): Removed. * mail-session.c (main_get_filter_driver): Updated to use the gconf settings. svn path=/trunk/; revision=19271 --- mail/folder-browser.c | 89 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 74 insertions(+), 15 deletions(-) (limited to 'mail/folder-browser.c') diff --git a/mail/folder-browser.c b/mail/folder-browser.c index 0dad15eaeb..bd442c4523 100644 --- a/mail/folder-browser.c +++ b/mail/folder-browser.c @@ -37,6 +37,9 @@ #include #include +#include +#include + #include #include @@ -1064,7 +1067,8 @@ save_cursor_pos (FolderBrowser *fb) { ETreePath node; GtkAdjustment *adj; - int row, y, height; + int row, y, height, paned_size; + GConfClient *gconf; node = e_tree_get_cursor (fb->message_list->tree); if (!node) @@ -1078,8 +1082,11 @@ save_cursor_pos (FolderBrowser *fb) e_tree_get_cell_geometry (fb->message_list->tree, row, 0, NULL, &y, NULL, &height); + gconf = gconf_client_get_default (); + paned_size = gconf_client_get_int (gconf, "/apps/evolution/mail/display/paned_size", NULL); + adj = e_scroll_frame_get_vadjustment (E_SCROLL_FRAME (fb->message_list)); - y += adj->value - ((mail_config_get_paned_size () - height) / 2); + y += adj->value - ((paned_size - height) / 2); return y; } @@ -1101,7 +1108,8 @@ static gboolean do_message_selected(FolderBrowser *fb); void folder_browser_set_message_preview (FolderBrowser *folder_browser, gboolean show_message_preview) { - int y; + GConfClient *gconf; + int paned_size, y; if (folder_browser->preview_shown == show_message_preview || folder_browser->message_list == NULL) @@ -1109,9 +1117,12 @@ folder_browser_set_message_preview (FolderBrowser *folder_browser, gboolean show folder_browser->preview_shown = show_message_preview; + gconf = gconf_client_get_default (); + paned_size = gconf_client_get_int (gconf, "/apps/evolution/mail/display/paned_size", NULL); + if (show_message_preview) { y = save_cursor_pos (folder_browser); - e_paned_set_position (E_PANED (folder_browser->vpaned), mail_config_get_paned_size ()); + e_paned_set_position (E_PANED (folder_browser->vpaned), paned_size); gtk_widget_show (GTK_WIDGET (folder_browser->mail_display)); do_message_selected (folder_browser); set_cursor_pos (folder_browser, y); @@ -1119,7 +1130,7 @@ folder_browser_set_message_preview (FolderBrowser *folder_browser, gboolean show e_paned_set_position (E_PANED (folder_browser->vpaned), 10000); gtk_widget_hide (GTK_WIDGET (folder_browser->mail_display)); mail_display_set_message (folder_browser->mail_display, NULL, NULL, NULL); - folder_browser_ui_message_loaded(folder_browser); + folder_browser_ui_message_loaded (folder_browser); } } @@ -1289,13 +1300,20 @@ folder_browser_toggle_hide_deleted (BonoboUIComponent *component, gpointer user_data) { FolderBrowser *fb = user_data; + GConfClient *gconf; if (type != Bonobo_UIComponent_STATE_CHANGED || fb->message_list == NULL) return; - if (!(fb->folder && (fb->folder->folder_flags & CAMEL_FOLDER_IS_TRASH))) - mail_config_set_hide_deleted (atoi (state)); + gconf = gconf_client_get_default (); + + /* FIXME: we should listen for changes to this, so when it changes for one folder all folders get updated */ + if (!(fb->folder && (fb->folder->folder_flags & CAMEL_FOLDER_IS_TRASH))) { + gconf_client_set_bool (gconf, "/apps/evolution/mail/display/show_deleted", + atoi (state), NULL); + } + message_list_set_hidedeleted (fb->message_list, atoi (state)); } @@ -1308,20 +1326,25 @@ folder_browser_set_message_display_style (BonoboUIComponent *component { extern char *message_display_styles[]; FolderBrowser *fb = user_data; + GConfClient *gconf; int i; + /* FIXME: we should listen for changes to this, so when it changes for one folder all folders get updated */ + if (type != Bonobo_UIComponent_STATE_CHANGED || atoi (state) == 0 || fb->message_list == NULL) return; + gconf = gconf_client_get_default (); + for (i = 0; i < MAIL_CONFIG_DISPLAY_MAX; i++) { if (strstr (message_display_styles[i], path)) { fb->mail_display->display_style = i; mail_display_redisplay (fb->mail_display, TRUE); if (fb->pref_master) - mail_config_set_message_display_style (i); + gconf_client_set_int (gconf, "/apps/evolution/mail/display/message_style", i, NULL); return; } } @@ -2296,9 +2319,27 @@ on_cursor_activated (ETree *tree, int row, ETreePath path, gpointer user_data) static void fb_resize_cb (GtkWidget *w, GtkAllocation *a, FolderBrowser *fb) -{ +{ + GConfClient *gconf; + + gconf = gconf_client_get_default (); + if (GTK_WIDGET_REALIZED (w) && fb->preview_shown) - mail_config_set_paned_size (a->height); + gconf_client_set_int (gconf, "/apps/evolution/mail/display/paned_size", a->height, NULL); +} + +static void +paned_size_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer user_data) +{ + FolderBrowser *fb = user_data; + int paned_size; + + g_signal_handler_block (fb->message_list, fb->resize_id); + + paned_size = gconf_client_get_int (client, "/apps/evolution/mail/display/paned_size", NULL); + e_paned_set_position (E_PANED (fb->vpaned), paned_size); + + g_signal_handler_unblock (fb->message_list, fb->resize_id); } static void @@ -2306,6 +2347,8 @@ folder_browser_gui_init (FolderBrowser *fb) { extern RuleContext *search_context; ESelectionModel *esm; + GConfClient *gconf; + int paned_size; /* The panned container */ fb->vpaned = e_vpaned_new (); @@ -2350,11 +2393,21 @@ folder_browser_gui_init (FolderBrowser *fb) e_paned_add1 (E_PANED (fb->vpaned), GTK_WIDGET (fb->message_list)); gtk_widget_show (GTK_WIDGET (fb->message_list)); - g_signal_connect (fb->message_list, "size_allocate", - G_CALLBACK (fb_resize_cb), fb); + fb->resize_id = g_signal_connect (fb->message_list, "size_allocate", + G_CALLBACK (fb_resize_cb), fb); + + /* listen for updates */ + gconf_client_add_dir (gconf, "/apps/evolution/mail/display/paned_size", + GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + + gconf_client_notify_add (gconf, "/apps/evolution/mail/display/paned_size", + paned_size_changed, fb, NULL, NULL); + + gconf = gconf_client_get_default (); + paned_size = gconf_client_get_int (gconf, "/apps/evolution/mail/display/paned_size", NULL); e_paned_add2 (E_PANED (fb->vpaned), GTK_WIDGET (fb->mail_display)); - e_paned_set_position (E_PANED (fb->vpaned), mail_config_get_paned_size ()); + e_paned_set_position (E_PANED (fb->vpaned), paned_size); gtk_widget_show (GTK_WIDGET (fb->mail_display)); gtk_widget_show (GTK_WIDGET (fb)); } @@ -2381,11 +2434,17 @@ done_message_selected (CamelFolder *folder, const char *uid, CamelMimeMessage *m { FolderBrowser *fb = data; CamelMessageInfo *info; - int timeout = mail_config_get_mark_as_seen_timeout (); + GConfClient *gconf; + int timeout; + + gconf = gconf_client_get_default (); if (folder != fb->folder || fb->mail_display == NULL) return; + gconf = gconf_client_get_default (); + timeout = gconf_client_get_int (gconf, "/apps/evolution/mail/display/mark_seen_timeout", NULL); + info = camel_folder_get_message_info (fb->folder, uid); mail_display_set_message (fb->mail_display, (CamelMedium *) msg, fb->folder, info); if (info) @@ -2414,7 +2473,7 @@ done_message_selected (CamelFolder *folder, const char *uid, CamelMimeMessage *m if (fb->seen_id) gtk_timeout_remove (fb->seen_id); - if (mail_config_get_do_seen_timeout () && msg) { + if (msg && gconf_client_get_bool (gconf, "/apps/evolution/mail/display/mark_seen", NULL)) { if (timeout > 0) fb->seen_id = gtk_timeout_add (timeout, do_mark_seen, fb); else -- cgit v1.2.3