emailservices/emailframework/commonlib/src/CFSMailBox.cpp
branchRCL_3
changeset 19 b13141f05c3d
parent 16 4ce476e64c59
child 24 b5fbb9b25d57
equal deleted inserted replaced
17:8592a65ad3fb 19:b13141f05c3d
    67 // CFSMailBox::~CFSMailBox
    67 // CFSMailBox::~CFSMailBox
    68 // -----------------------------------------------------------------------------
    68 // -----------------------------------------------------------------------------
    69 EXPORT_C CFSMailBox::~CFSMailBox()
    69 EXPORT_C CFSMailBox::~CFSMailBox()
    70 {
    70 {
    71     FUNC_LOG;
    71     FUNC_LOG;
       
    72     // extension KMailboxExtMrCalInfo needs to be released here because of
       
    73     // MR UI
       
    74     CEmailExtension* extension = NULL;
       
    75     TRAPD( err, extension = CExtendableEmail::ExtensionL( KMailboxExtMrCalInfo ) );
       
    76     if( extension != NULL && err==KErrNone )
       
    77         {
       
    78         // Release extension needs to be called twice because, previous
       
    79         // CExtendableEmail::ExtensionL( KMailboxExtMrCalInfo ) call increased
       
    80         // reference counter with one, so there is need to relase this one also.
       
    81         CExtendableEmail::ReleaseExtension( extension );
       
    82         CExtendableEmail::ReleaseExtension( extension );
       
    83         }
    72     iFolders.ResetAndDestroy();
    84     iFolders.ResetAndDestroy();
    73 }
    85 }
    74 
    86 
    75 // -----------------------------------------------------------------------------
    87 // -----------------------------------------------------------------------------
    76 // CFSMailBox::ConstructL
    88 // CFSMailBox::ConstructL
   359                                          const TFSMailMsgId aSourceFolderId, 
   371                                          const TFSMailMsgId aSourceFolderId, 
   360                                          const TFSMailMsgId aDestinationFolderId )
   372                                          const TFSMailMsgId aDestinationFolderId )
   361 {
   373 {
   362     FUNC_LOG;
   374     FUNC_LOG;
   363     TFSPendingRequest request;
   375     TFSPendingRequest request;
       
   376     request.iRequestId = 0;
   364     if( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
   377     if( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
   365         {
   378         {
   366         // init asynchronous request
   379         // init asynchronous request
   367         request = iRequestHandler->InitAsyncRequestL( GetId().PluginId(),
   380         request = iRequestHandler->InitAsyncRequestL( GetId().PluginId(),
   368                                                         aOperationObserver );        
   381                                                         aOperationObserver );        
   825 // CFSMailBox::ReleaseExtension
   838 // CFSMailBox::ReleaseExtension
   826 // -----------------------------------------------------------------------------
   839 // -----------------------------------------------------------------------------
   827 EXPORT_C void CFSMailBox::ReleaseExtension( CEmailExtension* aExtension )
   840 EXPORT_C void CFSMailBox::ReleaseExtension( CEmailExtension* aExtension )
   828     {
   841     {
   829     FUNC_LOG;
   842     FUNC_LOG;
   830     // no specialized behaviour, call base class
   843     // MR UI needs KMailboxExtMrCalInfo to not be released until CFSMailBox 
   831     CExtendableEmail::ReleaseExtension( aExtension );
   844     // exists. It is released in desctrucor
       
   845     if( aExtension->Uid() != KMailboxExtMrCalInfo )
       
   846         {
       
   847         // no specialized behaviour, call base class
       
   848         CExtendableEmail::ReleaseExtension( aExtension );
       
   849         }
       
   850     else
       
   851         {
       
   852         if( !aExtension->DecRef() )
       
   853             {
       
   854             aExtension->IncRef();
       
   855             }
       
   856         }
   832     }
   857     }
   833     
   858     
   834 // -----------------------------------------------------------------------------
   859 // -----------------------------------------------------------------------------
   835 // CFSMailBox::ExtensionL
   860 // CFSMailBox::ExtensionL
   836 // -----------------------------------------------------------------------------
   861 // -----------------------------------------------------------------------------