22 #include "contactgroupexpandjob.h"
24 #include <akonadi/contact/contactgroupsearchjob.h>
25 #include <akonadi/itemfetchjob.h>
26 #include <akonadi/itemfetchscope.h>
27 #include <akonadi/itemsearchjob.h>
29 using namespace Akonadi;
31 class ContactGroupExpandJob::Private
35 : mParent( parent ), mGroup( group ), mFetchCount( 0 )
40 : mParent( parent ), mName( name ), mFetchCount( 0 )
46 for (
unsigned int i = 0; i < mGroup.dataCount(); ++i ) {
47 const KABC::ContactGroup::Data data = mGroup.data( i );
49 KABC::Addressee contact;
50 contact.setNameFromString( data.name() );
51 contact.insertEmail( data.email(), true );
53 mContacts.append( contact );
56 for (
unsigned int i = 0; i < mGroup.contactReferenceCount(); ++i ) {
57 const KABC::ContactGroup::ContactReference reference = mGroup.contactReference( i );
61 job->setProperty(
"preferredEmail", reference.preferredEmail() );
63 mParent->connect( job, SIGNAL(result(KJob*)), mParent, SLOT(fetchResult(KJob*)) );
68 if ( mFetchCount == 0 )
69 mParent->emitResult();
72 void searchResult( KJob *job )
75 mParent->setError( job->error() );
76 mParent->setErrorText( job->errorText() );
77 mParent->emitResult();
84 mParent->emitResult();
92 void fetchResult( KJob *job )
97 if ( !items.isEmpty() ) {
98 const QString email = fetchJob->property(
"preferredEmail" ).toString();
100 const Item item = items.first();
102 KABC::Addressee contact = item.
payload<KABC::Addressee>();
103 if ( !email.isEmpty() )
104 contact.insertEmail( email,
true );
106 mContacts.append( contact );
108 kWarning() <<
"Contact for Akonadi item" << item.
id() <<
"does not exist anymore!";
113 if ( mFetchCount == 0 )
114 mParent->emitResult();
118 KABC::ContactGroup mGroup;
120 KABC::Addressee::List mContacts;
126 : KJob( parent ), d( new Private( group, this ) )
131 : KJob( parent ), d( new Private( name, this ) )
142 if ( !d->mName.isEmpty() && !d->mName.contains( QLatin1Char(
'@' ) ) ) {
147 connect( searchJob, SIGNAL(result(KJob*)),
this, SLOT(searchResult(KJob*)) );
158 #include "contactgroupexpandjob.moc"