[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 131098] IMAP - all messages are marked as new even "sent"
From:       Carsten Burghardt <burghardt () kde ! org>
Date:       2006-07-23 21:00:55
Message-ID: 20060723210055.8072.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=131098         
burghardt kde org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From burghardt kde org  2006-07-23 23:00 -------
SVN commit 565605 by burghard:

Revert Till's fix as it breaks the detection of read messages.
BUGS: 131098
CCMAIL: adam kde org


 M  +14 -6     kmfolderimap.cpp  


--- branches/KDE/3.5/kdepim/kmail/kmfolderimap.cpp #565604:565605
 @ -1383,13 +1383,21  @
 void KMFolderImap::flagsToStatus(KMMsgBase *msg, int flags, bool newMsg)
 {
   const KMMsgStatus oldStatus = msg->status();
+  // Set flags if they are new
+  if ( (flags & 4) && (oldStatus & KMMsgStatusFlag) == 0 )
+    msg->setStatus( KMMsgStatusFlag );
+  if ( (flags & 2) && (oldStatus & KMMsgStatusReplied) == 0 )
+    msg->setStatus( KMMsgStatusReplied );
+  if ( (flags & 1) && (oldStatus & KMMsgStatusOld) == 0 )
+    msg->setStatus( KMMsgStatusOld );
+
   // Toggle flags if they changed
-  if ( ( (flags & 4) > 0 ) != ( (oldStatus & KMMsgStatusFlag) > 0 ) )
-    msg->toggleStatus( KMMsgStatusFlag );
-  if ( ( (flags & 2) > 0 ) != ( (oldStatus & KMMsgStatusReplied) > 0 ) )
-    msg->toggleStatus( KMMsgStatusReplied );
-  if ( ( (flags & 1) > 0 ) != ( (oldStatus & KMMsgStatusOld) > 0 ) )
-    msg->toggleStatus( KMMsgStatusOld );
+//  if ( ( (flags & 4) > 0 ) != ( (oldStatus & KMMsgStatusFlag) > 0 ) )
+//    msg->toggleStatus( KMMsgStatusFlag );
+//  if ( ( (flags & 2) > 0 ) != ( (oldStatus & KMMsgStatusReplied) > 0 ) )
+//    msg->toggleStatus( KMMsgStatusReplied );
+//  if ( ( (flags & 1) > 0 ) != ( (oldStatus & KMMsgStatusOld) > 0 ) )
+//    msg->toggleStatus( KMMsgStatusOld );
 
   // In case the message does not have the seen flag set, override our local
   // notion that it is read. Otherwise the count of unread messages and the
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic