diff options
author | Not Zed <NotZed@Ximian.com> | 2002-05-15 14:33:01 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2002-05-15 14:33:01 +0800 |
commit | aabe9bd070a1ff9d7981743311d542457a60b987 (patch) | |
tree | b6cd1b9b6a087cef9ee2f61ca98e59e7bbef08bb /camel/camel-disco-folder.c | |
parent | d92240a7413c519e4b001eb54b667257a4f8c9ca (diff) | |
download | gsoc2013-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.c | 14 |
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); } /** |