From 609d3923d7dc674263ddea990387dbf5488fabc6 Mon Sep 17 00:00:00 2001 From: alecpl Date: Sun, 18 Sep 2011 09:02:35 +0000 Subject: - Cache synchronization using QRESYNC/CONDSTORE - Fixed message ID updates in cache - Changed message flags handling + some fixes (e.g. fixed messages listing after delete) --- program/include/rcube_imap.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'program/include/rcube_imap.php') diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index d9549affd..e9dafbf9e 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -813,7 +813,7 @@ class rcube_imap $mailbox = $this->mailbox; } - return $this->_list_headers($mailbox, $page, $sort_field, $sort_order, false, $slice); + return $this->_list_headers($mailbox, $page, $sort_field, $sort_order, $slice); } @@ -1086,7 +1086,7 @@ class rcube_imap if (!empty($parents)) { $headers[$idx]->parent_uid = end($parents); - if (!$header->seen) + if (empty($header->flags['SEEN'])) $headers[$parents[0]]->unread_children++; } array_push($parents, $header->uid); @@ -3421,6 +3421,8 @@ class rcube_imap if ($this->conn->selected != $mailbox) { if ($this->conn->select($mailbox)) $this->mailbox = $mailbox; + else + return null; } $data = $this->conn->data; @@ -3516,6 +3518,19 @@ class rcube_imap } + /** + * Synchronizes messages cache. + * + * @param string $mailbox Folder name + */ + public function mailbox_sync($mailbox) + { + if ($mcache = $this->get_mcache_engine()) { + $mcache->synchronize($mailbox); + } + } + + /** * Get message header names for rcube_imap_generic::fetchHeader(s) * -- cgit v1.2.3