aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog8
-rw-r--r--mail/em-folder-tree.c13
2 files changed, 20 insertions, 1 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 163dc0d638..e94f1c5c87 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,11 @@
+2004-05-27 Jeffrey Stedfast <fejj@novell.com>
+
+ * em-folder-tree.c (emft_get_folder_info__got): Instead of
+ removing the "Loading..." row for toplevel folder nodes on failure
+ (which indicates a failure conenct to the server, most likely),
+ collapse the store node so that if the user expands the store
+ node, it will automagically try connecting again. Fixes bug #57493.
+
2004-05-27 Rodney Dawes <dobey@novell.com>
* Makefile.am (EXTRA_DIST): Add $(error_i18n)
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index b2b78418b2..2ba92fb2e8 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -1583,6 +1583,7 @@ emft_get_folder_info__got (struct _mail_msg *mm)
CamelFolderInfo *fi;
GtkTreeStore *model;
GtkTreePath *path;
+ gboolean is_store;
gboolean load;
/* check that we haven't been destroyed */
@@ -1607,6 +1608,7 @@ emft_get_folder_info__got (struct _mail_msg *mm)
/* make sure we still need to load the tree subfolders... */
gtk_tree_model_get ((GtkTreeModel *) model, &root,
COL_BOOL_LOAD_SUBDIRS, &load,
+ COL_BOOL_IS_STORE, &is_store,
-1);
if (!load) {
if (priv->do_multiselect && m->select_uri)
@@ -1629,7 +1631,16 @@ emft_get_folder_info__got (struct _mail_msg *mm)
if (fi == NULL) {
/* no children afterall... remove the "Loading..." placeholder node */
emft_update_model_expanded_state (priv, &root, FALSE);
- gtk_tree_store_remove (model, &iter);
+
+ if (is_store) {
+ path = gtk_tree_model_get_path ((GtkTreeModel *) model, &root);
+ gtk_tree_view_collapse_row (priv->treeview, path);
+ emft_queue_save_state (m->emft);
+ gtk_tree_path_free (path);
+ return;
+ } else {
+ gtk_tree_store_remove (model, &iter);
+ }
} else {
int fully_loaded = (m->flags & CAMEL_STORE_FOLDER_INFO_RECURSIVE) ? TRUE : FALSE;