From 08ba7e3f4d74446dd19e8562e881d4fe4257722c Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Wed, 13 Jun 2007 16:18:22 +0000 Subject: [PATCH] * some fixes towards fixing the right-hand-pane-empty problem - save/restore header before/after changing folder - special casing for guessing the local-folder-type; this makes outbox/sent now show the correct headers (ie. To:, Sent: instead of From:,Received:) - fix some weirdness in modest-widget-memory (reading -1 into a guint...) pmo-trunk-r2215 --- src/maemo/modest-main-window.c | 9 ++++++--- src/maemo/modest-platform.c | 2 +- src/modest-tny-folder.c | 10 ++++++---- src/modest-ui-actions.c | 18 +++++++++++++++--- src/modest-widget-memory.c | 10 +++++----- 5 files changed, 33 insertions(+), 16 deletions(-) diff --git a/src/maemo/modest-main-window.c b/src/maemo/modest-main-window.c index 8523cdf..391e526 100644 --- a/src/maemo/modest-main-window.c +++ b/src/maemo/modest-main-window.c @@ -364,6 +364,7 @@ restore_settings (ModestMainWindow *self, gboolean do_folder_view_too) modest_widget_memory_restore (conf, G_OBJECT(self), MODEST_CONF_MAIN_WINDOW_KEY); + modest_widget_memory_restore (conf, G_OBJECT(priv->header_view), MODEST_CONF_HEADER_VIEW_KEY); @@ -393,8 +394,8 @@ save_state (ModestWindow *window) MODEST_CONF_MAIN_WINDOW_KEY); modest_widget_memory_save (conf, G_OBJECT(priv->main_paned), MODEST_CONF_MAIN_PANED_KEY); -/* modest_widget_memory_save (conf, G_OBJECT(priv->header_view), */ -/* MODEST_CONF_HEADER_VIEW_KEY); */ + // modest_widget_memory_save (conf, G_OBJECT(priv->header_view), + // MODEST_CONF_HEADER_VIEW_KEY); modest_widget_memory_save (conf, G_OBJECT(priv->folder_view), MODEST_CONF_FOLDER_VIEW_KEY); } @@ -622,7 +623,7 @@ modest_main_window_on_show (GtkWidget *self, gpointer user_data) { GtkWidget *folder_win = (GtkWidget *) user_data; ModestMainWindowPrivate *priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self); - + priv->folder_view = MODEST_FOLDER_VIEW(modest_folder_view_new (NULL)); if (!priv->folder_view) g_printerr ("modest: cannot instantiate folder view\n"); @@ -774,6 +775,8 @@ modest_main_window_new (void) if (!priv->header_view) g_printerr ("modest: cannot instantiate header view\n"); modest_header_view_set_style (priv->header_view, MODEST_HEADER_VIEW_STYLE_TWOLINES); + modest_widget_memory_restore (modest_runtime_get_conf (), G_OBJECT(priv->header_view), + MODEST_CONF_HEADER_VIEW_KEY); /* Empty view */ priv->empty_view = create_empty_view (); diff --git a/src/maemo/modest-platform.c b/src/maemo/modest-platform.c index f2f8745..e8c15aa 100644 --- a/src/maemo/modest-platform.c +++ b/src/maemo/modest-platform.c @@ -825,7 +825,7 @@ modest_platform_on_new_msg (void) could be called from a thread */ if (!notify_notification_show (NOTIFY_NOTIFICATION (not), NULL)) g_error ("Failed to send notification"); - + g_object_unref (not); } diff --git a/src/modest-tny-folder.c b/src/modest-tny-folder.c index 4b9c0d7..daef301 100644 --- a/src/modest-tny-folder.c +++ b/src/modest-tny-folder.c @@ -92,14 +92,16 @@ TnyFolderType modest_tny_folder_guess_folder_type (const TnyFolder *folder) { TnyFolderType type; + + g_return_val_if_fail (TNY_IS_FOLDER(folder), TNY_FOLDER_TYPE_UNKNOWN); - g_return_val_if_fail (folder, TNY_FOLDER_TYPE_UNKNOWN); - - type = tny_folder_get_folder_type (TNY_FOLDER (folder)); + if (modest_tny_folder_is_local_folder ((TnyFolder*)folder)) + type = modest_tny_folder_get_local_folder_type ((TnyFolder*)folder); + else + type = tny_folder_get_folder_type (TNY_FOLDER (folder)); if (type == TNY_FOLDER_TYPE_UNKNOWN) { const gchar *folder_name; - folder_name = tny_folder_get_name (TNY_FOLDER (folder)); type = modest_tny_folder_guess_folder_type_from_name (folder_name); } diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 2976f09..a215936 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -1290,19 +1290,31 @@ modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view, set_active_account_from_tny_account (account, MODEST_WINDOW (main_window)); g_object_unref (account); } - + + if (tny_folder_get_all_count (TNY_FOLDER(folder_store)) == 0) + modest_main_window_set_contents_style (main_window, MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY); + else + modest_main_window_set_contents_style (main_window, MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS); + + + modest_widget_memory_save (modest_runtime_get_conf(), + G_OBJECT(header_view), + MODEST_CONF_HEADER_VIEW_KEY); /* Set folder on header view */ modest_header_view_set_folder (MODEST_HEADER_VIEW(header_view), TNY_FOLDER (folder_store), folder_refreshed_cb, - main_window); + main_window); + modest_widget_memory_restore (modest_runtime_get_conf(), + G_OBJECT(header_view), + MODEST_CONF_HEADER_VIEW_KEY); } else { /* Update the active account */ modest_window_set_active_account (MODEST_WINDOW (main_window), NULL); /* Do not show folder */ modest_widget_memory_save (conf, G_OBJECT (header_view), MODEST_CONF_HEADER_VIEW_KEY); modest_header_view_clear (MODEST_HEADER_VIEW(header_view)); - } + } } /* Update toolbar dimming state */ diff --git a/src/modest-widget-memory.c b/src/modest-widget-memory.c index 6b4b13b..1607ab7 100644 --- a/src/modest-widget-memory.c +++ b/src/modest-widget-memory.c @@ -293,8 +293,8 @@ save_settings_header_view (ModestConf *conf, ModestHeaderView *header_view, width = gtk_tree_view_column_get_width (col); sort = 0; if (sort_colid == col_id) - sort = (sort_type == GTK_SORT_ASCENDING) ? 1:-1; - + sort = (sort_type == GTK_SORT_ASCENDING) ? 1:0; + g_string_append_printf (str, "%d:%d:%d ", col_id, width, sort); cursor = g_list_next (cursor); } @@ -320,13 +320,12 @@ restore_settings_header_view (ModestConf *conf, ModestHeaderView *header_view, TnyFolder *folder; TnyFolderType type; ModestHeaderViewStyle style; - + folder = modest_header_view_get_folder (header_view); if (!folder || modest_header_view_is_empty (header_view)) return TRUE; /* no non-empty folder: no settings */ - type = modest_tny_folder_guess_folder_type (folder); - style = modest_header_view_get_style (header_view); + type = modest_tny_folder_guess_folder_type (folder); style = modest_header_view_get_style (header_view); key = _modest_widget_memory_get_keyname_with_double_type (name, type, style, MODEST_WIDGET_MEMORY_PARAM_COLUMN_WIDTH); @@ -340,6 +339,7 @@ restore_settings_header_view (ModestConf *conf, ModestHeaderView *header_view, cursor = data = modest_conf_get_string (conf, key, NULL); while (cursor && sscanf (cursor, "%d:%d:%d ", &col, &width, &sort) == 3) { + cols = g_list_append (cols, GINT_TO_POINTER(col)); colwidths = g_list_append (colwidths, GINT_TO_POINTER(width)); colsortables = g_list_append (colsortables, GINT_TO_POINTER(sort)); -- 1.7.9.5