#include <modest-account-mgr-helpers.h>
#include <modest-tny-platform-factory.h>
#include <modest-tny-folder.h>
+#include <modest-init.h>
#include <widgets/modest-header-view.h>
#include <widgets/modest-msg-view.h>
#include <widgets/modest-folder-view.h>
if (modest_conf_key_exists (conf, key, NULL)) {
pos = modest_conf_get_int (conf, key, NULL);
gtk_paned_set_position (paned, pos);
+ } else {
+ /* The initial position must follow the 30/70 rule */
+ gtk_paned_set_position (paned, GTK_WIDGET(paned)->requisition.width/3);
}
g_free (key);
MODEST_WIDGET_MEMORY_PARAM_COLUMN_WIDTH);
cursor = cols = modest_header_view_get_columns (header_view);
+ if (!cols) {
+ g_warning ("DEBUG: %s: modest_header_view_get_columns() returned NULL.",
+ __FUNCTION__);
+ }
+
str = g_string_new (NULL);
/* NOTE: the exact details of this format are important, as they
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);
}
- modest_conf_set_string (conf, key, str->str, NULL);
+ if ((str->str == NULL) || (strlen(str->str) == 0)) {
+ /* TODO: Find out why this happens sometimes. */
+ g_warning ("DEBUG: %s: Attempting to write an empty value to "
+ "gconf key %s. Preventing.", __FUNCTION__, key);
+ }
+ else
+ modest_conf_set_string (conf, key, str->str, NULL);
g_free (key);
g_string_free (str, TRUE);
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);
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));
}
g_free (data);
+ /* Use defaults if gconf has no, or empty information: */
+ /* We don't know why the value is empty sometimes. */
+ if (g_list_length(cols) == 0) {
+ g_warning("%s: gconf key %s was empty. Using default column IDs.\n",
+ __FUNCTION__, key);
+ g_list_free (cols);
+ cols = NULL;
+ }
+
+ if (!cols)
+ cols = modest_init_get_default_header_view_column_ids (type, style);
+
if (cols) {
GList *viewcolumns, *colcursor, *widthcursor, *sortablecursor;
modest_header_view_set_columns (header_view, cols, type);
gchar *key;
const gchar* account_id;
- /* Restore the visible account */
+ /* Save the visible account */
key = _modest_widget_memory_get_keyname (name, "visible_server_account_id");
account_id = modest_folder_view_get_account_id_of_visible_server_account (folder_view);
if (account_id)
modest_conf_set_string (conf, key, account_id, NULL);
-
+ else
+ modest_conf_remove_key (conf, key, NULL);
g_free (key);
return TRUE;