From 609d3923d7dc674263ddea990387dbf5488fabc6 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Sun, 18 Sep 2011 05:02:35 -0400
Subject: [PATCH] - 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 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index d9549af..e9dafbf 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -813,7 +813,7 @@
             $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 @@
 
             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 @@
         if ($this->conn->selected != $mailbox) {
             if ($this->conn->select($mailbox))
                 $this->mailbox = $mailbox;
+            else
+                return null;
         }
 
         $data = $this->conn->data;
@@ -3517,6 +3519,19 @@
 
 
     /**
+     * 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

--
Gitblit v1.9.1