Akonadi::ItemSearchJob

Search for usage in LXR

Akonadi::ItemSearchJob Class Reference

#include <itemsearchjob.h>

Inheritance diagram for Akonadi::ItemSearchJob:

Signals

void itemsReceived (const Akonadi::Item::List &items)
 
- Signals inherited from Akonadi::Job
void aboutToStart (Akonadi::Job *job)
 
void writeFinished (Akonadi::Job *job)
 
- Signals inherited from KJob
void description (KJob *job, const QString &title, const QPair< QString, QString > &field1=QPair< QString, QString >(), const QPair< QString, QString > &field2=QPair< QString, QString >())
 
void finished (KJob *job)
 
void infoMessage (KJob *job, const QString &message)
 
void percentChanged (KJob *job, unsigned long percent)
 
void processedAmountChanged (KJob *job, KJob::Unit unit, qulonglong amount)
 
void processedSize (KJob *job, qulonglong size)
 
void result (KJob *job)
 
void resumed (KJob *job)
 
void speed (KJob *job, unsigned long speed)
 
void suspended (KJob *job)
 
void totalAmountChanged (KJob *job, KJob::Unit unit, qulonglong amount)
 
void totalSize (KJob *job, qulonglong size)
 
void warning (KJob *job, const QString &message)
 

Public Member Functions

 ItemSearchJob (const SearchQuery &query, QObject *parent=nullptr)
 
 ItemSearchJob (QObject *parent=nullptr)
 
 ~ItemSearchJob () override
 
ItemFetchScopefetchScope ()
 
bool isRecursive () const
 
bool isRemoteSearchEnabled () const
 
Item::List items () const
 
QStringList mimeTypes () const
 
Collection::List searchCollections () const
 
void setFetchScope (const ItemFetchScope &fetchScope)
 
void setMimeTypes (const QStringList &mimeTypes)
 
void setQuery (const SearchQuery &query)
 
void setRecursive (bool recursive)
 
void setRemoteSearchEnabled (bool enabled)
 
void setSearchCollections (const Collection::List &collections)
 
void setTagFetchScope (const TagFetchScope &fetchScope)
 
TagFetchScopetagFetchScope ()
 
- Public Member Functions inherited from Akonadi::Job
 Job (QObject *parent=nullptr)
 
 ~Job () override
 
QString errorString () const final
 
void start () override
 
- Public Member Functions inherited from KCompositeJob
 KCompositeJob (QObject *parent=nullptr)
 
- Public Member Functions inherited from KJob
 KJob (QObject *parent=nullptr)
 
Capabilities capabilities () const
 
qint64 elapsedTime ()
 
int error () const
 
QString errorText () const
 
bool exec ()
 
bool isAutoDelete () const
 
bool isFinishedNotificationHidden () const
 
bool isStartedWithExec () const
 
bool isSuspended () const
 
unsigned long percent () const
 
Q_SCRIPTABLE qulonglong processedAmount (Unit unit) const
 
void setAutoDelete (bool autodelete)
 
void setFinishedNotificationHidden (bool hide=true)
 
void setUiDelegate (KJobUiDelegate *delegate)
 
Q_SCRIPTABLE qulonglong totalAmount (Unit unit) const
 
