diff --git a/src/job/markallmessagesasreadinfolderandsubfolderjob.cpp b/src/job/markallmessagesasreadinfolderandsubfolderjob.cpp index 0f05b273e..94d7b7339 100644 --- a/src/job/markallmessagesasreadinfolderandsubfolderjob.cpp +++ b/src/job/markallmessagesasreadinfolderandsubfolderjob.cpp @@ -19,9 +19,11 @@ */ #include "markallmessagesasreadinfolderandsubfolderjob.h" -#include #include "kmail_debug.h" +#include +#include + MarkAllMessagesAsReadInFolderAndSubFolderJob::MarkAllMessagesAsReadInFolderAndSubFolderJob(QObject *parent) : QObject(parent) { @@ -39,11 +41,18 @@ void MarkAllMessagesAsReadInFolderAndSubFolderJob::setTopLevelCollection(const A void MarkAllMessagesAsReadInFolderAndSubFolderJob::start() { if (mTopLevelCollection.isValid()) { - PimCommon::FetchRecursiveCollectionsJob *fetchJob = new PimCommon::FetchRecursiveCollectionsJob(this); - fetchJob->setTopCollection(mTopLevelCollection); - connect(fetchJob, &PimCommon::FetchRecursiveCollectionsJob::fetchCollectionFailed, this, &MarkAllMessagesAsReadInFolderAndSubFolderJob::slotFetchCollectionFailed); - connect(fetchJob, &PimCommon::FetchRecursiveCollectionsJob::fetchCollectionFinished, this, &MarkAllMessagesAsReadInFolderAndSubFolderJob::slotFetchCollectionDone); - fetchJob->start(); + auto fetchJob = new Akonadi::CollectionFetchJob(mTopLevelCollection, Akonadi::CollectionFetchJob::Recursive, this); + fetchJob->fetchScope().setAncestorRetrieval(Akonadi::CollectionFetchScope::All); + connect(fetchJob, &Akonadi::CollectionFetchJob::finished, + this, [this](KJob *job) { + if (job->error()) { + qCWarning(KMAIL_LOG) << job->errorString(); + slotFetchCollectionFailed(); + } else { + auto fetch = static_cast(job); + slotFetchCollectionDone(fetch->collections()); + } + }); } else { qCDebug(KMAIL_LOG()) << "Invalid toplevel collection"; deleteLater(); diff --git a/src/job/removeduplicatemessageinfolderandsubfolderjob.cpp b/src/job/removeduplicatemessageinfolderandsubfolderjob.cpp index 6134f4556..a24a4c923 100644 --- a/src/job/removeduplicatemessageinfolderandsubfolderjob.cpp +++ b/src/job/removeduplicatemessageinfolderandsubfolderjob.cpp @@ -19,12 +19,13 @@ */ #include "removeduplicatemessageinfolderandsubfolderjob.h" -#include #include "kmail_debug.h" #include #include #include #include +#include +#include RemoveDuplicateMessageInFolderAndSubFolderJob::RemoveDuplicateMessageInFolderAndSubFolderJob(QObject *parent, QWidget *parentWidget) : QObject(parent) @@ -39,11 +40,18 @@ RemoveDuplicateMessageInFolderAndSubFolderJob::~RemoveDuplicateMessageInFolderAn void RemoveDuplicateMessageInFolderAndSubFolderJob::start() { if (mTopLevelCollection.isValid()) { - PimCommon::FetchRecursiveCollectionsJob *fetchJob = new PimCommon::FetchRecursiveCollectionsJob(this); - fetchJob->setTopCollection(mTopLevelCollection); - connect(fetchJob, &PimCommon::FetchRecursiveCollectionsJob::fetchCollectionFailed, this, &RemoveDuplicateMessageInFolderAndSubFolderJob::slotFetchCollectionFailed); - connect(fetchJob, &PimCommon::FetchRecursiveCollectionsJob::fetchCollectionFinished, this, &RemoveDuplicateMessageInFolderAndSubFolderJob::slotFetchCollectionDone); - fetchJob->start(); + auto fetchJob = new Akonadi::CollectionFetchJob(mTopLevelCollection, Akonadi::CollectionFetchJob::Recursive, this); + fetchJob->fetchScope().setAncestorRetrieval(Akonadi::CollectionFetchScope::All); + connect(fetchJob, &Akonadi::CollectionFetchJob::result, + this, [this](KJob *job) { + if (job->error()) { + qCWarning(KMAIL_LOG) << job->errorString(); + slotFetchCollectionFailed(); + } else { + auto fetch = static_cast(job); + slotFetchCollectionDone(fetch->collections()); + } + }); } else { qCDebug(KMAIL_LOG()) << "Invalid toplevel collection"; deleteLater();