void SentActionHandler::itemFetchResult(KJob *job) { if (job->error()) { qCWarning(MAILDISPATCHER_LOG) << job->errorText(); return; } Akonadi::ItemFetchJob *fetchJob = qobject_cast<Akonadi::ItemFetchJob *>(job); if (fetchJob->items().isEmpty()) { return; } Akonadi::Item item = fetchJob->items().at(0); const SentActionAttribute::Action::Type type = static_cast<SentActionAttribute::Action::Type>(job->property("type").toInt()); if (type == SentActionAttribute::Action::MarkAsReplied) { item.setFlag(Akonadi::MessageFlags::Replied); } else if (type == SentActionAttribute::Action::MarkAsForwarded) { item.setFlag(Akonadi::MessageFlags::Forwarded); } Akonadi::ItemModifyJob *modifyJob = new Akonadi::ItemModifyJob(item); modifyJob->setIgnorePayload(true); }
void EmptyTrashCommand::slotExpungeJob(KJob *job) { if (job->error()) { Util::showJobError(job); emitResult(Failed); return; } Akonadi::ItemFetchJob *fjob = qobject_cast<Akonadi::ItemFetchJob *>(job); if (!fjob) { emitResult(Failed); return; } const Akonadi::Item::List lstItem = fjob->items(); if (lstItem.isEmpty()) { emitResult(OK); return; } Akonadi::ItemDeleteJob *jobDelete = new Akonadi::ItemDeleteJob(lstItem, this); connect(jobDelete, &Akonadi::ItemDeleteJob::result, this, &EmptyTrashCommand::slotDeleteJob); }
void CollectionMailingListPage::slotFetchDone(KJob *job) { mDetectButton->setEnabled(true); if (MailCommon::Util::showJobErrorMessage(job)) { return; } Akonadi::ItemFetchJob *fjob = qobject_cast<Akonadi::ItemFetchJob *>(job); Q_ASSERT(fjob); Akonadi::Item::List items = fjob->items(); const int maxchecks = 5; int num = items.size(); for (int i = --num; (i > num - maxchecks) && (i >= 0); --i) { Akonadi::Item item = items[i]; if (item.hasPayload<KMime::Message::Ptr>()) { KMime::Message::Ptr message = item.payload<KMime::Message::Ptr>(); mMailingList = MessageCore::MailingList::detect(message); if (mMailingList.features() & MailingList::Post) { break; } } } if (!(mMailingList.features() & MailingList::Post)) { if (mMailingList.features() == MailingList::None) { KMessageBox::error(this, i18n("KMail was unable to detect any mailing list in this folder.")); } else { KMessageBox::error(this, i18n("KMail was unable to fully detect a mailing list in this folder. " "Please fill in the addresses by hand.")); } } else { mMLId->setText((mMailingList.id().isEmpty() ? i18n("Not available.") : mMailingList.id())); fillEditBox(); } }