本文整理汇总了C++中akonadi::Collection::contentMimeTypes方法的典型用法代码示例。如果您正苦于以下问题:C++ Collection::contentMimeTypes方法的具体用法?C++ Collection::contentMimeTypes怎么用?C++ Collection::contentMimeTypes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类akonadi::Collection
的用法示例。
在下文中一共展示了Collection::contentMimeTypes方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load
void CollectionGeneralPage::load(const Akonadi::Collection &collection)
{
init(collection);
mNameEdit->setEnabled(collection.rights() & Collection::CanChangeCollection);
const QString displayName = collection.displayName();
mNameEdit->setText(displayName);
mBlockAlarmsCheckBox->setChecked(collection.hasAttribute<BlockAlarmsAttribute>() && collection.attribute<BlockAlarmsAttribute>()->isEverythingBlocked());
QString iconName;
if (collection.hasAttribute<EntityDisplayAttribute>()) {
iconName = collection.attribute<EntityDisplayAttribute>()->iconName();
}
if (iconName.isEmpty()) {
const QStringList mimeTypes = collection.contentMimeTypes();
if (collection.contentMimeTypes().count() > 1 ||
collection.contentMimeTypes().contains(KCalCore::Event::eventMimeType())) {
mIconButton->setIcon(QIcon::fromTheme(QStringLiteral("view-pim-calendar")));
} else if (collection.contentMimeTypes().contains(KCalCore::Todo::todoMimeType())) {
mIconButton->setIcon(QIcon::fromTheme(QStringLiteral("view-pim-tasks")));
} else if (collection.contentMimeTypes().contains(KCalCore::Journal::journalMimeType())) {
mIconButton->setIcon(QIcon::fromTheme(QStringLiteral("view-pim-journal")));
} else if (mimeTypes.isEmpty()) {
mIconButton->setIcon(QIcon::fromTheme(QStringLiteral("folder-grey")));
} else {
mIconButton->setIcon(QIcon::fromTheme(QStringLiteral("folder")));
}
} else {
mIconButton->setIcon(iconName);
}
mIconCheckBox->setChecked(!iconName.isEmpty());
}
示例2: 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);
}
示例3: load
void CollectionInternalsPage::load(const Akonadi::Collection & col)
{
ui.idLabel->setText( QString::number( col.id() ) );
ui.ridEdit->setText( col.remoteId() );
ui.rrevEdit->setText( col.remoteRevision() );
ui.resourceLabel->setText( col.resource() );
ui.contentTypes->setItems( col.contentMimeTypes() );
ui.virtCheck->setChecked( col.isVirtual() );
}
示例4: retrieveItems
void CalendarResource::retrieveItems(const Akonadi::Collection &collection)
{
if (!canPerformTask()) {
return;
}
// https://bugs.kde.org/show_bug.cgi?id=308122: we can only request changes in
// max. last 25 days, otherwise we get an error.
int lastSyncDelta = -1;
if (!collection.remoteRevision().isEmpty()) {
lastSyncDelta = QDateTime::currentDateTimeUtc().toTime_t() - collection.remoteRevision().toUInt();
}
KGAPI2::Job *job = Q_NULLPTR;
if (collection.contentMimeTypes().contains(KCalCore::Event::eventMimeType())) {
EventFetchJob *fetchJob = new EventFetchJob(collection.remoteId(), account(), this);
if (lastSyncDelta > -1 && lastSyncDelta < 25 * 24 * 3600) {
fetchJob->setFetchOnlyUpdated(collection.remoteRevision().toULongLong());
}
if (!Settings::self()->eventsSince().isEmpty()) {
const QDate date = QDate::fromString(Settings::self()->eventsSince(), Qt::ISODate);
fetchJob->setTimeMin(QDateTime(date).toTime_t());
}
job = fetchJob;
} else if (collection.contentMimeTypes().contains(KCalCore::Todo::todoMimeType())) {
TaskFetchJob *fetchJob = new TaskFetchJob(collection.remoteId(), account(), this);
if (lastSyncDelta > -1 && lastSyncDelta < 25 * 25 * 3600) {
fetchJob->setFetchOnlyUpdated(collection.remoteRevision().toULongLong());
}
job = fetchJob;
} else {
itemsRetrieved(Item::List());
return;
}
job->setProperty(COLLECTION_PROPERTY, QVariant::fromValue(collection));
connect(job, &KGAPI2::Job::progress, this, &CalendarResource::emitPercent);
connect(job, &KGAPI2::Job::finished, this, &CalendarResource::slotItemsRetrieved);
}
示例5: filterAcceptsRow
bool CollectionFilterModel::filterAcceptsRow(int row, const QModelIndex &parent) const
{
bool accepted = true;
const QModelIndex index = sourceModel()->index(row, 0, parent);
const Akonadi::Collection collection = index.data(Akonadi::EntityTreeModel::CollectionRole).value<Akonadi::Collection>();
if (!collection.isValid()) {
return false;
}
if (!mContentMimeTypes.isEmpty()) {
QSet<QString> contentMimeTypes = collection.contentMimeTypes().toSet();
accepted = accepted && !(contentMimeTypes.intersect(mContentMimeTypes).isEmpty());
}
if (mRights != Akonadi::Collection::ReadOnly) {
accepted = accepted && (collection.rights() & mRights);
}
return accepted;
}
示例6: onTargetFetched
void CreateCommand::onTargetFetched(KJob *job)
{
if (job->error()!=0)
{
emit error(ki18nc("@info:shell",
"Cannot fetch parent collection '%1', %2")
.subs(mParentCollection)
.subs(job->errorString()).toString());
emit finished(RuntimeError);
return;
}
Q_ASSERT(job==mResolveJob);
Akonadi::Collection parentCollection = mResolveJob->collection();
Q_ASSERT(parentCollection.isValid());
// Warning for bug 319513
if ((mNewCollectionName=="cur") || (mNewCollectionName=="new") || (mNewCollectionName=="tmp"))
{
QString parentResource = parentCollection.resource();
if (parentResource.startsWith(QLatin1String("akonadi_maildir_resource")))
{
ErrorReporter::warning(i18n("Creating a maildir folder named '%1' may not work",
mNewCollectionName));
}
}
Akonadi::Collection newCollection;
newCollection.setParentCollection(parentCollection);
newCollection.setName(mNewCollectionName);
newCollection.setContentMimeTypes(parentCollection.contentMimeTypes());
if (!mDryRun)
{
CollectionCreateJob *createJob = new CollectionCreateJob(newCollection);
connect(createJob, SIGNAL(result(KJob *)), this, SLOT(onCollectionCreated(KJob *)));
}
示例7:
bool Akonadi::Serializer::isTaskCollection(Akonadi::Collection collection)
{
return collection.contentMimeTypes().contains(KCalCore::Todo::todoMimeType());
}