aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-disco-folder.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2002-05-15 14:33:01 +0800
committerMichael Zucci <zucchi@src.gnome.org>2002-05-15 14:33:01 +0800
commitaabe9bd070a1ff9d7981743311d542457a60b987 (patch)
treeb6cd1b9b6a087cef9ee2f61ca98e59e7bbef08bb /camel/camel-disco-folder.c
parentd92240a7413c519e4b001eb54b667257a4f8c9ca (diff)
downloadgsoc2013-evolution-aabe9bd070a1ff9d7981743311d542457a60b987.tar.gz
gsoc2013-evolution-aabe9bd070a1ff9d7981743311d542457a60b987.tar.zst
gsoc2013-evolution-aabe9bd070a1ff9d7981743311d542457a60b987.zip
removed. (imap_store_refresh_folders): Copy the folders first, then
2002-05-15 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-store.c (refresh_folder_info): removed. (imap_store_refresh_folders): Copy the folders first, then refresh them, outside of the cache_lock, which could cause deadlocks because of a workaround for crappo exchange. (imap_disconnect_online): Dont pass an exception to LOGOUT command. The required response 'BYE' always sets an exception when we call LOGOUT. This also interfered with a lot of other processing causing partial failures and messed up offline/online state. * camel-disco-folder.c (disco_prepare_for_offline): Do progress reporting. svn path=/trunk/; revision=16797
Diffstat (limited to 'camel/camel-disco-folder.c')
-rw-r--r--camel/camel-disco-folder.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/camel/camel-disco-folder.c b/camel/camel-disco-folder.c
index 965ceb0864..3d3d9212bd 100644
--- a/camel/camel-disco-folder.c
+++ b/camel/camel-disco-folder.c
@@ -275,21 +275,33 @@ disco_prepare_for_offline (CamelDiscoFolder *disco_folder,
GPtrArray *uids;
int i;
+ camel_operation_start(NULL, _("Preparing folder '%s' for offline"), folder->full_name);
+
if (expression)
uids = camel_folder_search_by_expression (folder, expression, ex);
else
uids = camel_folder_get_uids (folder);
- if (!uids)
+
+ if (!uids) {
+ camel_operation_end(NULL);
return;
+ }
+
for (i = 0; i < uids->len; i++) {
+ int pc = i * 100 / uids->len;
+
camel_disco_folder_cache_message (disco_folder, uids->pdata[i], ex);
+ camel_operation_progress(NULL, pc);
if (camel_exception_is_set (ex))
break;
}
+
if (expression)
camel_folder_search_free (folder, uids);
else
camel_folder_free_uids (folder, uids);
+
+ camel_operation_end(NULL);
}
/**