diff -r fcb676ca077d -r fdbe8253b596 messagingapp/msgui/unifiededitor/src/msgunieditorview.cpp --- a/messagingapp/msgui/unifiededitor/src/msgunieditorview.cpp Wed Sep 01 14:19:13 2010 +0530 +++ b/messagingapp/msgui/unifiededitor/src/msgunieditorview.cpp Tue Sep 07 13:28:39 2010 +0530 @@ -1266,6 +1266,17 @@ return msgId; } +bool MsgUnifiedEditorView::handleKeyEvent(int key) +{ + bool eventHandled = false; + if (Qt::Key_Yes == key && mSendAction->isEnabled()) { + eventHandled = true; + send(); + } + + return eventHandled; +} + void MsgUnifiedEditorView::resizeEvent( QGraphicsSceneResizeEvent * event ) { Q_UNUSED(event) @@ -1293,22 +1304,31 @@ QContactManager* contactManager = new QContactManager("symbian"); CntServicesContactList cntServicesContacts = qVariantValue(value); int cntCount = cntServicesContacts.count(); + + QCRITICAL_WRITE_FORMAT("servicecontactlist count:",cntCount); + QList contactList; for(int i = 0; i < cntCount; i++ ) - { + { contactList << contactManager->contact( cntServicesContacts.at(i).mContactId ); } delete contactManager; - + // get list of all versit-documents QVersitDocument::VersitType versitType(QVersitDocument::VCard21Type); - QVersitContactExporter* exporter = new QVersitContactExporter(); + + QVersitContactExporter exporter; + bool ret_val = exporter.exportContacts(contactList, versitType); - bool ret_val = exporter->exportContacts(contactList, versitType); - QList documentList = exporter->documents(); - - delete exporter; - + if(ret_val == false) + { + QCRITICAL_WRITE("QVersitContactExporter::exportContacts returned false"); + return KErrGeneral; + } + + // process the documents + QList documentList = exporter.documents(); + // loop though and create a vcard for each contact QVersitWriter* writer = new QVersitWriter(); for(int i = 0; i < cntCount; i++ ) @@ -1333,17 +1353,29 @@ // trap ignore so that, incase of multiselection, other vcards are still created QByteArray bufArr; TRAP_IGNORE( - CBufBase* contactbufbase = CBufFlat::NewL(contactsbuf.size()); - CleanupStack::PushL(contactbufbase); - contactbufbase->InsertL( contactbufbase->Size(), - *XQConversions::qStringToS60Desc8( contactsbuf.data() ) ); - TPtr8 ptrbuf(contactbufbase->Ptr(0)); - bufArr = XQConversions::s60Desc8ToQByteArray(ptrbuf); - CleanupStack::PopAndDestroy(contactbufbase); - ); - file.write(bufArr); - file.close(); - filelist << filepath; + HBufC8* contactBuf8 = XQConversions::qStringToS60Desc8(contactsbuf.data()); + if(contactBuf8) + { + CleanupStack::PushL(contactBuf8); + CBufBase* contactbufbase = CBufFlat::NewL(contactsbuf.size()); + CleanupStack::PushL(contactbufbase); + + contactbufbase->InsertL( contactbufbase->Size(), *contactBuf8); + + TPtr8 ptrbuf(contactbufbase->Ptr(0)); + bufArr = XQConversions::s60Desc8ToQByteArray(ptrbuf); + + CleanupStack::PopAndDestroy(contactbufbase); + CleanupStack::PopAndDestroy(contactBuf8); + + // write to file + file.write(bufArr); + filelist << filepath; + } + ); // TRAP END + + //close file + file.close(); } } } @@ -1436,25 +1468,26 @@ //--------------------------------------------------------------- void MsgUnifiedEditorView::fetchContacts() { - QList args; - QString serviceName("com.nokia.services.phonebookservices"); - QString operation("fetch(QString,QString,QString)"); + QString service("phonebookservices"); + QString interface("com.nokia.symbian.IContactsFetch"); + QString operation("multiFetch(QString,QString)"); XQAiwRequest* request; XQApplicationManager appManager; - request = appManager.create(serviceName, "Fetch", operation, true); //embedded + request = appManager.create(service, interface, operation, true); //embedded if ( request == NULL ) { QCRITICAL_WRITE("AIW-ERROR: NULL request"); - return; + return; } // Result handlers - connect (request, SIGNAL(requestOk(const QVariant&)), + connect (request, SIGNAL(requestOk(const QVariant&)), this, SLOT(contactsFetched(const QVariant&))); - connect (request, SIGNAL(requestError(int,const QString&)), + connect (request, SIGNAL(requestError(int,const QString&)), this, SLOT(serviceRequestError(int,const QString&))); - args << QString(tr("Phonebook")); + QList args; + args << QString(tr("Phonebook")); args << KCntActionAll; args << KCntFilterDisplayAll; @@ -1478,12 +1511,14 @@ XQAiwRequest* request = NULL; XQApplicationManager appManager; request = appManager.create(service,interface, operation, true);//embedded - request->setSynchronous(true); // synchronous + if(!request) { QCRITICAL_WRITE("AIW-ERROR: NULL request"); return; } + + request->setSynchronous(true); // synchronous connect(request, SIGNAL(requestOk(const QVariant&)), this, SLOT(imagesFetched(const QVariant&)));