akonadi
20 #include "itemsearchjob.h"
22 #include "imapparser_p.h"
23 #include "itemfetchscope.h"
25 #include "protocolhelper_p.h"
27 #include <QtCore/QTimer>
29 using namespace Akonadi;
31 class Akonadi::ItemSearchJobPrivate :
public JobPrivate
34 ItemSearchJobPrivate(
ItemSearchJob *parent,
const QString &query )
35 :
JobPrivate( parent ), mQuery( query ), mEmitTimer( 0 )
44 if ( !mPendingItems.isEmpty() ) {
46 emit q->itemsReceived( mPendingItems );
47 mPendingItems.clear();
56 Item::List mPendingItems;
61 :
Job( new ItemSearchJobPrivate( this, query ), parent )
65 d->mEmitTimer =
new QTimer(
this );
66 d->mEmitTimer->setSingleShot(
true );
67 d->mEmitTimer->setInterval( 100 );
68 connect( d->mEmitTimer, SIGNAL(timeout()),
this, SLOT(timeout()) );
69 connect(
this, SIGNAL(result(KJob*)),
this, SLOT(timeout()) );
87 d->mFetchScope = fetchScope;
94 return d->mFetchScope;
101 QByteArray command = d->newTag() +
" SEARCH ";
102 command += ImapParser::quote( d->mQuery.toUtf8() );
105 d->writeData( command );
113 int begin = data.indexOf(
"SEARCH" );
117 QList<QByteArray> fetchResponse;
118 ImapParser::parseParenthesizedList( data, fetchResponse, begin + 7 );
125 d->mItems.append( item );
126 d->mPendingItems.append( item );
127 if ( !d->mEmitTimer->isActive() )
128 d->mEmitTimer->start();
132 kDebug() <<
"Unhandled response: " << tag << data;
144 return QUrl( QLatin1String(
"http://akonadi-project.org/ontologies/aneo#akonadiItemId" ) );
147 #include "moc_itemsearchjob.cpp"
This file is part of the KDE documentation.
Documentation copyright © 1996-2013 The KDE developers.
Generated on Sat Jul 13 2013 01:27:38 by
doxygen 1.8.3.1 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.