void AlarmDialog::slotCalendarChanged() { Akonadi::Item::List incidences = mCalendar->incidences(); for ( Akonadi::Item::List::ConstIterator it = incidences.constBegin(); it != incidences.constEnd(); ++it ) { ReminderListItem *item = searchByItem( *it ); if ( item ) { Incidence::Ptr incidence = CalendarSupport::incidence( *it ); QString displayStr; // Yes, alarms can be empty, if someone edited the incidence and removed all alarms if ( !incidence->alarms().isEmpty() ) { const KDateTime dateTime = triggerDateForIncidence( incidence, item->mRemindAt, displayStr ); const QString summary = cleanSummary( incidence->summary() ); if ( displayStr != item->text( 1 ) || summary != item->text( 0 ) ) { item->setText( 1, displayStr ); item->setText( 0, summary ); } } } } }
Akonadi::Item::List Serializer::filterDescendantItems(const Akonadi::Item::List &potentialChildren, const Akonadi::Item &ancestorItem) { if (potentialChildren.isEmpty()) return Akonadi::Item::List(); Akonadi::Item::List itemsToProcess = potentialChildren; Q_ASSERT(ancestorItem.isValid() && ancestorItem.hasPayload<KCalCore::Todo::Ptr>()); KCalCore::Todo::Ptr todo = ancestorItem.payload<KCalCore::Todo::Ptr>(); const auto bound = std::partition(itemsToProcess.begin(), itemsToProcess.end(), [ancestorItem, todo](Akonadi::Item currentItem) { return (!currentItem.hasPayload<KCalCore::Todo::Ptr>() || currentItem == ancestorItem || currentItem.payload<KCalCore::Todo::Ptr>()->relatedTo() != todo->uid()); }); Akonadi::Item::List itemsRemoved; std::copy(itemsToProcess.begin(), bound, std::back_inserter(itemsRemoved)); itemsToProcess.erase(itemsToProcess.begin(), bound); auto result = std::accumulate(itemsToProcess.begin(), itemsToProcess.end(), Akonadi::Item::List(), [this, itemsRemoved](Akonadi::Item::List result, Akonadi::Item currentItem) { result << currentItem; return result += filterDescendantItems(itemsRemoved, currentItem); }); return result; }
Akonadi::Item::List MergeContactWidgetList::listSelectedContacts() const { Akonadi::Item::List lstItems; for (int i = 0; i < count(); ++i) { QListWidgetItem *itemWidget = item(i); if (itemWidget->checkState() == Qt::Checked) { lstItems.append((static_cast<MergeContactWidgetListItem *>(itemWidget))->item()); } } return lstItems; }
Akonadi::Item::List SalesforceContactsHandler::itemsFromListEntriesResponse(const TNS__QueryResult &queryResult, const Akonadi::Collection &parentCollection) { Akonadi::Item::List items; Q_FOREACH (const ENS__SObject &entry, queryResult.records()) { const QList<KDSoapValue> valueList = entry.any(); if (valueList.isEmpty()) { kWarning() << "Contacts entry for id=" << entry.id().value() << "has no values"; kDebug() << "fieldsToNull:" << entry.fieldsToNull(); continue; } Akonadi::Item item; item.setRemoteId(entry.id().value()); item.setParentCollection(parentCollection); item.setMimeType(KABC::Addressee::mimeType()); KABC::Addressee addressee; addressee.setUid(entry.id().value()); QList<KDSoapValue>::const_iterator it = valueList.constBegin(); QList<KDSoapValue>::const_iterator endIt = valueList.constEnd(); for (; it != endIt; ++it) { ContactAccessorHash::const_iterator accessorIt = mAccessors->constFind(it->name()); if (accessorIt != mAccessors->constEnd()) { if (accessorIt->isAvailable) { accessorIt->setter(it->value().value<QString>(), addressee); } } else { kWarning() << "Contacts entry for id=" << entry.id().value() << "has unknown value named" << it->name(); } } item.setPayload<KABC::Addressee>(addressee); items << item; } kDebug() << "Query result had" << items.count() << "valid contact items"; return items; }
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 DocumentsHandler::getExtraInformation(Akonadi::Item::List &items) { for (int pos = 0; pos < items.count(); ++pos) { Akonadi::Item &item = items[pos]; if (!item.hasPayload<SugarDocument>()) { qCCritical(FATCRM_SUGARCRMRESOURCE_LOG) << "item (id=" << item.id() << ", remoteId=" << item.remoteId() << ", mime=" << item.mimeType() << ") is missing Document payload"; continue; } SugarDocument document = item.payload<SugarDocument>(); bool update = false; KDSoapGenerated::TNS__Select_fields selectedFields; selectedFields.setItems({QStringLiteral("id")}); // Get the Account(s) related to this document // http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_6.5/Application_Framework/Web_Services/Method_Calls/get_relationships/ // http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_6.5/Application_Framework/Web_Services/Examples/REST/PHP/Retrieving_Related_Records/ KDSoapGenerated::TNS__Get_entry_result_version2 result = mSession->soap()->get_relationships(sessionId(), QStringLiteral("Documents"), document.id(), moduleToName(Module::Accounts).toLower(), {}, selectedFields, {}, 0 /*deleted*/, QString(), 0 /*offset*/, 0 /*limit*/); QStringList linkedAccountIds; Q_FOREACH (const KDSoapGenerated::TNS__Entry_value& entry, result.entry_list().items()) { linkedAccountIds.append(entry.id()); } if (!linkedAccountIds.isEmpty()) { document.setLinkedAccountIds(linkedAccountIds); update = true; } QStringList linkedOpportunityIds; result = mSession->soap()->get_relationships(sessionId(), QStringLiteral("Documents"), document.id(), moduleToName(Module::Opportunities).toLower(), {}, selectedFields, {}, 0 /*deleted*/, QString(), 0 /*offset*/, 0 /*limit*/); Q_FOREACH (const KDSoapGenerated::TNS__Entry_value &entry, result.entry_list().items()) { linkedOpportunityIds.append(entry.id()); } if (!linkedOpportunityIds.isEmpty()) { document.setLinkedOpportunityIds(linkedOpportunityIds); update = true; } if (update) { item.setPayload<SugarDocument>(document); } } }
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(); } }
KMime::Message::Ptr TagConverter::createMessage(const Akonadi::Tag &tag, const Akonadi::Item::List &items, const QString &username) { QStringList itemRemoteIds; itemRemoteIds.reserve(items.count()); for (const Akonadi::Item &item : items) { const QString memberUrl = KolabHelpers::createMemberUrl(item, username); if (!memberUrl.isEmpty()) { itemRemoteIds << memberUrl; } } // save message to the server. const QLatin1String productId("Akonadi-Kolab-Resource"); const KMime::Message::Ptr message = Kolab::KolabObjectWriter::writeTag(tag, itemRemoteIds, Kolab::KolabV3, productId); return message; }
void NotesRepository::slotNotesReceived(const Akonadi::Item::List &items) { mNotesLoaded += items.count(); foreach(const Akonadi::Item &item, items) { storeNote(item); }