Akonadi::MimeTypeChecker

Akonadi::MimeTypeChecker Class Reference

#include <mimetypechecker.h>

Public Member Functions

 MimeTypeChecker ()
 
 MimeTypeChecker (const MimeTypeChecker &other)
 
 ~MimeTypeChecker ()
 
void addWantedMimeType (const QString &mimeType)
 
bool containsWantedMimeType (const QStringList &mimeTypes) const
 
bool hasWantedMimeTypes () const
 
bool isWantedCollection (const Collection &collection) const
 
bool isWantedItem (const Item &item) const
 
bool isWantedMimeType (const QString &mimeType) const
 
MimeTypeCheckeroperator= (const MimeTypeChecker &other)
 
void removeWantedMimeType (const QString &mimeType)
 
void setWantedMimeTypes (const QStringList &mimeTypes)
 
QStringList wantedMimeTypes () const
 

Static Public Member Functions

static bool isWantedCollection (const Collection &collection, const QString &wantedMimeType)
 
static bool isWantedItem (const Item &item, const QString &wantedMimeType)
 

Detailed Description

Helper for checking MIME types of Collections and Items.

When it is necessary to decide whether an item has a certain MIME type or whether a collection can contain a certain MIME type, direct string comparison might not render the desired result because MIME types can have aliases and be a node in an "inheritance" hierarchy.

For example a check like this

if ( item.mimeType() == QLatin1String( "text/directory" ) )

would fail to detect "text/x-vcard" as being the same MIME type.

Note
KDE deals with this inside the KMimeType framework, this class is just a convenience helper for common Akonadi related checks.

Example: Checking whether an Akonadi::Item is contact MIME type

if ( checker.isWantedItem( item ) ){
// item.mimeType() is equal KContacts::Addressee::mimeType(), an aliases
// or a sub type.
}

Example: Checking whether an Akonadi::Collection could contain calendar items

checker.addWantedMimeType( QLatin1String( "text/calendar" ) );
if ( checker.isWantedCollection( collection ) ) {
// collection.contentMimeTypes() contains @c "text/calendar"
// or a sub type.
}

Example: Checking whether an Akonadi::Collection could contain Calendar Event items (i.e. KCal::Event), making use of the respective MIME type "subclassing" provided by Akonadi's MIME type extensions.

checker.addWantedMimeType( QLatin1String( "application/x-vnd.akonadi.calendar.event" ) );
if ( checker.isWantedCollection( collection ) ) {
// collection.contentMimeTypes() contains @c "application/x-vnd.akonadi.calendar.event"
// or a sub type, but just containing @c "text/calendar" would not
// get here
}

Example: Checking for items of more than one MIME type and treat one of them specially.

This class is implicitly shared.

Author
Kevin Krammer kevin[email protected].kra[email protected][email protected][email protected]gmx.[email protected]at
Since
4.3

Definition at line 97 of file mimetypechecker.h.

Constructor & Destructor Documentation

MimeTypeChecker::MimeTypeChecker ( )

Creates an empty MIME type checker.

An empty checker will not report any items or collections as wanted.

Definition at line 16 of file mimetypechecker.cpp.

MimeTypeChecker::MimeTypeChecker ( const MimeTypeChecker other)

Creates a new MIME type checker from an other.

Definition at line 21 of file mimetypechecker.cpp.

MimeTypeChecker::~MimeTypeChecker ( )

Destroys the MIME type checker.

Definition at line 26 of file mimetypechecker.cpp.

Member Function Documentation

void MimeTypeChecker::addWantedMimeType ( const QString mimeType)

Adds another MIME type to the list of wanted MIME types this instance checks against.

Parameters
mimeTypeThe MIME types to add to the checklist.
See also
setWantedMimeTypes()

Definition at line 58 of file mimetypechecker.cpp.

bool MimeTypeChecker::containsWantedMimeType ( const QStringList mimeTypes) const

Checks whether any of the given MIME types is covered by one of the wanted MIME types.

