[geary/wip/366-remove-folders] Fix folders removed from the server never being removed
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/wip/366-remove-folders] Fix folders removed from the server never being removed
- Date: Wed, 17 Jul 2019 05:08:11 +0000 (UTC)
commit 9c8723ac2a905b93ba75ee1fbb183a56091f3a8c
Author: Michael Gratton <mike vee net>
Date: Wed Jul 17 15:06:41 2019 +1000
Fix folders removed from the server never being removed
Third time lucky at using BidiIterator correctly :(
src/client/application/application-controller.vala | 6 ++++--
src/engine/imap-engine/imap-engine-generic-account.vala | 6 ++++--
2 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/src/client/application/application-controller.vala
b/src/client/application/application-controller.vala
index ba244cf5..63973e8a 100644
--- a/src/client/application/application-controller.vala
+++ b/src/client/application/application-controller.vala
@@ -1348,8 +1348,8 @@ public class Application.Controller : Geary.BaseObject {
if (unavailable != null) {
Gee.BidirIterator<Geary.Folder> unavailable_iterator =
unavailable.bidir_iterator();
- unavailable_iterator.last();
- while (unavailable_iterator.previous()) {
+ bool has_prev = unavailable_iterator.last();
+ while (has_prev) {
Geary.Folder folder = unavailable_iterator.get();
main_window.folder_list.remove_folder(folder);
@@ -1376,6 +1376,8 @@ public class Application.Controller : Geary.BaseObject {
}
folder.special_folder_type_changed.disconnect(on_special_folder_type_changed);
+
+ has_prev = unavailable_iterator.previous();
}
}
}
diff --git a/src/engine/imap-engine/imap-engine-generic-account.vala
b/src/engine/imap-engine/imap-engine-generic-account.vala
index e734868f..2f0f5f45 100644
--- a/src/engine/imap-engine/imap-engine-generic-account.vala
+++ b/src/engine/imap-engine/imap-engine-generic-account.vala
@@ -1318,8 +1318,8 @@ internal class Geary.ImapEngine.UpdateRemoteFolders : AccountOperation {
Gee.BidirIterator<MinimalFolder> removed_iterator =
removed.bidir_iterator();
- removed_iterator.last();
- while (removed_iterator.previous()) {
+ bool has_prev = removed_iterator.last();
+ while (has_prev) {
MinimalFolder folder = removed_iterator.get();
try {
@@ -1328,6 +1328,8 @@ internal class Geary.ImapEngine.UpdateRemoteFolders : AccountOperation {
} catch (Error e) {
debug("Unable to locally delete removed folder %s: %s", folder.to_string(), e.message);
}
+
+ has_prev = removed_iterator.previous();
}
// Let the remote know as well
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]