imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp
branchRCL_3
changeset 58 9e8b0cc88842
parent 47 3d743e824514
equal deleted inserted replaced
50:60bb012f1157 58:9e8b0cc88842
    45     
    45     
    46     if(iTimer)
    46     if(iTimer)
    47         {
    47         {
    48         iTimer->Cancel();
    48         iTimer->Cancel();
    49         }
    49         }
    50     
       
    51     delete iTimer;
    50     delete iTimer;
    52     iTimer = NULL;
    51     iTimer = NULL;
    53     
    52     
    54     ReleaseServerBitmap();
    53     ReleaseServerBitmap();
    55     delete iCallbackThumbnail;
    54     delete iCallbackThumbnail;
   162                 User::LeaveIfError( iFile.Open( iFs, iPath, EFileShareReadersOrWriters ) );  
   161                 User::LeaveIfError( iFile.Open( iFs, iPath, EFileShareReadersOrWriters ) );  
   163                 
   162                 
   164                 TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iPath );
   163                 TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iPath );
   165                 
   164                 
   166                 CleanupClosePushL( iFile );
   165                 CleanupClosePushL( iFile );
   167                 
       
   168                 if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview )
       
   169                     {
       
   170                     // We may need the file handle later for the 2nd phase thumbnail
       
   171                     iMyFileHandle.Close();
       
   172                     User::LeaveIfError( iMyFileHandle.Duplicate( iFile ));
       
   173                     }
       
   174                 
       
   175                 iSession.RequestThumbnailL( iFile, iPath, iParamsPckg, iStatus );
   166                 iSession.RequestThumbnailL( iFile, iPath, iParamsPckg, iStatus );
   176                 CleanupStack::PopAndDestroy( &iFile );   
   167                 CleanupStack::PopAndDestroy( &iFile );   
   177                 }
   168                 }
   178             else
   169             else
   179                 {
   170                 {
   204             User::LeaveIfError( iFile.Open( iFs, iTargetUri, EFileShareReadersOrWriters ) );  
   195             User::LeaveIfError( iFile.Open( iFs, iTargetUri, EFileShareReadersOrWriters ) );  
   205             
   196             
   206             TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iTargetUri );
   197             TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iTargetUri );
   207             
   198             
   208             CleanupClosePushL( iFile );
   199             CleanupClosePushL( iFile );
   209             
       
   210             if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview )
       
   211                 {
       
   212                 // We may need the file handle later for the 2nd phase thumbnail
       
   213                 iMyFileHandle.Close();
       
   214                 User::LeaveIfError( iMyFileHandle.Duplicate( iFile ));
       
   215                 }
       
   216             
       
   217             iSession.RequestThumbnailL( iFile, iTargetUri, iParamsPckg, iStatus );
   200             iSession.RequestThumbnailL( iFile, iTargetUri, iParamsPckg, iStatus );
   218             CleanupStack::PopAndDestroy( &iFile );
   201             CleanupStack::PopAndDestroy( &iFile );
   219             break;
   202             break;
   220             }  
   203             }  
   221         case EReqDeleteThumbnails:
   204         case EReqDeleteThumbnails:
   235         case EReqRenameThumbnails:
   218         case EReqRenameThumbnails:
   236             {
   219             {
   237             iSession.RenameThumbnails( iParamsPckg, iStatus );
   220             iSession.RenameThumbnails( iParamsPckg, iStatus );
   238             break;
   221             break;
   239             }  
   222             }  
   240         case EReqSetThumbnailPath:
       
   241             {
       
   242             // open file handle
       
   243             iFile.Close();
       
   244             User::LeaveIfError( iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters ) );  
       
   245             
       
   246             TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iParams.iFileName );
       
   247             
       
   248             CleanupClosePushL( iFile );
       
   249             
       
   250             if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview )
       
   251                 {
       
   252                 // We may need the file handle later for the 2nd phase thumbnail
       
   253                 iMyFileHandle.Close();
       
   254                 User::LeaveIfError( iMyFileHandle.Duplicate( iFile ));
       
   255                 }
       
   256             
       
   257             iSession.RequestThumbnailL( iFile, iTargetUri, iParamsPckg, iStatus );
       
   258             CleanupStack::PopAndDestroy( &iFile );
       
   259 
       
   260             break;
       
   261             } 
       
   262             
       
   263         default:
   223         default:
   264             {
   224             {
   265             break;
   225             break;
   266             }
   226             }
   267         }
   227         }
   632                     TRAPD(err, StartL());
   592                     TRAPD(err, StartL());
   633                     return;
   593                     return;
   634                     }
   594                     }
   635 	            }
   595 	            }
   636 #endif
   596 #endif
   637 	        TN_DEBUG3( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady req=%d err=%d", iParams.iRequestId, iError );
   597 	        TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady %d", iParams.iRequestId );
   638 	        iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId );
   598 	        iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId );
   639 	            
   599 	            
   640             }
   600             }
   641         
   601         
   642         iError = KErrNone;
   602         iError = KErrNone;
   657 // CThumbnailRequestActive::GetThumbnailL()
   617 // CThumbnailRequestActive::GetThumbnailL()
   658 // Get a thumbnail for an object file.
   618 // Get a thumbnail for an object file.
   659 // ---------------------------------------------------------------------------
   619 // ---------------------------------------------------------------------------
   660 //
   620 //
   661 void CThumbnailRequestActive::GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId,
   621 void CThumbnailRequestActive::GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId,
   662     const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
   622     CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
   663     ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   623     ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   664     TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   624     TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   665     const TDesC& aTargetUri, TThumbnailSize aThumbnailSize)
   625     const TDesC& aTargetUri, TThumbnailSize aThumbnailSize)
   666     {
   626     {
   667     iRequestType = EReqGetThumbnailHandle;
   627     iRequestType = EReqGetThumbnailHandle;
   678     iClientData = aClientData;
   638     iClientData = aClientData;
   679     iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
   639     iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
   680     						EThumbnailGeneratePersistentSizesOnly :
   640     						EThumbnailGeneratePersistentSizesOnly :
   681     						EThumbnailNoControlFlags);    
   641     						EThumbnailNoControlFlags);    
   682     iParams.iOriginalControlFlags = iParams.iControlFlags;
   642     iParams.iOriginalControlFlags = iParams.iControlFlags;
   683     iParams.iMimeType = TDataType( aMimeType );
       
   684     iParams.iBitmapHandle = 0;
   643     iParams.iBitmapHandle = 0;
   685     iParams.iSize = aSize;
   644     iParams.iSize = aSize;
   686     iParams.iDisplayMode = aDisplayMode;
   645     iParams.iDisplayMode = aDisplayMode;
   687     User::LeaveIfError( aFile.FullName( iParams.iFileName ));
   646     User::LeaveIfError( aFile.FullName( iParams.iFileName ));
   688     iParams.iRequestId = iRequestId;
   647     iParams.iRequestId = iRequestId;
   690     iParams.iFlags = aFlags;
   649     iParams.iFlags = aFlags;
   691     iParams.iQualityPreference = aQualityPreference;
   650     iParams.iQualityPreference = aQualityPreference;
   692     iParams.iThumbnailSize = aThumbnailSize;
   651     iParams.iThumbnailSize = aThumbnailSize;
   693     iParams.iThumbnailId = aThumbnailId;
   652     iParams.iThumbnailId = aThumbnailId;
   694     iParams.iOverwrite = EFalse;
   653     iParams.iOverwrite = EFalse;
   695     iParams.iImport = EFalse;
       
   696     
   654     
   697     User::LeaveIfError( iFile.Duplicate( aFile ));
   655     User::LeaveIfError( iFile.Duplicate( aFile ));
   698     
   656     
   699     iTargetUri = aTargetUri;
   657     iTargetUri = aTargetUri;
   700     
       
   701     if (iParams.iFileName.Length() && IsVirtualUri(iParams.iFileName))
       
   702         {
       
   703         iParams.iVirtualUri = ETrue;
       
   704         }
       
   705     else
       
   706         {
       
   707         iParams.iVirtualUri = EFalse;
       
   708         }
       
   709     }
   658     }
   710 
   659 
   711 
   660 
   712 // ---------------------------------------------------------------------------
   661 // ---------------------------------------------------------------------------
   713 // CThumbnailRequestActive::GetThumbnailL()
   662 // CThumbnailRequestActive::GetThumbnailL()
   714 // Get a thumbnail opening an object file later.
   663 // Get a thumbnail opening an object file later.
   715 // ---------------------------------------------------------------------------
   664 // ---------------------------------------------------------------------------
   716 //
   665 //
   717 void CThumbnailRequestActive::GetThumbnailL( TThumbnailId aThumbnailId,
   666 void CThumbnailRequestActive::GetThumbnailL( TThumbnailId aThumbnailId,
   718     const TDesC& aPath, const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, 
   667     const TDesC& aPath, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
   719     CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   668     ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   720     TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   669     TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   721     const TDesC& aTargetUri, TThumbnailSize aThumbnailSize)
   670     const TDesC& aTargetUri, TThumbnailSize aThumbnailSize)
   722     {
   671     {
   723     iRequestType = EReqGetThumbnailHandleLater;
   672     iRequestType = EReqGetThumbnailHandleLater;
   724 
   673 
   725     iClientData = aClientData;
   674     iClientData = aClientData;
   726     iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
   675     iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
   727                             EThumbnailGeneratePersistentSizesOnly :
   676                             EThumbnailGeneratePersistentSizesOnly :
   728                             EThumbnailNoControlFlags);
   677                             EThumbnailNoControlFlags);
   729     iParams.iOriginalControlFlags = iParams.iControlFlags;
   678     iParams.iOriginalControlFlags = iParams.iControlFlags;
   730     iParams.iMimeType = TDataType( aMimeType );
       
   731     iParams.iBitmapHandle = 0;
   679     iParams.iBitmapHandle = 0;
   732     iParams.iSize = aSize;
   680     iParams.iSize = aSize;
   733     iParams.iDisplayMode = aDisplayMode;
   681     iParams.iDisplayMode = aDisplayMode;
   734     iParams.iFileName = aPath;
   682     iParams.iFileName = aPath;
   735     iParams.iRequestId = iRequestId;
   683     iParams.iRequestId = iRequestId;
   737     iParams.iFlags = aFlags;
   685     iParams.iFlags = aFlags;
   738     iParams.iQualityPreference = aQualityPreference;
   686     iParams.iQualityPreference = aQualityPreference;
   739     iParams.iThumbnailSize = aThumbnailSize;
   687     iParams.iThumbnailSize = aThumbnailSize;
   740     iParams.iThumbnailId = aThumbnailId;
   688     iParams.iThumbnailId = aThumbnailId;
   741     iParams.iOverwrite = EFalse;
   689     iParams.iOverwrite = EFalse;
   742     iParams.iImport = EFalse;
       
   743     
   690     
   744     iTargetUri = aTargetUri;
   691     iTargetUri = aTargetUri;
   745     
       
   746     if (iPath.Length() && IsVirtualUri(iPath))
       
   747         {
       
   748         iParams.iVirtualUri = ETrue;
       
   749         }
       
   750     else
       
   751         {
       
   752         iParams.iVirtualUri = EFalse;
       
   753         }
       
   754     }
   692     }
   755 
   693 
   756 
   694 
   757 // ---------------------------------------------------------------------------
   695 // ---------------------------------------------------------------------------
   758 // CThumbnailRequestActive::GetThumbnailL()
   696 // CThumbnailRequestActive::GetThumbnailL()
   759 // Get a thumbnail for an object file.
   697 // Get a thumbnail for an object file.
   760 // ---------------------------------------------------------------------------
   698 // ---------------------------------------------------------------------------
   761 //
   699 //
   762 void CThumbnailRequestActive::GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId,
   700 void CThumbnailRequestActive::GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId,
   763     const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
   701     CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
   764     ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   702     ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   765     TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   703     TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   766     const TDesC& aTargetUri, TThumbnailSize aThumbnailSize)
   704     const TDesC& aTargetUri, TThumbnailSize aThumbnailSize)
   767     {
   705     {
   768     iRequestType = EReqGetThumbnailPath;
   706     iRequestType = EReqGetThumbnailPath;
   770     iClientData = aClientData;
   708     iClientData = aClientData;
   771     iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
   709     iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
   772     						EThumbnailGeneratePersistentSizesOnly :
   710     						EThumbnailGeneratePersistentSizesOnly :
   773     						EThumbnailNoControlFlags);
   711     						EThumbnailNoControlFlags);
   774     iParams.iOriginalControlFlags = iParams.iControlFlags;
   712     iParams.iOriginalControlFlags = iParams.iControlFlags;
   775     iParams.iMimeType = TDataType( aMimeType );
       
   776     iParams.iBitmapHandle = 0;
   713     iParams.iBitmapHandle = 0;
   777     iParams.iSize = aSize;
   714     iParams.iSize = aSize;
   778     iParams.iDisplayMode = aDisplayMode;
   715     iParams.iDisplayMode = aDisplayMode;
   779     iParams.iRequestId = iRequestId;
   716     iParams.iRequestId = iRequestId;
   780     iParams.iPriority = aPriority;
   717     iParams.iPriority = aPriority;
   782     iParams.iQualityPreference = aQualityPreference;
   719     iParams.iQualityPreference = aQualityPreference;
   783     iParams.iThumbnailSize = aThumbnailSize;
   720     iParams.iThumbnailSize = aThumbnailSize;
   784     iParams.iThumbnailId = aThumbnailId;
   721     iParams.iThumbnailId = aThumbnailId;
   785     iParams.iFileName = aPath;
   722     iParams.iFileName = aPath;
   786     iParams.iOverwrite = EFalse;
   723     iParams.iOverwrite = EFalse;
   787     iParams.iImport = EFalse;
       
   788     
   724     
   789     iPath = aPath;
   725     iPath = aPath;
   790     iTargetUri = aTargetUri;
   726     iTargetUri = aTargetUri;
   791     
       
   792     if (iPath.Length() && IsVirtualUri(iPath))
       
   793         {
       
   794         iParams.iVirtualUri = ETrue;
       
   795         }
       
   796     else
       
   797         {
       
   798         iParams.iVirtualUri = EFalse;
       
   799         }
       
   800     }
   727     }
   801 
   728 
   802 // ---------------------------------------------------------------------------
   729 // ---------------------------------------------------------------------------
   803 // CThumbnailRequestActive::SetThumbnailL()
   730 // CThumbnailRequestActive::SetThumbnailL()
   804 // Get a thumbnail for an object file.
   731 // Get a thumbnail for an object file.
   828     iParams.iPriority = aPriority;
   755     iParams.iPriority = aPriority;
   829     iParams.iFlags = aFlags;
   756     iParams.iFlags = aFlags;
   830     iParams.iQualityPreference = aQualityPreference;
   757     iParams.iQualityPreference = aQualityPreference;
   831     iParams.iThumbnailId = aThumbnailId;
   758     iParams.iThumbnailId = aThumbnailId;
   832     iParams.iOverwrite = aOverwrite;
   759     iParams.iOverwrite = aOverwrite;
   833     iParams.iImport = EFalse;
       
   834     
   760     
   835     iTargetUri = aTargetUri;
   761     iTargetUri = aTargetUri;
   836     
       
   837     if (iTargetUri.Length() && IsVirtualUri(iTargetUri))
       
   838         {
       
   839         iParams.iVirtualUri = ETrue;
       
   840         }
       
   841     else
       
   842         {
       
   843         iParams.iVirtualUri = EFalse;
       
   844         }
       
   845     }
   762     }
   846 
   763 
   847 // ---------------------------------------------------------------------------
   764 // ---------------------------------------------------------------------------
   848 // CThumbnailRequestActive::SetThumbnailL()
   765 // CThumbnailRequestActive::SetThumbnailL()
   849 // Get a thumbnail for an object file.
   766 // Get a thumbnail for an object file.
   870     iParams.iFlags = aFlags;
   787     iParams.iFlags = aFlags;
   871     iParams.iQualityPreference = aQualityPreference;
   788     iParams.iQualityPreference = aQualityPreference;
   872     iParams.iThumbnailId = aThumbnailId;
   789     iParams.iThumbnailId = aThumbnailId;
   873     iParams.iFileName = aTargetUri;
   790     iParams.iFileName = aTargetUri;
   874     iParams.iOverwrite = aOverwrite;
   791     iParams.iOverwrite = aOverwrite;
   875     iParams.iImport = EFalse;
       
   876     
   792     
   877     iTargetUri = aTargetUri;
   793     iTargetUri = aTargetUri;
   878     
       
   879     if (iTargetUri.Length() && IsVirtualUri(iTargetUri))
       
   880         {
       
   881         iParams.iVirtualUri = ETrue;
       
   882         }
       
   883     else
       
   884         {
       
   885         iParams.iVirtualUri = EFalse;
       
   886         }
       
   887     
   794     
   888     TInt memoryFree( 0 );
   795     TInt memoryFree( 0 );
   889     HAL::Get( HALData::EMemoryRAMFree, memoryFree );
   796     HAL::Get( HALData::EMemoryRAMFree, memoryFree );
   890     
   797     
   891     TN_DEBUG2( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memoryFree %d", memoryFree );
   798     TN_DEBUG2( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memoryFree %d", memoryFree );
   895         // save parameter bitmap, it will be deleted when request is complete
   802         // save parameter bitmap, it will be deleted when request is complete
   896         iBitmap = aBitmap;                   
   803         iBitmap = aBitmap;                   
   897         iParams.iMimeType = TDataType( aMimeType );
   804         iParams.iMimeType = TDataType( aMimeType );
   898         iRequestType = EReqSetThumbnailBitmap;
   805         iRequestType = EReqSetThumbnailBitmap;
   899         }
   806         }
   900     else if (!iParams.iVirtualUri)
   807     else
   901         {
   808         {
   902         // memory low, create thumbs using filehandle
   809         // memory low, create thumbs using filehandle
   903         TN_DEBUG1( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memory low, create thumbs using filehandle!" );
   810         TN_DEBUG1( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memory low, create thumbs using filehandle!" );
   904         delete aBitmap;
   811         delete aBitmap;
   905         aBitmap = NULL;
   812         aBitmap = NULL;
   906         iParams.iPriority = aPriority - 1;
   813         iParams.iPriority = aPriority - 1;
   907         iRequestType = EReqGetThumbnailHandleLater;
   814         iRequestType = EReqGetThumbnailHandleLater;
   908         }
       
   909     else
       
   910         {
       
   911         User::Leave(KErrNoMemory);
       
   912         }
   815         }
   913     }
   816     }
   914 
   817 
   915 // ---------------------------------------------------------------------------
   818 // ---------------------------------------------------------------------------
   916 // CThumbnailRequestActive::UpdateThumbnailsL()
   819 // CThumbnailRequestActive::UpdateThumbnailsL()
   933     iParams.iPriority = aPriority;
   836     iParams.iPriority = aPriority;
   934     iParams.iFlags = aFlags;
   837     iParams.iFlags = aFlags;
   935     iParams.iQualityPreference = aQualityPreference;
   838     iParams.iQualityPreference = aQualityPreference;
   936     iParams.iThumbnailId = aThumbnailId;
   839     iParams.iThumbnailId = aThumbnailId;
   937     iParams.iOverwrite = EFalse;
   840     iParams.iOverwrite = EFalse;
   938     iParams.iVirtualUri = EFalse;
       
   939     iParams.iImport = EFalse;
       
   940     
   841     
   941     iPath = aPath;
   842     iPath = aPath;
   942     iOrientation = aOrientation;
   843     iOrientation = aOrientation;
   943     iModified = aModified;
   844     iModified = aModified;
   944     }
   845     }
   975     iParams.iFileName = aCurrentPath;
   876     iParams.iFileName = aCurrentPath;
   976     iParams.iTargetUri = aNewPath;
   877     iParams.iTargetUri = aNewPath;
   977     }
   878     }
   978 
   879 
   979 // ---------------------------------------------------------------------------
   880 // ---------------------------------------------------------------------------
   980 // CThumbnailRequestActive::SetThumbnailL()
       
   981 // Set thumbnail from file path.
       
   982 // ---------------------------------------------------------------------------
       
   983 //
       
   984 void CThumbnailRequestActive::SetThumbnailL( const TDesC& aPath, const TDesC8& aMimeType,
       
   985     CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
       
   986     ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
       
   987     TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData,
       
   988     TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, 
       
   989     TThumbnailSize aThumbnailSize, TBool aOverwrite)
       
   990     {
       
   991     iRequestType = EReqSetThumbnailPath;
       
   992     
       
   993     iClientData = aClientData;
       
   994     iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
       
   995                             EThumbnailGeneratePersistentSizesOnly :
       
   996                             EThumbnailNoControlFlags);
       
   997     iParams.iOriginalControlFlags = iParams.iControlFlags;
       
   998     iParams.iMimeType = TDataType( aMimeType );
       
   999     iParams.iBitmapHandle = 0;
       
  1000     iParams.iSize = aSize;
       
  1001     iParams.iDisplayMode = aDisplayMode;
       
  1002     iParams.iFileName = aPath;
       
  1003     iParams.iRequestId = iRequestId;
       
  1004     iParams.iPriority = aPriority;
       
  1005     iParams.iFlags = aFlags;
       
  1006     iParams.iQualityPreference = aQualityPreference;
       
  1007     iParams.iThumbnailSize = aThumbnailSize;
       
  1008     iParams.iOverwrite = aOverwrite;
       
  1009     
       
  1010     iTargetUri = aTargetUri;
       
  1011     
       
  1012     if (iTargetUri.Length() && IsVirtualUri(iTargetUri))
       
  1013         {
       
  1014         iParams.iVirtualUri = ETrue;
       
  1015         }
       
  1016     else
       
  1017         {
       
  1018         iParams.iVirtualUri = EFalse;
       
  1019         }
       
  1020     
       
  1021     iParams.iImport = ETrue;
       
  1022     }
       
  1023 
       
  1024 // ---------------------------------------------------------------------------
       
  1025 // Request 2nd phase thumbnail
   881 // Request 2nd phase thumbnail
  1026 // ---------------------------------------------------------------------------
   882 // ---------------------------------------------------------------------------
  1027 //
   883 //
  1028 void CThumbnailRequestActive::Get2ndPhaseThumbnailL()
   884 void CThumbnailRequestActive::Get2ndPhaseThumbnailL()
  1029     {
   885     {
  1112     TN_DEBUG1( "CThumbnailRequestActive::TimerCallBack() - end");
   968     TN_DEBUG1( "CThumbnailRequestActive::TimerCallBack() - end");
  1113     
   969     
  1114     return KErrNone;
   970     return KErrNone;
  1115     }
   971     }
  1116 
   972 
  1117 // ---------------------------------------------------------------------------
       
  1118 // CThumbnailRequestActive::IsVirtualUri()
       
  1119 // Checks if URI is virtual.
       
  1120 // ---------------------------------------------------------------------------
       
  1121 //
       
  1122 TBool CThumbnailRequestActive::IsVirtualUri( const TDesC& aPath )
       
  1123     {
       
  1124     TInt pos = aPath.Find(KBackSlash);
       
  1125     
       
  1126     // normal URI
       
  1127     if ( pos == 2 )
       
  1128         {
       
  1129         return EFalse;
       
  1130         }
       
  1131     // virtual URI
       
  1132     else
       
  1133         {
       
  1134         TN_DEBUG1( "CThumbnailRequestActive::IsVirtualUri() - yes");
       
  1135         return ETrue;
       
  1136         }    
       
  1137     }
       
  1138 
       
  1139 // End of file
   973 // End of file