diff options
author | alecpl <alec@alec.pl> | 2011-09-18 09:02:35 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2011-09-18 09:02:35 +0000 |
commit | 609d3923d7dc674263ddea990387dbf5488fabc6 (patch) | |
tree | 8d7be69aa280e7d5848a23d2215fb85688514d4e /program/include/rcube_imap.php | |
parent | 30f50556c130e272d9eb6ddcd11ea70a18a4e711 (diff) |
- Cache synchronization using QRESYNC/CONDSTORE
- Fixed message ID updates in cache
- Changed message flags handling + some fixes (e.g. fixed messages listing after delete)
Diffstat (limited to 'program/include/rcube_imap.php')
-rw-r--r-- | program/include/rcube_imap.php | 19 |
1 files changed, 17 insertions, 2 deletions
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; @@ -3517,6 +3519,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) * * @return string Space-separated list of header names |