summaryrefslogtreecommitdiff
path: root/src/leap/mail/imap/memorystore.py
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2014-02-25 22:38:29 -0400
committerKali Kaneko <kali@leap.se>2014-02-27 11:44:54 -0400
commit733994d68b9f3ce528b552f67e9cbec005e57e9f (patch)
treeef69432c768ff7045616f409fe3709377f410fed /src/leap/mail/imap/memorystore.py
parent8a9e4239cfd4c8fc87721de41037dce566c67de5 (diff)
rename all fdocs when folder is renamed
Diffstat (limited to 'src/leap/mail/imap/memorystore.py')
-rw-r--r--src/leap/mail/imap/memorystore.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/leap/mail/imap/memorystore.py b/src/leap/mail/imap/memorystore.py
index 6206468..d383b79 100644
--- a/src/leap/mail/imap/memorystore.py
+++ b/src/leap/mail/imap/memorystore.py
@@ -1244,6 +1244,27 @@ class MemoryStore(object):
"""
self.permanent_store.set_mbox_closed(mbox, closed)
+ # Rename flag-documents
+
+ def rename_fdocs_mailbox(self, old_mbox, new_mbox):
+ """
+ Change the mailbox name for all flag documents in a given mailbox.
+ Used from account.rename
+
+ :param old_mbox: name for the old mbox
+ :type old_mbox: str or unicode
+ :param new_mbox: name for the new mbox
+ :type new_mbox: str or unicode
+ """
+ fs = self._fdoc_store
+ keys = fs[old_mbox].keys()
+ for k in keys:
+ fdoc = fs[old_mbox][k]
+ fdoc['mbox'] = new_mbox
+ fs[new_mbox][k] = fdoc
+ fs[old_mbox].pop(k)
+ self._dirty.add((new_mbox, k))
+
# Dump-to-disk controls.
@property