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/

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to