[Kde-pim] Review Request: Convert RemoveDuplicatesCommand to RemoveDuplicatesJob and expose as public API

Dan Vrátil dvratil at redhat.com
Mon Nov 5 16:25:56 GMT 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/107219/
-----------------------------------------------------------

Review request for KDEPIM-Libraries.


Description
-------

This patch ports RemoveDuplicatesCommand to be an Akonadi::Job and exposes the job as part of public API.

Functionality is preserved (*), I just made it cancellable and added some job status notification.

This is needed in order to be able to implement a visual feedback for removing duplicates in KMail (I'll post another review for that). Right now when you click the action in KMail, there is no indication of progress or operation running and that's wrong, because users have no idea what's going on. The job is fetching items with full payload so the operation can take A LOT of time on big folders and there is no way to finding out what's going on or even interrupt the operation.


*) However I think that the current implementation is insufficient - my use case was to remove duplicates of cross-mailinglist posts that my filters duplicated into multiple folders. Message-IDs of the messages are identical, however some headers and bodies are slightly different (different footers appended by mailman, different List-Id header etc) and thus the messages were not recognized as duplicates. My idea was that if the List-Id header is present (=> a ML-post), then comparing only Message-Id, Date and From headers would be sufficient, as it's essentially impossible for one person to send two emails at the same time with the same Message-Id but with different content to two mailing lists.


Diffs
-----

  akonadi/kmime/CMakeLists.txt c00c5e5 
  akonadi/kmime/removeduplicatescommand.cpp c46b445 
  akonadi/kmime/removeduplicatescommand_p.h 1a19462 
  akonadi/kmime/removeduplicatesjob.h PRE-CREATION 
  akonadi/kmime/removeduplicatesjob.cpp PRE-CREATION 
  akonadi/kmime/standardmailactionmanager.h c900d95 
  akonadi/kmime/standardmailactionmanager.cpp a8cdc1e 
  includes/Akonadi/KMime/RemoveDuplicatesJob PRE-CREATION 

Diff: http://git.reviewboard.kde.org/r/107219/diff/


Testing
-------

Created duplicates in a folder, selected the folder, clicked Folder->Remove duplicates in KMail, duplicates were removed as expected.


Thanks,

Dan Vrátil

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


More information about the kde-pim mailing list