File indexing completed on 2024-05-12 05:11:11
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/Collection> 0013 #include <Akonadi/Item> 0014 0015 class QAbstractItemModel; 0016 class KJob; 0017 namespace Akonadi 0018 { 0019 class MoveToTrashCommand : public CommandBase 0020 { 0021 Q_OBJECT 0022 public: 0023 MoveToTrashCommand(const QAbstractItemModel *model, const Akonadi::Item::List &msgList, QObject *parent = nullptr); 0024 MoveToTrashCommand(const QAbstractItemModel *model, const Akonadi::Collection::List &folders, QObject *parent = nullptr); 0025 0026 void execute() override; 0027 0028 private Q_SLOTS: 0029 void slotMoveDone(Akonadi::CommandBase::Result result); 0030 0031 private: 0032 void slotFetchDone(KJob *job); 0033 void moveMessages(); 0034 Akonadi::Collection trashCollectionFromResource(const Akonadi::Collection &col); 0035 Akonadi::Collection trashCollectionFolder(); 0036 Akonadi::Collection findTrashFolder(const Akonadi::Collection &folder); 0037 Akonadi::Collection collectionFromId(Collection::Id id) const; 0038 0039 Akonadi::Collection::List mFolders; 0040 Akonadi::Item::List mMessages; 0041 Akonadi::Collection::Id the_trashCollectionFolder; 0042 const QAbstractItemModel *mModel = nullptr; 0043 int mFolderListJobCount = 0; 0044 }; 0045 }