Akonadi::SpecialCollections Class

class Akonadi::SpecialCollections

An interface to special collections. More...

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

Public Functions

virtual ~SpecialCollections() override
Akonadi::Collection collection(const QByteArray &type, const Akonadi::AgentInstance &instance) const
Akonadi::Collection defaultCollection(const QByteArray &type) const
bool hasCollection(const QByteArray &type, const Akonadi::AgentInstance &instance) const
bool hasDefaultCollection(const QByteArray &type) const
bool isSpecialAgent(const QString &instanceIdentifier) const
bool registerCollection(const QByteArray &type, const Akonadi::Collection &collection)
bool unregisterCollection(const Akonadi::Collection &collection)

Signals

void collectionsChanged(const Akonadi::AgentInstance &instance)
void defaultCollectionsChanged()

Static Public Members

void setSpecialCollectionType(const QByteArray &type, const Akonadi::Collection &collection)
void unsetSpecialCollection(const Akonadi::Collection &collection)

Protected Functions

SpecialCollections(KCoreConfigSkeleton *config, QObject *parent = nullptr)

Detailed Description

This class is the central interface to special collections like inbox or outbox in a mail resource or recent contacts in a contacts resource. The class is not meant to be used directly, but to inherit the a type specific special collections class from it (e.g. SpecialMailCollections).

To check whether a special collection is available, simply use the hasCollection() and hasDefaultCollection() methods. Available special collections are accessible through the collection() and defaultCollection() methods.

To create a special collection, use a SpecialCollectionsRequestJob. This will create the special collections you request and automatically register them with SpecialCollections, so that it now knows they are available.

This class monitors all special collections known to it, and removes it from the known list if they are deleted. Note that this class does not automatically rebuild the collections that disappeared.

The defaultCollectionsChanged() and collectionsChanged() signals are emitted when the special collections for a resource change (i.e. some became available or some become unavailable).

Author: Constantin Berzan <exit3219@gmail.com>

Member Function Documentation

[explicit protected] SpecialCollections::SpecialCollections(KCoreConfigSkeleton *config, QObject *parent = nullptr)

Creates a new special collections object.

config The configuration skeleton that provides the default resource id. parent The parent object.

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

Destroys the special collections object.

Akonadi::Collection SpecialCollections::collection(const QByteArray &type, const Akonadi::AgentInstance &instance) const

Returns the special collection of the given type in the given agent instance, or an invalid collection if such a collection is unknown.

[signal] void SpecialCollections::collectionsChanged(const Akonadi::AgentInstance &instance)

Emitted when the special collections for a resource have been changed (for example, some become available, or some become unavailable).

instance The instance of the resource the collection belongs to.

Akonadi::Collection SpecialCollections::defaultCollection(const QByteArray &type) const

Returns the special collection of given type in the default resource, or an invalid collection if such a collection is unknown.

[signal] void SpecialCollections::defaultCollectionsChanged()

Emitted when the special collections for the default resource have been changed (for example, some become available, or some become unavailable).

bool SpecialCollections::hasCollection(const QByteArray &type, const Akonadi::AgentInstance &instance) const

Returns whether the given agent instance has a special collection of the given type.

bool SpecialCollections::hasDefaultCollection(const QByteArray &type) const

Returns whether the default resource has a special collection of the given type.

bool SpecialCollections::isSpecialAgent(const QString &instanceIdentifier) const

Returns whether the instanceIdentifier is a special agent that should not be deleted.

bool SpecialCollections::registerCollection(const QByteArray &type, const Akonadi::Collection &collection)

Registers the given collection as a special collection with the given type. type the special type of \ collection collection the given collection to register The collection must be owned by a valid resource. Registering a new collection of a previously registered type forgets the old collection.

[static] void SpecialCollections::setSpecialCollectionType(const QByteArray &type, const Akonadi::Collection &collection)

Sets the special collection attribute which marks collection as being a special collection of type type. This is typically used by configuration dialog for resources, when the user can choose a specific special collection (ex: IMAP trash).

bool SpecialCollections::unregisterCollection(const Akonadi::Collection &collection)

Unregisters the given collection as a special collection. type the special type of \ collection

[static] void SpecialCollections::unsetSpecialCollection(const Akonadi::Collection &collection)

unsets the special collection attribute which marks collection as being a special collection.