KJobUiDelegateuiDelegate () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
QBindable< QStringbindableObjectName ()
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo () const const
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isQuickItemType () const const
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_GADGET_EXPORT (EXPORT_MACRO)
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_MOC_INCLUDE Q_MOC_INCLUDE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setObjectName (QAnyStringView name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool setProperty (const char *name, QVariant &&value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds interval, Qt::TimerType timerType)
 
QThreadthread () const const
 

Protected Member Functions

bool doHandleResponse (qint64 tag, const Protocol::CommandPtr &response) override
 
void doStart () override
 
- Protected Member Functions inherited from Akonadi::Job
bool addSubjob (KJob *job) override
 
bool doKill () override
 
void emitWriteFinished ()
 
bool removeSubjob (KJob *job) override
 
- Protected Member Functions inherited from KCompositeJob
void clearSubjobs ()
 
bool hasSubjobs () const
 
const QList< KJob * > & subjobs () const
 
- Protected Member Functions inherited from KJob
virtual bool doResume ()
 
virtual bool doSuspend ()
 
void emitPercent (qulonglong processedAmount, qulonglong totalAmount)
 
void emitResult ()
 
void emitSpeed (unsigned long speed)
 
bool isFinished () const
 
void setCapabilities (Capabilities capabilities)
 
void setError (int errorCode)
 
void setErrorText (const QString &errorText)
 
void setPercent (unsigned long percentage)
 
void setProcessedAmount (Unit unit, qulonglong amount)
 
void setProgressUnit (Unit unit)
 
void setTotalAmount (Unit unit, qulonglong amount)
 
void startElapsedTimer ()
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Additional Inherited Members

- Public Types inherited from Akonadi::Job
enum  Error {
  ConnectionFailed = UserDefinedError , ProtocolVersionMismatch , UserCanceled , Unknown ,
  UserError = UserDefinedError + 42
}
 
using List = QList<Job *>
 
- Public Types inherited from KJob
typedef QFlags< CapabilityCapabilities
 
enum  Capability
 
enum  Unit
 
- Public Types inherited from QObject
typedef  QObjectList
 
- Properties inherited from QObject
 objectName
 
- Public Slots inherited from KJob
bool kill (KJob::KillVerbosity verbosity=KJob::Quietly)
 
bool resume ()
 
bool suspend ()
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from KJob
 Bytes
 
 Directories
 
 Files
 
 Items
 
 Killable
 
 NoCapabilities
 
 Suspendable
 
 UnitsCount
 
- Protected Slots inherited from Akonadi::Job
void slotResult (KJob *job) override
 
- Protected Slots inherited from KCompositeJob
virtual void slotInfoMessage (KJob *job, const QString &message)
 
virtual void slotResult (KJob *job)
 

Detailed Description

Job that searches for items in the Akonadi storage.

This job searches for items that match a given search query and returns the list of matching item.

query.addTerm(SearchTerm("From", "user1@domain.example", SearchTerm::CondEqual));
query.addTerm(SearchTerm("Date", QDateTime(QDate( 2014, 01, 27), QTime(00, 00, 00)), SearchTerm::CondGreaterThan);
auto job = new Akonadi::ItemSearchJob(query);
job->fetchScope().fetchFullPayload();
connect(job, &Akonadi::ItemSearchJob::result, this, &MyClass::searchResult));
...
MyClass::searchResult(KJob *job)
{
const Akonadi::Item::List items = searchJob->items();
for (const Akonadi::Item &item : items) {
// extract the payload and do further stuff
}
}
Job that searches for items in the Akonadi storage.
Item::List items() const
Returns the items that matched the search query.
Represents a PIM item stored in Akonadi storage.
Definition item.h:100
A query that can be passed to ItemSearchJob or others.
Search term represents the actual condition within query.
Definition searchquery.h:27
void result(KJob *job)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
T qobject_cast(QObject *object)
Author
Tobias Koenig tokoe.nosp@m.@kde.nosp@m..org
Since
4.4

Definition at line 53 of file itemsearchjob.h.

Constructor & Destructor Documentation

◆ ItemSearchJob() [1/2]

ItemSearchJob::ItemSearchJob ( QObject * parent = nullptr)
explicit

Creates an invalid search job.

Parameters
parentThe parent object.
Since
5.1

Definition at line 115 of file itemsearchjob.cpp.

◆ ItemSearchJob() [2/2]

ItemSearchJob::ItemSearchJob ( const SearchQuery & query,
QObject * parent = nullptr )
explicit

Creates an item search job.

Parameters
queryThe search query.
parentThe parent object.
Since
4.13

Definition at line 122 of file itemsearchjob.cpp.

◆ ~ItemSearchJob()

ItemSearchJob::~ItemSearchJob ( )
overridedefault

Destroys the item search job.

Member Function Documentation

◆ doHandleResponse()

bool ItemSearchJob::doHandleResponse ( qint64 tag,
const Protocol::CommandPtr & response )
overrideprotectedvirtual

This method should be reimplemented in the concrete jobs in case you want to handle incoming data.

It will be called on received data from the backend. The default implementation does nothing.

Parameters
tagThe tag of the corresponding command, empty if this is an untagged response.
responseThe received response
Returns
Implementations should return true if the last response was processed and the job can emit result. Return false if more responses from server are expected.

Reimplemented from Akonadi::Job.

Definition at line 237 of file itemsearchjob.cpp.

◆ doStart()

void ItemSearchJob::doStart ( )
overrideprotectedvirtual

This method must be reimplemented in the concrete jobs.

It will be called after the job has been started and a connection to the Akonadi backend has been established.

Implements Akonadi::Job.

Definition at line 214 of file itemsearchjob.cpp.

◆ fetchScope()

ItemFetchScope & ItemSearchJob::fetchScope ( )

Returns the item fetch scope.

Since this returns a reference it can be used to conveniently modify the current scope in-place, i.e. by calling a method on the returned reference without storing it in a local variable. See the ItemFetchScope documentation for an example.

Returns
a reference to the current item fetch scope
See also
setFetchScope() for replacing the current item fetch scope

Definition at line 145 of file itemsearchjob.cpp.

◆ isRecursive()

bool ItemSearchJob::isRecursive ( ) const
nodiscard

Returns whether the search is recursive.

Since
4.13

Definition at line 197 of file itemsearchjob.cpp.

◆ isRemoteSearchEnabled()

bool ItemSearchJob::isRemoteSearchEnabled ( ) const
nodiscard

Returns whether remote search is enabled.

Since
4.13

Definition at line 209 of file itemsearchjob.cpp.

◆ items()

Item::List ItemSearchJob::items ( ) const
nodiscard

Returns the items that matched the search query.

Definition at line 262 of file itemsearchjob.cpp.

◆ itemsReceived

void Akonadi::ItemSearchJob::itemsReceived ( const Akonadi::Item::List & items)
signal

This signal is emitted whenever new matching items have been fetched completely.

Note
This is an optimization, instead of waiting for the end of the job and calling items(), you can connect to this signal and get the items incrementally.
Parameters
itemsThe matching items.

◆ mimeTypes()

QStringList ItemSearchJob::mimeTypes ( ) const
nodiscard

Returns list of mime types to search in.

Since
4.13

Definition at line 185 of file itemsearchjob.cpp.

◆ searchCollections()

Collection::List ItemSearchJob::searchCollections ( ) const
nodiscard

Returns list of collections to search.

This list does not include child collections that will be searched when recursive search is enabled

Since
4.13

Definition at line 173 of file itemsearchjob.cpp.

◆ setFetchScope()

void ItemSearchJob::setFetchScope ( const ItemFetchScope & fetchScope)

Sets the item fetch scope.

The ItemFetchScope controls how much of an matching item's data is fetched from the server, e.g. whether to fetch the full item payload or only meta data.

Parameters
fetchScopeThe new scope for item fetch operations.
See also
fetchScope()

Definition at line 138 of file itemsearchjob.cpp.

◆ setMimeTypes()

void ItemSearchJob::setMimeTypes ( const QStringList & mimeTypes)

Search only for items of given mime types.

Since
4.13

Definition at line 178 of file itemsearchjob.cpp.

◆ setQuery()

void ItemSearchJob::setQuery ( const SearchQuery & query)

Sets the search query.

Since
4.13

Definition at line 131 of file itemsearchjob.cpp.

◆ setRecursive()

void ItemSearchJob::setRecursive ( bool recursive)

Sets whether the search should recurse into collections.

When set to true, all child collections of the specific collections will be search recursively.

Parameters
recursiveWhether to search recursively
Since
4.13

Definition at line 190 of file itemsearchjob.cpp.

◆ setRemoteSearchEnabled()

void ItemSearchJob::setRemoteSearchEnabled ( bool enabled)

Sets whether resources should be queried too.

When set to true, Akonadi will search local indexed items and will also query resources that support server-side search, to forward the query to remote storage (for example using SEARCH feature on IMAP servers) and merge their results with results from local index.

This is useful especially when searching resources, that don't fetch full payload by default, for example the IMAP resource, which only fetches headers by default and the body is fetched on demand, which means that emails that were not yet fully fetched cannot be indexed in local index, and thus cannot be searched. With remote search, even those emails can be included in search results.

This feature is disabled by default.

Results are streamed back to client as they are received from queried sources, so this job can take some time to finish, but will deliver initial results from local index fairly quickly.

Parameters
enabledWhether remote search is enabled
Since
4.13

Definition at line 202 of file itemsearchjob.cpp.

◆ setSearchCollections()

void ItemSearchJob::setSearchCollections ( const Collection::List & collections)

Search only in given collections.

When recursive search is enabled, all child collections of each specified collection will be searched too

By default all collections are be searched.

Parameters
collectionsCollections to search
Since
4.13

Definition at line 166 of file itemsearchjob.cpp.

◆ setTagFetchScope()

void ItemSearchJob::setTagFetchScope ( const TagFetchScope & fetchScope)

Sets the tag fetch scope.

The tag fetch scope affects what scope of tags for each Item will be retrieved.

Definition at line 152 of file itemsearchjob.cpp.

◆ tagFetchScope()

TagFetchScope & ItemSearchJob::tagFetchScope ( )

Returns the tag fetch scope.

Since this returns a reference it can be used to conveniently modify the current scope in-place.

Definition at line 159 of file itemsearchjob.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Nov 1 2024 18:51:23 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.