diff -r d48ab3b357f1 -r 978afdc0236f commonuis/CommonUi/src/DocDefaultHandler.cpp --- a/commonuis/CommonUi/src/DocDefaultHandler.cpp Wed Sep 01 12:16:19 2010 +0100 +++ b/commonuis/CommonUi/src/DocDefaultHandler.cpp Tue Sep 14 21:48:24 2010 +0300 @@ -361,7 +361,7 @@ done = ETrue; error = KErrNone; break; - case EDocFileRenameNew: + case EDocFileRenameNew: CheckFileNameExtensionL( iDestFile, iDataType ); break; default: @@ -558,6 +558,15 @@ return SetAndReturnStatus( KErrNone ); } +void CDocDefaultHandler::ResetSrcFile() + { + if( iFileHandleSet ) + { + iFile.Close(); + iFileHandleSet = EFalse; + } + } + // --------------------------------------------------------- // CDocDefaultHandler::SetDestName() // Check the name and set iDestFile. @@ -1660,54 +1669,56 @@ // If we have iSourceFile available, we check first that is file DCF file. // If it is, then we will use dcf file extensions, which override all other extensions. if (iSourceFile.Length() > 0) - { + { TInt ret = EFalse; TBuf<6> ext; - CContent* content = NULL; - if( iFileHandleSet ) - { - content = CContent::NewL( iFile ); - iFile.Close(); - iFileHandleSet = EFalse; - } - else - { - content = CContent::NewL( iSourceFile ); - } - - CleanupStack::PushL(content); - content->GetAttribute( ContentAccess::EIsProtected, ret ); - if ( ret ) - { - content->GetAttribute( EFileType, ret ); + CContent* content = NULL; + TInt err = KErrNone; + if( iFileHandleSet ) + { + TRAP(err, content = CContent::NewL( iFile )); + } + else + { + TRAP(err, content = CContent::NewL( iSourceFile )); + } + + if( err == KErrNone) + { + content->GetAttribute( ContentAccess::EIsProtected, ret ); + if ( ret ) + { + content->GetAttribute( EFileType, ret ); - #ifdef _DEBUG - RDebug::Print( _L("DocumentHandler: CDocDefaultHandler::CheckFileNameExtensionL: GetAttribute called, ret =%d"), ret); - #endif + #ifdef _DEBUG + RDebug::Print( _L("DocumentHandler: CDocDefaultHandler::CheckFileNameExtensionL: GetAttribute called, ret =%d"), ret); + #endif - if ( ret == EOma1Dcf ) - { - // change extension to .dcf - ext.Copy( KOma1DcfExtension ); - ReplaceExtension( aFileName, ext ); - CleanupStack::PopAndDestroy(); // content - return; - } - else if ( ret == EOma2Dcf ) - { - // change extension to .odf if not already .o4a, .o4v or .odf - ext.Copy( KOma2DcfExtension ); - if ( NeedsToReplaceDcf2Extension( aFileName ) ) - { - ReplaceExtension( aFileName, ext ); - } - CleanupStack::PopAndDestroy(); // content - return; - } - } - CleanupStack::PopAndDestroy(); // content - } + if ( ret == EOma1Dcf ) + { + // change extension to .dcf + ext.Copy( KOma1DcfExtension ); + ReplaceExtension( aFileName, ext ); + delete content; + return; + } + else if ( ret == EOma2Dcf ) + { + // change extension to .odf if not already .o4a, .o4v or .odf + ext.Copy( KOma2DcfExtension ); + if ( NeedsToReplaceDcf2Extension( aFileName ) ) + { + ReplaceExtension( aFileName, ext ); + } + delete content; + return; + } + } + delete content; + content = NULL; + } + } //if mime type=oma 2 dcf check extension separately if ( aDataType.Des8().FindF( KOma2DcfContentType ) != KErrNotFound )