本文整理汇总了C++中ItemFetchJob::setProperty方法的典型用法代码示例。如果您正苦于以下问题:C++ ItemFetchJob::setProperty方法的具体用法?C++ ItemFetchJob::setProperty怎么用?C++ ItemFetchJob::setProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ItemFetchJob
的用法示例。
在下文中一共展示了ItemFetchJob::setProperty方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: itemAdded
void CalendarResource::itemAdded(const Akonadi::Item &item, const Akonadi::Collection &collection)
{
if ((!collection.contentMimeTypes().contains(KCalCore::Event::eventMimeType()) &&
!collection.contentMimeTypes().contains(KCalCore::Todo::todoMimeType())) ||
(!canPerformTask<KCalCore::Event::Ptr>(item, KCalCore::Event::eventMimeType()) &&
!canPerformTask<KCalCore::Todo::Ptr>(item, KCalCore::Todo::todoMimeType()))) {
return;
}
if (collection.parentCollection() == Akonadi::Collection::root()) {
cancelTask(i18n("The top-level collection cannot contain any tasks or events"));
return;
}
KGAPI2::Job *job = Q_NULLPTR;
if (item.hasPayload<KCalCore::Event::Ptr>()) {
KCalCore::Event::Ptr event = item.payload<KCalCore::Event::Ptr>();
EventPtr kevent(new Event(*event));
kevent->setUid(QLatin1String(""));
job = new EventCreateJob(kevent, collection.remoteId(), account(), this);
} else if (item.hasPayload<KCalCore::Todo::Ptr>()) {
KCalCore::Todo::Ptr todo = item.payload<KCalCore::Todo::Ptr>();
TaskPtr ktodo(new Task(*todo));
ktodo->setUid(QLatin1String(""));
if (!ktodo->relatedTo(KCalCore::Incidence::RelTypeParent).isEmpty()) {
Akonadi::Item parentItem;
parentItem.setGid(ktodo->relatedTo(KCalCore::Incidence::RelTypeParent));
ItemFetchJob *fetchJob = new ItemFetchJob(parentItem, this);
fetchJob->setProperty(ITEM_PROPERTY, QVariant::fromValue(item));
fetchJob->setProperty(TASK_PROPERTY, QVariant::fromValue(ktodo));
connect(fetchJob, &ItemFetchJob::finished, this, &CalendarResource::slotTaskAddedSearchFinished);
return;
} else {
job = new TaskCreateJob(ktodo, collection.remoteId(), account(), this);
}
} else {
cancelTask(i18n("Invalid payload type"));
return;
}
job->setProperty(ITEM_PROPERTY, QVariant::fromValue(item));
connect(job, &EventCreateJob::finished, this, &CalendarResource::slotCreateJobFinished);
}
示例2: send
void TransportResourceBasePrivate::send(Item::Id id)
{
ItemFetchJob *job = new ItemFetchJob(Item(id));
job->fetchScope().fetchFullPayload();
job->setProperty("id", QVariant(id));
connect(job, &KJob::result, this, &TransportResourceBasePrivate::fetchResult);
}
示例3: itemRemoved
void CalendarResource::itemRemoved(const Akonadi::Item &item)
{
if (!canPerformTask()) {
return;
}
if (item.mimeType() == KCalCore::Event::eventMimeType()) {
KGAPI2::Job *job = new EventDeleteJob(item.remoteId(), item.parentCollection().remoteId(), account(), this);
job->setProperty(ITEM_PROPERTY, QVariant::fromValue(item));
connect(job, &EventCreateJob::finished, this, &CalendarResource::slotGenericJobFinished);
} else if (item.mimeType() == KCalCore::Todo::todoMimeType()) {
/* Google always automatically removes tasks with all their subtasks. In KOrganizer
* by default we only remove the item we are given. For this reason we have to first
* fetch all tasks, find all sub-tasks for the task being removed and detach them
* from the task. Only then the task can be safely removed. */
ItemFetchJob *fetchJob = new ItemFetchJob(item.parentCollection());
fetchJob->setAutoDelete(true);
fetchJob->fetchScope().fetchFullPayload(true);
fetchJob->setProperty(ITEM_PROPERTY, qVariantFromValue(item));
connect(fetchJob, &ItemFetchJob::finished, this, &CalendarResource::slotRemoveTaskFetchJobFinished);
fetchJob->start();
} else {
cancelTask(i18n("Invalid payload type. Expected event or todo, got %1", item.mimeType()));
}
}