Get correct unread count in VINBOX in MIMP
authorMichael M Slusarz <slusarz@curecanti.org>
Tue, 4 May 2010 09:59:34 +0000 (03:59 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 4 May 2010 16:25:17 +0000 (10:25 -0600)
imp/lib/Mailbox.php
imp/mailbox.php

index 48ed337..02c922c 100644 (file)
@@ -374,9 +374,16 @@ class IMP_Mailbox
      */
     protected function _msgFlagSearch($type, $results, $uid)
     {
-        $count = $results == Horde_Imap_Client::SORT_RESULTS_COUNT;
+        $count = ($results == Horde_Imap_Client::SORT_RESULTS_COUNT);
 
         if ($this->_searchmbox || empty($this->_sorted)) {
+            if ($count &&
+                $this->_searchmbox &&
+                ($type == 'unseen') &&
+                $GLOBALS['injector']->getInstance('IMP_Search')->isVINBOXFolder($this->_mailbox)) {
+                return $this->getMessageCount();
+            }
+
             return $count ? 0 : array();
         }
 
index 42dd0cc..3a03095 100644 (file)
@@ -303,17 +303,10 @@ if ($preview_tooltip) {
     $strip_preview = $prefs->getValue('preview_strip_nl');
 }
 
-$vtrash = null;
-if ($search_mbox) {
-    $unread = 0;
-    if ($imp_search->isVINBOXFolder()) {
-        $unread = $imp_mailbox->getMessageCount();
-    } elseif ($imp_search->isVTrashFolder()) {
-        $vtrash = $imp_search->createSearchID($search_mbox);
-    }
-} else {
-    $unread = $imp_mailbox->unseenMessages(Horde_Imap_Client::SORT_RESULTS_COUNT);
-}
+$unread = $imp_mailbox->unseenMessages(Horde_Imap_Client::SORT_RESULTS_COUNT);
+$vtrash = $imp_search->isVTrashFolder()
+    ? $imp_search->createSearchID($search_mbox)
+    : null;
 
 horde::addInlineScript(array(
     'ImpMailbox.unread = ' . intval($unread)