On 03/13/12 11:37, Mildred Ki'Lya wrote: > - As you said, the code needs some more work (the tokens shall > autoupdate, for example) -- I know that you're aware of that, I just > want to document this. It should also be pretty easy, the > Imap::Mailbox::Model will emit a dataChanged() for the message's index > when the flags change (and also under other circumstances). > > > I just implemented that, feels great.
Hi Mildred, there turned out to be a performance problem with this approach. The code did not check whether the index which got changed was actually the one of the current message, and would update the TagListWidget anyway. This was not an issue before, but now I've added an explicit dataChanged() when flags of any message change (which is required for proper operation of the GUI when displaying threads), including during the mailbox sync. As a result of that, when I opened a message, left it visible in the message view and switched to another mailbox with, say, 10k of messages, the TagListWidget would be updated 10k times. Just FYI; I haven't noticed that when reviewing, either. Changed in 344bc91b25e9b0a9c28bcd017ade191e8a1ac32f. > I thought that these special flags (starting with \ or $) should be > hidden by default. But I did not implement that. Not that this is a huge issue, but it enables users to click on the [x] button for system flags like \Recent which leads to the IMAP server responding with a BAD response (which essentially means "hey you, client, you've sent some garbage here"). I've opened a bugreport [1] for that. Would you like to change that, or would you prefer me to finalize this? I'd like to release 0.3 in a week, and I'd prefer to have this fix included. With kind regards, Jan [1] https://projects.flaska.net/issues/462 -- Trojita, a fast e-mail client -- http://trojita.flaska.net/
signature.asc
Description: OpenPGP digital signature
