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()18 MailDirRemoveReadMessages::MailDirRemoveReadMessages()
19     : MailDir()
20 {
21 }
22 
runTest()23 void 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