Parameters
mimeTypesThe MIME types to check.
Returns
true if any of the MIME types in mimeTypes is coverd by one of the wanted MIME types, false otherwise.
Since
4.6

Definition at line 169 of file mimetypechecker.cpp.

bool MimeTypeChecker::hasWantedMimeTypes ( ) const

Checks whether any wanted MIME types are set.

Returns
true if any wanted MIME types are set, false otherwise.
Since
5.6.43

Definition at line 44 of file mimetypechecker.cpp.

bool MimeTypeChecker::isWantedCollection ( const Collection collection) const

Checks whether a given collection has one of the wanted MIME types.

Parameters
collectionThe collection to check the content MIME types of.
Returns
true if one of the collection content MIME types is one of the wanted ones, false if non is, the collection is invalid or has an empty content MIME type list.
See also
setWantedMimeTypes()
Collection::contentMimeTypes()

Definition at line 82 of file mimetypechecker.cpp.

bool MimeTypeChecker::isWantedCollection ( const Collection collection,
const QString wantedMimeType 
)
static

Checks whether a given collection has the given MIME type.

Parameters
collectionThe collection to check the content MIME types of.
wantedMimeTypeThe MIME type to check against.
Returns
true if one of the collection content MIME types is the given wanted one, false if it isn't, the collection is invalid or has an empty content MIME type list.
See also
setWantedMimeTypes()
Collection::contentMimeTypes()

Definition at line 130 of file mimetypechecker.cpp.

bool MimeTypeChecker::isWantedItem ( const Item &  item) const

Checks whether a given item has one of the wanted MIME types.

Parameters
itemThe item to check the MIME type of.
Returns
true if the item MIME type is one of the wanted ones, false if it isn't, the item is invalid or has an empty MIME type.
See also
setWantedMimeTypes()
Item::mimeType()

Definition at line 68 of file mimetypechecker.cpp.

bool MimeTypeChecker::isWantedItem ( const Item &  item,
const QString wantedMimeType 
)
static

Checks whether a given item has the given wanted MIME type.

Parameters
itemThe item to check the MIME type of.
wantedMimeTypeThe MIME type to check against.
Returns
true if the item MIME type is the given one, false if it isn't, the item is invalid or has an empty MIME type.
See also
setWantedMimeTypes()
Item::mimeType()

Definition at line 106 of file mimetypechecker.cpp.

bool MimeTypeChecker::isWantedMimeType ( const QString mimeType) const

Checks whether a given mime type is covered by one of the wanted MIME types.

Parameters
mimeTypeThe mime type to check.
Returns
true if the mime type mimeType is coverd by one of the wanted MIME types, false otherwise.
Since
4.6

Definition at line 164 of file mimetypechecker.cpp.

MimeTypeChecker & MimeTypeChecker::operator= ( const MimeTypeChecker other)

Assigns the other to this checker and returns a reference to this checker.

Definition at line 30 of file mimetypechecker.cpp.

void MimeTypeChecker::removeWantedMimeType ( const QString mimeType)

Removes a MIME type from the list of wanted MIME types this instance checks against.

Parameters
mimeTypeThe MIME type to remove from the checklist.
See also
addWantedMimeType()

Definition at line 63 of file mimetypechecker.cpp.

void MimeTypeChecker::setWantedMimeTypes ( const QStringList mimeTypes)

Sets the list of wanted MIME types this instance checks against.

Parameters
mimeTypesThe list of MIME types to check against.
See also
wantedMimeTypes()

Definition at line 49 of file mimetypechecker.cpp.

QStringList MimeTypeChecker::wantedMimeTypes ( ) const

Returns the list of wanted MIME types this instance checks against.

Note
Don't use this just to check whether there are any wanted mimetypes. It is much faster to call hasWantedMimeTypes() instead for that purpose.
See also
setWantedMimeTypes(), hasWantedMimeTypes()

Definition at line 39 of file mimetypechecker.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Wed Sep 23 2020 23:17:34 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.