imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp
branchRCL_3
changeset 20 2b4b06654caa
parent 17 ff2fb7658ff7
child 21 6257223ede8a
equal deleted inserted replaced
19:f759b6186ab5 20:2b4b06654caa
    40 CThumbnailScaleTask* CThumbnailScaleTask::NewL( CThumbnailTaskProcessor&
    40 CThumbnailScaleTask* CThumbnailScaleTask::NewL( CThumbnailTaskProcessor&
    41     aProcessor, CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap*
    41     aProcessor, CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap*
    42     aBitmap, const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop,
    42     aBitmap, const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop,
    43     TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri,
    43     TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri,
    44     const TThumbnailSize aThumbnailSize, const TInt64 aModified,
    44     const TThumbnailSize aThumbnailSize, const TInt64 aModified,
    45     TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId)
    45     TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId,
       
    46     const TBool aImportVirtual)
    46     {
    47     {
    47     // We take ownership of aBitmap
    48     // We take ownership of aBitmap
    48     CleanupStack::PushL( aBitmap );
    49     CleanupStack::PushL( aBitmap );
    49     CThumbnailScaleTask* self = new( ELeave )CThumbnailScaleTask( aProcessor,
    50     CThumbnailScaleTask* self = new( ELeave )CThumbnailScaleTask( aProcessor,
    50         aServer, aFilename, aBitmap, aOriginalSize, aTargetSize, aCrop,
    51         aServer, aFilename, aBitmap, aOriginalSize, aTargetSize, aCrop,
    51         aDisplayMode, aPriority, aTargetUri, aThumbnailSize, aModified,
    52         aDisplayMode, aPriority, aTargetUri, aThumbnailSize, aModified,
    52         aBitmapToPool, aEXIF, aRequestId);
    53         aBitmapToPool, aEXIF, aRequestId, aImportVirtual);
    53     CleanupStack::Pop( aBitmap );
    54     CleanupStack::Pop( aBitmap );
    54     CleanupStack::PushL( self );
    55     CleanupStack::PushL( self );
    55     self->ConstructL();
    56     self->ConstructL();
    56     CleanupStack::Pop( self );
    57     CleanupStack::Pop( self );
    57     return self;
    58     return self;
    66 CThumbnailScaleTask::CThumbnailScaleTask( CThumbnailTaskProcessor& aProcessor,
    67 CThumbnailScaleTask::CThumbnailScaleTask( CThumbnailTaskProcessor& aProcessor,
    67     CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap* aBitmap,
    68     CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap* aBitmap,
    68     const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop,
    69     const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop,
    69     TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri,
    70     TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri,
    70     const TThumbnailSize aThumbnailSize, const TInt64 aModified,
    71     const TThumbnailSize aThumbnailSize, const TInt64 aModified,
    71     TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId):
    72     TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId,
       
    73     const TBool aVirtualUri):
    72     CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), iOwnBitmap( aBitmap ),
    74     CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), iOwnBitmap( aBitmap ),
    73     iOriginalSize( aOriginalSize ), iTargetSize(aTargetSize), iTargetSizeTN( aTargetSize ), iCrop( aCrop ),
    75     iOriginalSize( aOriginalSize ), iTargetSize(aTargetSize), iTargetSizeTN( aTargetSize ), iCrop( aCrop ),
    74     iDisplayMode( aDisplayMode ), iFilename( aFilename ), iTargetUri( aTargetUri ),
    76     iDisplayMode( aDisplayMode ), iFilename( aFilename ), iTargetUri( aTargetUri ),
    75     iThumbnailSize(aThumbnailSize), iModified(aModified),
    77     iThumbnailSize(aThumbnailSize), iModified(aModified),
    76     iBitmapToPool(aBitmapToPool), iEXIF(aEXIF)
    78     iBitmapToPool(aBitmapToPool), iEXIF(aEXIF), iVirtualUri( aVirtualUri )
    77     {
    79     {
    78     TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::CThumbnailScaleTask()", this );
    80     TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::CThumbnailScaleTask()", this );
    79     
    81     
    80     iRequestId = aRequestId;
    82     iRequestId = aRequestId;
    81     }
    83     }
   117         iServer.DeleteBitmapFromPool( iBitmap->Handle());
   119         iServer.DeleteBitmapFromPool( iBitmap->Handle());
   118         }
   120         }
   119 
   121 
   120     // Scaled bitmap is owned by us, delete now
   122     // Scaled bitmap is owned by us, delete now
   121     delete iScaledBitmap;
   123     delete iScaledBitmap;
       
   124     iScaledBitmap = NULL;
   122     }
   125     }
   123 
   126 
   124 
   127 
   125 // ---------------------------------------------------------------------------
   128 // ---------------------------------------------------------------------------
   126 // CThumbnailScaleTask::StartL()
   129 // CThumbnailScaleTask::StartL()
   346         if (iTargetUri != KNullDesC)
   349         if (iTargetUri != KNullDesC)
   347             {
   350             {
   348             if (iFilename != KNullDesC && iFilename.CompareF(iTargetUri) == 0)
   351             if (iFilename != KNullDesC && iFilename.CompareF(iTargetUri) == 0)
   349                 {
   352                 {
   350                 // filename and target URI match, so thumb created from associated path
   353                 // filename and target URI match, so thumb created from associated path
   351                 iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, ETrue );
   354                 iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, 
       
   355                                          iThumbnailSize, iModified, !iVirtualUri, !iVirtualUri );
   352                 }
   356                 }
   353             else
   357             else
   354                 {
   358                 {
   355                 // thumb not created from associated path
   359                 // thumb not created from associated path
   356                 iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, EFalse, EFalse );
   360                 iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, 
       
   361                                          iThumbnailSize, iModified, !iVirtualUri, EFalse );
   357                 }  
   362                 }  
   358             }
   363             }
   359         else if (iFilename != KNullDesC)
   364         else if (iFilename != KNullDesC)
   360             {
   365             {
   361             iServer.StoreThumbnailL( iFilename, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, ETrue );
   366             iServer.StoreThumbnailL( iFilename, iScaledBitmap, iOriginalSize, iCrop, 
       
   367                                      iThumbnailSize, iModified, !iVirtualUri, !iVirtualUri );
   362             }
   368             }
   363         }    
   369         }    
   364     
   370     
   365     if ( ClientThreadAlive() )
   371     if ( ClientThreadAlive() )
   366         {
   372         {