Akonadi::CollectionModifyJob Class
class Akonadi::CollectionModifyJobJob that modifies a collection in the Akonadi storage. More...
| Header: | #include <Akonadi/CollectionModifyJob> |
| CMake: | find_package(KPim6 REQUIRED COMPONENTS AkonadiCore)target_link_libraries(mytarget PRIVATE KPim6::AkonadiCore) |
| Inherits: | Akonadi::Job |
Public Functions
| CollectionModifyJob(const Akonadi::Collection &collection, QObject *parent = nullptr) | |
| virtual | ~CollectionModifyJob() override |
| Akonadi::Collection | collection() const |
Detailed Description
This job modifies the properties of an existing collection.
Akonadi::Collection collection = ... auto job = new Akonadi::CollectionModifyJob(collection); connect(job, &KJob::result, this, &MyClass::modifyResult);
If the collection has attributes, it is recommended only to supply values for any attributes whose values are to be updated. This will help to avoid potential clashes with other resources or applications which may happen to update the collection simultaneously. To avoid supplying attribute values which are not needed, create a new instance of the collection and explicitly set attributes to be updated, e.g.
// Update the 'MyAttribute' attribute of 'collection'. Akonadi::Collection c(collection.id()); auto attribute = c.attribute<MyAttribute>(Collection::AddIfMissing); if (collection.hasAttribute<MyAttribute>()) { *attribute = *collection.attribute<MyAttribute>(); } // Update the value of 'attribute' ... auto job = new Akonadi::CollectionModifyJob(c); connect(job, &KJob::result, this, &MyClass::modifyResult);
To update only the collection, and not change any attributes:
// Update the cache policy for 'collection' to 'newPolicy'. Akonadi::Collection c(collection.id()); c.setCachePolicy(newPolicy); auto job = new Akonadi::CollectionModifyJob(c); connect(job, &KJob::result, this, &MyClass::modifyResult);
Author: Volker Krause <vkrause@kde.org>
Member Function Documentation
[explicit] CollectionModifyJob::CollectionModifyJob(const Akonadi::Collection &collection, QObject *parent = nullptr)
Creates a new collection modify job for the given collection. The collection can be identified either by its unique identifier or its remote identifier. Since the remote identifier is not necessarily globally unique, identification by remote identifier only works inside a resource context (that is from within ResourceBase) and is therefore limited to one resource.
collection The collection to modify. parent The parent object.
[override virtual noexcept] CollectionModifyJob::~CollectionModifyJob()
Destroys the collection modify job.
Akonadi::Collection CollectionModifyJob::collection() const
Returns the modified collection.