messagingapp/msgui/unifiededitor/src/msgunieditorview.cpp
changeset 62 fdbe8253b596
parent 56 f42d9a78f435
child 67 fc91263aee62
--- 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<CntServicesContactList>(value);
     int cntCount = cntServicesContacts.count();
+    
+    QCRITICAL_WRITE_FORMAT("servicecontactlist count:",cntCount);
+    
     QList<QtMobility::QContact> 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<QtMobility::QVersitDocument> documentList = exporter->documents();    
-
-    delete exporter;
-
+    if(ret_val == false)
+        { 
+        QCRITICAL_WRITE("QVersitContactExporter::exportContacts returned false");
+        return KErrGeneral;
+        }  
+    
+    // process the documents
+	QList<QtMobility::QVersitDocument> 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<QVariant> 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<QVariant> 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&)));