1 /* 2 SPDX-FileCopyrightText: 2009 Igor Trindade Oliveira <igor_trindade@yahoo.com.br> 3 based on kdepimlibs/akonadi/tests/benchmarker.cpp wrote by Robert Zwerus <arzie@dds.nl> 4 5 SPDX-License-Identifier: LGPL-2.0-or-later 6 */ 7 8 #include "maildirremovereadmessages.h" 9 #include <QDebug> 10 11 #include <Akonadi/CollectionFetchJob> 12 #include <Akonadi/CollectionFetchScope> 13 #include <Akonadi/ItemDeleteJob> 14 #include <Akonadi/ItemFetchJob> 15 16 using namespace Akonadi; 17 MailDirRemoveReadMessages()18MailDirRemoveReadMessages::MailDirRemoveReadMessages() 19 : MailDir() 20 { 21 } 22 runTest()23void MailDirRemoveReadMessages::runTest() 24 { 25 timer.start(); 26 qDebug() << " Removing read messages from every folder."; 27 auto clj4 = new CollectionFetchJob(Collection::root(), CollectionFetchJob::Recursive); 28 clj4->fetchScope().setResource(currentInstance.identifier()); 29 clj4->exec(); 30 const Collection::List list4 = clj4->collections(); 31 for (const Collection &collection : list4) { 32 auto ifj = new ItemFetchJob(collection, this); 33 ifj->exec(); 34 const auto items = ifj->items(); 35 for (const Item &item : items) { 36 // delete read messages 37 if (item.hasFlag("\\SEEN")) { 38 auto idj = new ItemDeleteJob(item, this); 39 idj->exec(); 40 } 41 } 42 } 43 outputStats(QStringLiteral("removereaditems")); 44 } 45