qtmobility/src/messaging/qmtmengine_symbian.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 8 71781823f776
equal deleted inserted replaced
1:2b40d63a9c3d 4:90517678cc4f
    68 #include <popcmtm.h>   // CPop3ClientMtm
    68 #include <popcmtm.h>   // CPop3ClientMtm
    69 #include <cemailaccounts.h> //CEmailAccounts
    69 #include <cemailaccounts.h> //CEmailAccounts
    70 #include <msvfind.h>   // CMsvFindOperation  
    70 #include <msvfind.h>   // CMsvFindOperation  
    71 #include <mtmdef.h>    // TMsvPartList
    71 #include <mtmdef.h>    // TMsvPartList
    72 #include <utf.h>       // CnvUtfConverter
    72 #include <utf.h>       // CnvUtfConverter
    73 #include <MMsvAttachmentManager.h>
    73 #include <mmsvattachmentmanager.h>
    74 #include <CMsvMimeHeaders.h> // Attachemt mimeheader
    74 #include <cmsvmimeheaders.h> // Attachemt mimeheader
    75 #include <eikenv.h>
    75 #include <eikenv.h>
    76 #include <smut.h>
    76 #include <smut.h>
    77 #include <smuthdr.h>
    77 #include <smuthdr.h>
    78 #include <mtuireg.h> // CMtmUiRegistry
    78 #include <mtuireg.h> // CMtmUiRegistry
    79 #include <mtmuibas.h> // CBaseMtmUi
    79 #include <mtmuibas.h> // CBaseMtmUi
    80 #include <senduiconsts.h>
    80 #include <SendUiConsts.h>
    81 #include <SendUi.h>    // SendUi API
    81 #include <sendui.h>    // SendUi API
    82 #include <cmessagedata.h> //CMessageData
    82 #include <CMessageData.h> //CMessageData
    83 #include <APGCLI.H>
    83 #include <apgcli.h>
    84 #include <rsendas.h>
    84 #include <rsendas.h>
    85 #include <rsendasmessage.h>
    85 #include <rsendasmessage.h>
    86 #include <cmsvrecipientlist.h>
    86 #include <cmsvrecipientlist.h>
    87 #include <imapset.h>
    87 #include <imapset.h>
    88 #include <MIUTMSG.H>
    88 #include <miutmsg.h>
    89 #include <charconv.h>
    89 #include <charconv.h>
    90 #include <imcvtext.h> // KImcvMultipart declaration
    90 #include <imcvtext.h> // KImcvMultipart declaration
    91 
    91 
    92 #include <QTextCodec>
    92 #include <QTextCodec>
    93 
    93 
   772     // Add receivers
   772     // Add receivers
   773     QList<QMessageAddress> list(message.to());
   773     QList<QMessageAddress> list(message.to());
   774     TPtrC16 receiver(KNullDesC);
   774     TPtrC16 receiver(KNullDesC);
   775     QString qreceiver;
   775     QString qreceiver;
   776     for (int i = 0; i < list.size(); ++i) {
   776     for (int i = 0; i < list.size(); ++i) {
   777         qreceiver = list.at(i).recipient();
   777         qreceiver = list.at(i).addressee();
   778         receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
   778         receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
   779         messageData->AppendToAddressL(receiver, KNullDesC);
   779         messageData->AppendToAddressL(receiver, KNullDesC);
   780     }
   780     }
   781     // Set Body text
   781     // Set Body text
   782     QString body = message.textContent();
   782     QString body = message.textContent();
   807     // Add receivers
   807     // Add receivers
   808     QList<QMessageAddress> list(message.to());
   808     QList<QMessageAddress> list(message.to());
   809     TPtrC16 receiver(KNullDesC);
   809     TPtrC16 receiver(KNullDesC);
   810     QString qreceiver;
   810     QString qreceiver;
   811     for (int i = 0; i < list.size(); ++i) {
   811     for (int i = 0; i < list.size(); ++i) {
   812         qreceiver = list.at(i).recipient();
   812         qreceiver = list.at(i).addressee();
   813         receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
   813         receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
   814         messageData->AppendToAddressL(receiver, KNullDesC);
   814         messageData->AppendToAddressL(receiver, KNullDesC);
   815     }
   815     }
   816     
   816     
   817     // Set Subject
   817     // Set Subject
   876     // Add receivers
   876     // Add receivers
   877     QList<QMessageAddress> list(message.to());
   877     QList<QMessageAddress> list(message.to());
   878     TPtrC16 receiver(KNullDesC);
   878     TPtrC16 receiver(KNullDesC);
   879     QString qreceiver;
   879     QString qreceiver;
   880     for (int i = 0; i < list.size(); ++i) {
   880     for (int i = 0; i < list.size(); ++i) {
   881         qreceiver = list.at(i).recipient();
   881         qreceiver = list.at(i).addressee();
   882         receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
   882         receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
   883         messageData->AppendToAddressL(receiver, KNullDesC);
   883         messageData->AppendToAddressL(receiver, KNullDesC);
   884     }
   884     }
   885     //cc
   885     //cc
   886     QList<QMessageAddress> ccList(message.cc());
   886     QList<QMessageAddress> ccList(message.cc());
   887     TPtrC16 ccReceiver(KNullDesC);
   887     TPtrC16 ccReceiver(KNullDesC);
   888     QString ccQreceiver;
   888     QString ccQreceiver;
   889     for (int i = 0; i < ccList.size(); ++i) {
   889     for (int i = 0; i < ccList.size(); ++i) {
   890         ccQreceiver = ccList.at(i).recipient();
   890         ccQreceiver = ccList.at(i).addressee();
   891         ccReceiver.Set(reinterpret_cast<const TUint16*>(ccQreceiver.utf16()));
   891         ccReceiver.Set(reinterpret_cast<const TUint16*>(ccQreceiver.utf16()));
   892         messageData->AppendCcAddressL(ccReceiver, KNullDesC);
   892         messageData->AppendCcAddressL(ccReceiver, KNullDesC);
   893     }
   893     }
   894     //bcc
   894     //bcc
   895     QList<QMessageAddress> bccList(message.bcc());
   895     QList<QMessageAddress> bccList(message.bcc());
   896     TPtrC16 bccReceiver(KNullDesC);
   896     TPtrC16 bccReceiver(KNullDesC);
   897     QString bccQreceiver;
   897     QString bccQreceiver;
   898     for (int i = 0; i < bccList.size(); ++i) {
   898     for (int i = 0; i < bccList.size(); ++i) {
   899         bccQreceiver = bccList.at(i).recipient();
   899         bccQreceiver = bccList.at(i).addressee();
   900         bccReceiver.Set(reinterpret_cast<const TUint16*>(bccQreceiver.utf16()));
   900         bccReceiver.Set(reinterpret_cast<const TUint16*>(bccQreceiver.utf16()));
   901         messageData->AppendBccAddressL(bccReceiver, KNullDesC);
   901         messageData->AppendBccAddressL(bccReceiver, KNullDesC);
   902     }
   902     }
   903     
   903     
   904     // Set Subject
   904     // Set Subject
  2458     QList<QMessageAddress> list(message.to());
  2458     QList<QMessageAddress> list(message.to());
  2459     if (!list.empty()){
  2459     if (!list.empty()){
  2460         TPtrC16 receiver(KNullDesC);
  2460         TPtrC16 receiver(KNullDesC);
  2461         QString qreceiver;
  2461         QString qreceiver;
  2462         for (int i = 0; i < list.size(); ++i) {
  2462         for (int i = 0; i < list.size(); ++i) {
  2463             qreceiver = list.at(i).recipient();
  2463             qreceiver = list.at(i).addressee();
  2464             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  2464             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  2465             ipSmsMtm->AddAddresseeL(receiver); 
  2465             ipSmsMtm->AddAddresseeL(receiver); 
  2466             ipSmsMtm->SaveMessageL();
  2466             ipSmsMtm->SaveMessageL();
  2467             }
  2467             }
  2468     }
  2468     }
  2580     // Add receivers
  2580     // Add receivers
  2581     QList<QMessageAddress> list(message.to());
  2581     QList<QMessageAddress> list(message.to());
  2582     TPtrC16 receiver(KNullDesC);
  2582     TPtrC16 receiver(KNullDesC);
  2583     QString qreceiver;
  2583     QString qreceiver;
  2584     for (int i = 0; i < list.size(); ++i) {
  2584     for (int i = 0; i < list.size(); ++i) {
  2585         qreceiver = list.at(i).recipient();
  2585         qreceiver = list.at(i).addressee();
  2586         receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  2586         receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  2587         ipMmsMtm->AddAddresseeL(receiver); 
  2587         ipMmsMtm->AddAddresseeL(receiver); 
  2588         }
  2588         }
  2589     
  2589     
  2590     // Set Subject
  2590     // Set Subject
  2799     QList<QMessageAddress> list(message.to());
  2799     QList<QMessageAddress> list(message.to());
  2800     if (!list.empty()){
  2800     if (!list.empty()){
  2801         TPtrC16 receiver(KNullDesC);
  2801         TPtrC16 receiver(KNullDesC);
  2802         QString qreceiver;
  2802         QString qreceiver;
  2803         for (int i = 0; i < list.size(); ++i) {
  2803         for (int i = 0; i < list.size(); ++i) {
  2804             qreceiver = list.at(i).recipient();
  2804             qreceiver = list.at(i).addressee();
  2805             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  2805             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  2806             ipSmsMtm->AddAddresseeL(receiver); 
  2806             ipSmsMtm->AddAddresseeL(receiver); 
  2807             ipSmsMtm->SaveMessageL();
  2807             ipSmsMtm->SaveMessageL();
  2808         }
  2808         }
  2809     }
  2809     }
  2860     QList<QMessageAddress> list(message.to());
  2860     QList<QMessageAddress> list(message.to());
  2861     if (!list.empty()){
  2861     if (!list.empty()){
  2862         TPtrC16 receiver(KNullDesC);
  2862         TPtrC16 receiver(KNullDesC);
  2863         QString qreceiver;
  2863         QString qreceiver;
  2864         for (int i = 0; i < list.size(); ++i) {
  2864         for (int i = 0; i < list.size(); ++i) {
  2865             qreceiver = list.at(i).recipient();
  2865             qreceiver = list.at(i).addressee();
  2866             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  2866             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  2867             ipMmsMtm->AddAddresseeL(receiver); 
  2867             ipMmsMtm->AddAddresseeL(receiver); 
  2868             }
  2868             }
  2869     }
  2869     }
  2870     
  2870     
  3083         msvEntry.SetUnread(true);
  3083         msvEntry.SetUnread(true);
  3084         msvEntry.SetNew(true);
  3084         msvEntry.SetNew(true);
  3085     }
  3085     }
  3086     
  3086     
  3087     msvEntry.iDescription.Set(TPtrC(reinterpret_cast<const TUint16*>(message.subject().utf16())));
  3087     msvEntry.iDescription.Set(TPtrC(reinterpret_cast<const TUint16*>(message.subject().utf16())));
  3088     msvEntry.iDetails.Set(TPtrC(reinterpret_cast<const TUint16*>(message.from().recipient().utf16())));
  3088     msvEntry.iDetails.Set(TPtrC(reinterpret_cast<const TUint16*>(message.from().addressee().utf16())));
  3089     
  3089     
  3090     if (mtmUid == KUidMsgTypeSMTP) {
  3090     if (mtmUid == KUidMsgTypeSMTP) {
  3091         ipSmtpMtm->Entry().ChangeL(msvEntry);
  3091         ipSmtpMtm->Entry().ChangeL(msvEntry);
  3092     } else {
  3092     } else {
  3093         CMsvOperationWait* pMsvOperationWait = CMsvOperationWait::NewLC();
  3093         CMsvOperationWait* pMsvOperationWait = CMsvOperationWait::NewLC();
  3231     QList<QMessageAddress> toList(message.to());
  3231     QList<QMessageAddress> toList(message.to());
  3232     if (toList.count() > 0){
  3232     if (toList.count() > 0){
  3233         TPtrC16 receiver(KNullDesC);
  3233         TPtrC16 receiver(KNullDesC);
  3234         QString qreceiver;
  3234         QString qreceiver;
  3235         for (int i = 0; i < toList.size(); ++i) {
  3235         for (int i = 0; i < toList.size(); ++i) {
  3236             qreceiver = toList.at(i).recipient();
  3236             qreceiver = toList.at(i).addressee();
  3237             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3237             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3238             emailEntry->ToRecipients().AppendL(receiver); 
  3238             emailEntry->ToRecipients().AppendL(receiver); 
  3239         }
  3239         }
  3240     }
  3240     }
  3241     
  3241     
  3242     QList<QMessageAddress> ccList(message.cc());
  3242     QList<QMessageAddress> ccList(message.cc());
  3243     if (ccList.count() > 0){
  3243     if (ccList.count() > 0){
  3244         TPtrC16 receiver(KNullDesC);
  3244         TPtrC16 receiver(KNullDesC);
  3245         QString qreceiver;
  3245         QString qreceiver;
  3246         for (int i = 0; i < ccList.size(); ++i) {
  3246         for (int i = 0; i < ccList.size(); ++i) {
  3247             qreceiver = ccList.at(i).recipient();
  3247             qreceiver = ccList.at(i).addressee();
  3248             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3248             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3249             emailEntry->CcRecipients().AppendL(receiver); 
  3249             emailEntry->CcRecipients().AppendL(receiver); 
  3250         }
  3250         }
  3251     }
  3251     }
  3252         
  3252         
  3253     QList<QMessageAddress> bccList(message.bcc());
  3253     QList<QMessageAddress> bccList(message.bcc());
  3254     if (bccList.count() > 0){
  3254     if (bccList.count() > 0){
  3255         TPtrC16 receiver(KNullDesC);
  3255         TPtrC16 receiver(KNullDesC);
  3256         QString qreceiver;
  3256         QString qreceiver;
  3257         for (int i = 0; i < bccList.size(); ++i) {
  3257         for (int i = 0; i < bccList.size(); ++i) {
  3258             qreceiver = bccList.at(i).recipient();
  3258             qreceiver = bccList.at(i).addressee();
  3259             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3259             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3260             emailEntry->BccRecipients().AppendL(receiver); 
  3260             emailEntry->BccRecipients().AppendL(receiver); 
  3261         }
  3261         }
  3262     }
  3262     }
  3263      
  3263      
  3578     pImMimeHeader->StoreL(*pMsvStore);
  3578     pImMimeHeader->StoreL(*pMsvStore);
  3579     
  3579     
  3580     CImHeader* pImHeader = CImHeader::NewLC();
  3580     CImHeader* pImHeader = CImHeader::NewLC();
  3581     pImHeader->RestoreL(*pMsvStore);
  3581     pImHeader->RestoreL(*pMsvStore);
  3582     pImHeader->SetSubjectL(TPtrC(reinterpret_cast<const TUint16*>(message.subject().utf16())));
  3582     pImHeader->SetSubjectL(TPtrC(reinterpret_cast<const TUint16*>(message.subject().utf16())));
  3583     pImHeader->SetFromL(TPtrC(reinterpret_cast<const TUint16*>(message.from().recipient().utf16())));
  3583     pImHeader->SetFromL(TPtrC(reinterpret_cast<const TUint16*>(message.from().addressee().utf16())));
  3584     
  3584     
  3585     QList<QMessageAddress> toList(message.to());
  3585     QList<QMessageAddress> toList(message.to());
  3586     if (toList.count() > 0) {
  3586     if (toList.count() > 0) {
  3587         TPtrC16 receiver(KNullDesC);
  3587         TPtrC16 receiver(KNullDesC);
  3588         QString qreceiver;
  3588         QString qreceiver;
  3589         for (int i = 0; i < toList.size(); ++i) {
  3589         for (int i = 0; i < toList.size(); ++i) {
  3590             qreceiver = toList.at(i).recipient();
  3590             qreceiver = toList.at(i).addressee();
  3591             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3591             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3592             pImHeader->ToRecipients().AppendL(receiver); 
  3592             pImHeader->ToRecipients().AppendL(receiver); 
  3593         }
  3593         }
  3594     }
  3594     }
  3595     
  3595     
  3596     QList<QMessageAddress> ccList(message.cc());
  3596     QList<QMessageAddress> ccList(message.cc());
  3597     if (ccList.count() > 0) {
  3597     if (ccList.count() > 0) {
  3598         TPtrC16 receiver(KNullDesC);
  3598         TPtrC16 receiver(KNullDesC);
  3599         QString qreceiver;
  3599         QString qreceiver;
  3600         for (int i = 0; i < ccList.size(); ++i) {
  3600         for (int i = 0; i < ccList.size(); ++i) {
  3601             qreceiver = ccList.at(i).recipient();
  3601             qreceiver = ccList.at(i).addressee();
  3602             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3602             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3603             pImHeader->CcRecipients().AppendL(receiver); 
  3603             pImHeader->CcRecipients().AppendL(receiver); 
  3604         }
  3604         }
  3605     }
  3605     }
  3606         
  3606         
  3607     QList<QMessageAddress> bccList(message.bcc());
  3607     QList<QMessageAddress> bccList(message.bcc());
  3608     if (bccList.count() > 0) {
  3608     if (bccList.count() > 0) {
  3609         TPtrC16 receiver(KNullDesC);
  3609         TPtrC16 receiver(KNullDesC);
  3610         QString qreceiver;
  3610         QString qreceiver;
  3611         for (int i = 0; i < bccList.size(); ++i) {
  3611         for (int i = 0; i < bccList.size(); ++i) {
  3612             qreceiver = bccList.at(i).recipient();
  3612             qreceiver = bccList.at(i).addressee();
  3613             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3613             receiver.Set(reinterpret_cast<const TUint16*>(qreceiver.utf16()));
  3614             pImHeader->BccRecipients().AppendL(receiver); 
  3614             pImHeader->BccRecipients().AppendL(receiver); 
  3615         }
  3615         }
  3616     }
  3616     }
  3617    
  3617    
  3624     CleanupStack::PopAndDestroy(pImMimeHeader);
  3624     CleanupStack::PopAndDestroy(pImMimeHeader);
  3625 
  3625 
  3626     TMsvEntry changedEntry = pMsvEntry->Entry();
  3626     TMsvEntry changedEntry = pMsvEntry->Entry();
  3627     changedEntry.iDescription.Set(TPtrC(reinterpret_cast<const TUint16*>(message.subject().utf16())));
  3627     changedEntry.iDescription.Set(TPtrC(reinterpret_cast<const TUint16*>(message.subject().utf16())));
  3628     if (toList.count() > 0) {
  3628     if (toList.count() > 0) {
  3629         changedEntry.iDetails.Set(TPtrC(reinterpret_cast<const TUint16*>(toList.at(0).recipient().utf16())));
  3629         changedEntry.iDetails.Set(TPtrC(reinterpret_cast<const TUint16*>(toList.at(0).addressee().utf16())));
  3630     }
  3630     }
  3631     if (!message.receivedDate().isNull() || !message.date().isNull()) {
  3631     if (!message.receivedDate().isNull() || !message.date().isNull()) {
  3632         // Change the date to given date
  3632         // Change the date to given date
  3633         if (!message.date().isNull()) {
  3633         if (!message.date().isNull()) {
  3634             changedEntry.iDate = qDateTimeToSymbianTTime(message.date());
  3634             changedEntry.iDate = qDateTimeToSymbianTTime(message.date());