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 }