File indexing completed on 2024-05-12 05:11:10

0001 /*
0002     SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>
0003     SPDX-FileCopyrightText: 2010 Andras Mantia <andras@kdab.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include "commandbase.h"
0011 
0012 #include <Akonadi/AgentInstance>
0013 #include <Akonadi/Collection>
0014 
0015 class QAbstractItemModel;
0016 namespace Akonadi
0017 {
0018 class EmptyTrashCommand : public CommandBase
0019 {
0020     Q_OBJECT
0021 
0022 public:
0023     EmptyTrashCommand(const QAbstractItemModel *model, QObject *parent);
0024     EmptyTrashCommand(const Akonadi::Collection &folder, QObject *parent);
0025     void execute() override;
0026 
0027 protected Q_SLOTS:
0028     void emitResult(Akonadi::CommandBase::Result result) override;
0029 
0030 private:
0031     void expunge(const Akonadi::Collection &col);
0032     Akonadi::AgentInstance::List agentInstances();
0033     Akonadi::Collection trashCollectionFolder();
0034     Akonadi::Collection collectionFromId(Akonadi::Collection::Id id) const;
0035     bool folderIsTrash(const Akonadi::Collection &col);
0036 
0037     const QAbstractItemModel *const mModel;
0038     Akonadi::Collection::Id the_trashCollectionFolder;
0039     Akonadi::Collection mFolder;
0040     int mNumberOfTrashToEmpty = 0;
0041 };
0042 }