7#include "expiremovejob.h"
8#include "akonadi/messageflags.h"
9#include "mailcommon_debug.h"
10#include <Akonadi/ItemModifyJob>
11#include <Akonadi/ItemMoveJob>
12#include <KLocalizedString>
13#include <PimCommon/BroadcastStatus>
15using PimCommon::BroadcastStatus;
17ExpireMoveJob::ExpireMoveJob(
QObject *parent)
22ExpireMoveJob::~ExpireMoveJob() =
default;
31 mRemovedMsgs = newRemovedMsgs;
34void ExpireMoveJob::start()
36 if (mRemovedMsgs.isEmpty()) {
37 qCDebug(MAILCOMMON_LOG) <<
"ExpireMoveJob: nothing to do. Bug ?";
43 for (
const Akonadi::Item &item : mRemovedMsgs) {
45 if (ids.
count() >= 100) {
46 auto job =
new Akonadi::ItemMoveJob(ids, mMoveToFolder,
this);
47 connect(job, &Akonadi::ItemMoveJob::result,
this, &ExpireMoveJob::slotMoveDone);
49 mRunningJobs.append(job);
55 auto job =
new Akonadi::ItemMoveJob(ids, mMoveToFolder,
this);
56 mRunningJobs.append(job);
57 connect(job, &Akonadi::ItemMoveJob::result,
this, &ExpireMoveJob::slotMoveDone);
61void ExpireMoveJob::finished()
67QString ExpireMoveJob::srcFolderName()
const
69 return mSrcFolderName;
72void ExpireMoveJob::setSrcFolderName(
const QString &newSrcFolderName)
74 mSrcFolderName = newSrcFolderName;
84 mMoveToFolder = newMoveToFolder;
87void ExpireMoveJob::slotMoveDone(
KJob *job)
99 for (Akonadi::Item item : lst) {
106 auto modifyJob =
new Akonadi::ItemModifyJob(newLst,
this);
107 modifyJob->disableRevisionCheck();
108 connect(modifyJob, &Akonadi::ItemModifyJob::result,
this, &ExpireMoveJob::slotExpireDone);
118void ExpireMoveJob::slotExpireDone(
KJob *job)
127 msg =
i18np(
"Moved 1 old message from folder %2 to folder %3.",
128 "Moved %1 old messages from folder %2 to folder %3.",
129 mRemovedMsgs.count(),
131 mMoveToFolder.name());
136 "Moving old messages from folder %1 to folder %2 was "
139 mMoveToFolder.name());
143 msg =
i18n(
"Moving old messages from folder %1 to folder %2 failed.", mSrcFolderName, mMoveToFolder.name());
147 mRunningJobs.removeOne(job);
148 if (mRunningJobs.isEmpty()) {
151 BroadcastStatus::instance()->setStatusMsg(msg);
154#include "moc_expiremovejob.cpp"
virtual QString errorString() const
QString i18np(const char *singular, const char *plural, const TYPE &arg...)
QString i18n(const char *text, const TYPE &arg...)
AKONADI_MIME_EXPORT const char Seen[]
void error(QWidget *parent, const QString &text, const QString &title, const KGuiItem &buttonOk, Options options=Notify)
void append(QList< T > &&value)
qsizetype count() const const
bool isEmpty() const const
void reserve(qsizetype size)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
T qobject_cast(QObject *object)