commonuis/CommonUi/src/DocDefaultHandler.cpp
branchRCL_3
changeset 21 978afdc0236f
parent 20 d48ab3b357f1
equal deleted inserted replaced
20:d48ab3b357f1 21:978afdc0236f
   359                     break;
   359                     break;
   360                 case EDocFileOverWrite:
   360                 case EDocFileOverWrite:
   361                     done = ETrue;
   361                     done = ETrue;
   362                     error = KErrNone;
   362                     error = KErrNone;
   363                     break;
   363                     break;
   364                 case EDocFileRenameNew:  
   364                 case EDocFileRenameNew:
   365                     CheckFileNameExtensionL( iDestFile, iDataType );
   365                     CheckFileNameExtensionL( iDestFile, iDataType );
   366                     break;
   366                     break;
   367                 default:
   367                 default:
   368                     User::Leave( SetAndReturnStatus( KErrUnknown ) );
   368                     User::Leave( SetAndReturnStatus( KErrUnknown ) );
   369                 } // switch
   369                 } // switch
   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 ) )