Akonadi::CollectionDeleteJob Class

class Akonadi::CollectionDeleteJob

Job that deletes a collection in the Akonadi storage. More...

Header: #include <Akonadi/CollectionDeleteJob>
CMake: find_package(KPim6 REQUIRED COMPONENTS AkonadiCore)
target_link_libraries(mytarget PRIVATE KPim6::AkonadiCore)
Inherits: Akonadi::Job

Public Functions

CollectionDeleteJob(const Akonadi::Collection &collection, QObject *parent = nullptr)
virtual ~CollectionDeleteJob() override

Detailed Description

This job deletes a collection and all its sub-collections as well as all associated content.

 Akonadi::Collection collection = ...

 auto job = new Akonadi::CollectionDeleteJob(collection);
 connect(job, &KJob::result, this, &MyClass::deletionResult);

Note: This job deletes the data from the backend storage. To delete the collection from the Akonadi storage only, leaving the backend storage unchanged, delete the Agent instead, as follows. Note that if it's a sub-collection, deleting the agent will also delete its parent collection; in this case the only option is to delete the sub-collection data in both Akonadi and backend storage.

 const auto instance = Akonadi::AgentManager::self()->instance(collection.resource());
 if (instance.isValid()) {
     Akonadi::AgentManager::self()->removeInstance(instance);
 }

Author: Volker Krause <vkrause@kde.org>

Member Function Documentation

[explicit] CollectionDeleteJob::CollectionDeleteJob(const Akonadi::Collection &collection, QObject *parent = nullptr)

Creates a new collection delete job. The collection needs to either have a unique identifier or a remote identifier set. Note that using a remote identifier only works in a resource context (that is from within ResourceBase), as remote identifiers are not guaranteed to be globally unique.

collection The collection to delete. parent The parent object.

[override virtual noexcept] CollectionDeleteJob::~CollectionDeleteJob()

Destroys the collection delete job.