summaryrefslogtreecommitdiff
path: root/program/include/rcube_imap.php
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-09-18 09:02:35 +0000
committeralecpl <alec@alec.pl>2011-09-18 09:02:35 +0000
commit609d3923d7dc674263ddea990387dbf5488fabc6 (patch)
tree8d7be69aa280e7d5848a23d2215fb85688514d4e /program/include/rcube_imap.php
parent30f50556c130e272d9eb6ddcd11ea70a18a4e711 (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.php19
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