554 TInt CDocDefaultHandler::SetSrcFile( const RFile& aFile ) |
554 TInt CDocDefaultHandler::SetSrcFile( const RFile& aFile ) |
555 { |
555 { |
556 TInt err = iFile.Duplicate( aFile ); |
556 TInt err = iFile.Duplicate( aFile ); |
557 iFileHandleSet = ( err == KErrNone ) ? ETrue : EFalse; |
557 iFileHandleSet = ( err == KErrNone ) ? ETrue : EFalse; |
558 return SetAndReturnStatus( KErrNone ); |
558 return SetAndReturnStatus( KErrNone ); |
|
559 } |
|
560 |
|
561 void CDocDefaultHandler::ResetSrcFile() |
|
562 { |
|
563 if( iFileHandleSet ) |
|
564 { |
|
565 iFile.Close(); |
|
566 iFileHandleSet = EFalse; |
|
567 } |
559 } |
568 } |
560 |
569 |
561 // --------------------------------------------------------- |
570 // --------------------------------------------------------- |
562 // CDocDefaultHandler::SetDestName() |
571 // CDocDefaultHandler::SetDestName() |
563 // Check the name and set iDestFile. |
572 // Check the name and set iDestFile. |
1658 } |
1667 } |
1659 |
1668 |
1660 // If we have iSourceFile available, we check first that is file DCF file. |
1669 // If we have iSourceFile available, we check first that is file DCF file. |
1661 // If it is, then we will use dcf file extensions, which override all other extensions. |
1670 // If it is, then we will use dcf file extensions, which override all other extensions. |
1662 if (iSourceFile.Length() > 0) |
1671 if (iSourceFile.Length() > 0) |
1663 { |
1672 { |
1664 TInt ret = EFalse; |
1673 TInt ret = EFalse; |
1665 TBuf<6> ext; |
1674 TBuf<6> ext; |
1666 |
1675 |
1667 CContent* content = NULL; |
1676 CContent* content = NULL; |
1668 if( iFileHandleSet ) |
1677 TInt err = KErrNone; |
1669 { |
1678 if( iFileHandleSet ) |
1670 content = CContent::NewL( iFile ); |
1679 { |
1671 iFile.Close(); |
1680 TRAP(err, content = CContent::NewL( iFile )); |
1672 iFileHandleSet = EFalse; |
1681 } |
1673 } |
1682 else |
1674 else |
1683 { |
1675 { |
1684 TRAP(err, content = CContent::NewL( iSourceFile )); |
1676 content = CContent::NewL( iSourceFile ); |
1685 } |
1677 } |
1686 |
1678 |
1687 if( err == KErrNone) |
1679 CleanupStack::PushL(content); |
1688 { |
1680 content->GetAttribute( ContentAccess::EIsProtected, ret ); |
1689 content->GetAttribute( ContentAccess::EIsProtected, ret ); |
1681 if ( ret ) |
1690 if ( ret ) |
1682 { |
1691 { |
1683 content->GetAttribute( EFileType, ret ); |
1692 content->GetAttribute( EFileType, ret ); |
1684 |
1693 |
1685 #ifdef _DEBUG |
1694 #ifdef _DEBUG |
1686 RDebug::Print( _L("DocumentHandler: CDocDefaultHandler::CheckFileNameExtensionL: GetAttribute called, ret =%d"), ret); |
1695 RDebug::Print( _L("DocumentHandler: CDocDefaultHandler::CheckFileNameExtensionL: GetAttribute called, ret =%d"), ret); |
1687 #endif |
1696 #endif |
1688 |
1697 |
1689 if ( ret == EOma1Dcf ) |
1698 if ( ret == EOma1Dcf ) |
1690 { |
1699 { |
1691 // change extension to .dcf |
1700 // change extension to .dcf |
1692 ext.Copy( KOma1DcfExtension ); |
1701 ext.Copy( KOma1DcfExtension ); |
1693 ReplaceExtension( aFileName, ext ); |
1702 ReplaceExtension( aFileName, ext ); |
1694 CleanupStack::PopAndDestroy(); // content |
1703 delete content; |
1695 return; |
1704 return; |
1696 } |
1705 } |
1697 else if ( ret == EOma2Dcf ) |
1706 else if ( ret == EOma2Dcf ) |
1698 { |
1707 { |
1699 // change extension to .odf if not already .o4a, .o4v or .odf |
1708 // change extension to .odf if not already .o4a, .o4v or .odf |
1700 ext.Copy( KOma2DcfExtension ); |
1709 ext.Copy( KOma2DcfExtension ); |
1701 if ( NeedsToReplaceDcf2Extension( aFileName ) ) |
1710 if ( NeedsToReplaceDcf2Extension( aFileName ) ) |
1702 { |
1711 { |
1703 ReplaceExtension( aFileName, ext ); |
1712 ReplaceExtension( aFileName, ext ); |
1704 } |
1713 } |
1705 CleanupStack::PopAndDestroy(); // content |
1714 delete content; |
1706 return; |
1715 return; |
1707 } |
1716 } |
1708 } |
1717 } |
1709 CleanupStack::PopAndDestroy(); // content |
1718 delete content; |
1710 } |
1719 content = NULL; |
|
1720 } |
|
1721 } |
1711 |
1722 |
1712 //if mime type=oma 2 dcf check extension separately |
1723 //if mime type=oma 2 dcf check extension separately |
1713 if ( aDataType.Des8().FindF( KOma2DcfContentType ) != KErrNotFound ) |
1724 if ( aDataType.Des8().FindF( KOma2DcfContentType ) != KErrNotFound ) |
1714 { |
1725 { |
1715 if ( NeedsToReplaceDcf2Extension( aFileName ) ) |
1726 if ( NeedsToReplaceDcf2Extension( aFileName ) ) |