akonadi/clients
storecommand.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "storecommand.h"
00021 #include "out.h"
00022
00023 #include <akonadi/itemmodifyjob.h>
00024 #include <akonadi/itemfetchjob.h>
00025 #include <akonadi/itemfetchscope.h>
00026
00027 using namespace Akonadi;
00028
00029 StoreCommand::StoreCommand(const QString & uid, const QString & content) :
00030 mUid( uid ), mContent( content )
00031 {
00032 }
00033
00034 void StoreCommand::exec()
00035 {
00036 const Item item( mUid.toLongLong() );
00037 ItemFetchJob* fetchJob = new ItemFetchJob( item );
00038 if ( !fetchJob->exec() ) {
00039 err() << "Error fetching item '" << mUid << "': "
00040 << fetchJob->errorString()
00041 << endl;
00042 } else {
00043 Item item = fetchJob->items()[0];
00044 item.setPayloadFromData( mContent.toUtf8() );
00045 ItemModifyJob* sJob = new ItemModifyJob( item );
00046 if ( !sJob->exec() ) {
00047 err() << "Unable to store data " << mContent << " for item " << mUid <<":"
00048 << sJob->errorString()
00049 << endl;
00050 }
00051 else
00052 out() << "Data stored for item " << mUid << endl;
00053 }
00054 }