Skip to content
  • Kevin Ottens's avatar
    Get rid of the reset/layoutChanged storm · a2855606
    Kevin Ottens authored
    Advertisement:
    Are you tired of loosing your selection in the message list when a
    filter moves a mail from your inbox to its final destination? Are you
    getting blind due to the favorite folders list flickering when a bulk of
    emails are moved around? Are you seeing strange crashes and kmail
    getting unresponsive when you move a big chunk of emails from one folder
    to another? Then this patch is made for you!
    
    Further explanations:
    Don't use the itemMoved() signals in the ETM for items anymore. It is
    the right solution long term, but short term it is not usable if all
    the proxy models around the ETM don't support the feature properly.
    
    Right now most (if not all) of our proxy models transform itemMoved()
    signals into layoutChanged() signals, and for instance when that
    reaches the message list it simply resets the whole message list model.
    
    Such a reset then happen for each of the item moved, potentially
    flooding the system with computations for threading, but also generating
    flickers in the favorite folders list or loosing the selection for the
    less dramatic cases.
    
    Downside:
    Because of the move speed up, you actually see the changes now, so the
    mails progressively disappearing from the source collection to appear in
    the destination collection. For this to disappear we need to compress
    the changes in bulks, which is ongoing work. But at least now it's
    faster and more usable.
    a2855606