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

List:       kde-pim
Subject:    Re: [Kde-pim] Request to exclude KMail from the KDE 4.0 release
From:       Craig Howard <kde () choward ! ca>
Date:       2007-12-18 6:47:26
Message-ID: 200712172247.26444.kde () choward ! ca
[Download RAW message or body]

On Sunday 09 December 2007, Thomas McGuire wrote:
> Hi,
>
> I've seen some offers to help working on KMail. Thanks for that.
>
> I'm willing to help with this, so you can mail any questions or patches to
> me or this list, I'll do my best to answer them or help with any issues.

Well, starting with stuff that's broken for me...

When marking a message as seen using a webmail client, kmail still leaves the 
message marked as unread on my regular IMAP account.  This works on the 
initial load of the folder, but as soon as I switch away and come back, it's 
marked as unread again.  I'm not sure what causes that bug, but I'm hoping 
someone can point me in the correct direction.

From what I can tell, this other path follows the slotGetLastMessagesResult() 
branch, instead of the slotListFolderResult() branch.  The 
slotGetLastMessagesResult() eventually emits numUnreadMsgsChanged(), which 
causes postProcessNewMail() to run.  This is where I get a little lost.  I 
don't think I want to trace through the filters, as I think those are just 
the rules that the user creates.  So, this status field is obviously cached 
somewhere, but where?

I've attached my quick fix for the first issue.  I'm sure there's a better way 
to do this, so I'd appreciate comments.  BTW, what's the difference between 
KMMsgStatusOld and KMMsgStatusRead?
-- 

Craig Howard

["kmail-unread.patch" (text/x-diff)]

Index: kdepim/kmail/kmfolderimap.cpp
===================================================================
--- kdepim/kmail/kmfolderimap.cpp	(revision 749238)
+++ kdepim/kmail/kmfolderimap.cpp	(working copy)
@@ -1513,6 +1517,11 @@
     else
       msg->status().setUnread();
   }
+
+  // if the message is seen on the server, but we think it's new, mark it as read
+  if(flags & 1 && (msg->status().isNew() || msg->status().isUnread())) {
+    msg->status().setRead();
+  }
 }
 
 


_______________________________________________
KDE PIM mailing list kde-pim@kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/

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

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