355 TN_DEBUG2( "*iMissingSizes)[ i ].iWidth == %d", (*iMissingSizes)[ i ].iSize.iWidth ); |
354 TN_DEBUG2( "*iMissingSizes)[ i ].iWidth == %d", (*iMissingSizes)[ i ].iSize.iWidth ); |
356 TN_DEBUG2( "*iMissingSizes)[ i ].iHeight == %d", (*iMissingSizes)[ i ].iSize.iHeight ); |
355 TN_DEBUG2( "*iMissingSizes)[ i ].iHeight == %d", (*iMissingSizes)[ i ].iSize.iHeight ); |
357 } |
356 } |
358 } |
357 } |
359 |
358 |
360 CThumbnailScaleTask* scaleTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename, |
359 CThumbnailScaleTask* complTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename, |
361 aBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode, |
360 aBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode, |
362 KMaxPriority, iTargetUri, (*iMissingSizes)[ i ].iType, iModified, iScaledBitmapToPool, iEXIF, |
361 KMaxPriority, iTargetUri, (*iMissingSizes)[ i ].iType, iModified, iScaledBitmapToPool, iEXIF, |
363 iRequestId); |
362 iRequestId); |
364 CleanupStack::PushL( scaleTask ); |
363 CleanupStack::PushL( complTask ); |
365 |
364 |
366 TInt err1 = KErrNone; |
365 TInt err1 = KErrNone; |
367 TInt err2 = KErrNone; |
366 TInt err2 = KErrNone; |
|
367 |
368 if(iFilename != KNullDesC) |
368 if(iFilename != KNullDesC) |
369 { |
369 { |
370 TRAP(err1, iServer.StoreForPathL(iFilename)); |
370 TRAP(err1, iServer.StoreForPathL(iFilename)); |
371 } |
371 } |
372 if(iTargetUri != KNullDesC) |
372 |
|
373 if(iTargetUri != KNullDesC ) |
373 { |
374 { |
374 TRAP(err2, iServer.StoreForPathL(iTargetUri)); |
375 TRAP(err2, iServer.StoreForPathL(iTargetUri)); |
375 } |
376 } |
376 // if trying to access Z drive, don't try to store |
377 // if trying to access Z drive, don't try to store |
377 // don't want to store custom sizes |
378 // don't want to store custom sizes |
378 if( err1 == KErrAccessDenied || err2 == KErrAccessDenied || |
379 if( err1 == KErrAccessDenied || err2 == KErrAccessDenied || |
379 (*iMissingSizes)[ i ].iType == ECustomThumbnailSize || |
380 (*iMissingSizes)[ i ].iType == ECustomThumbnailSize || |
380 (*iMissingSizes)[ i ].iType == EUnknownThumbnailSize ) |
381 (*iMissingSizes)[ i ].iType == EUnknownThumbnailSize ) |
381 { |
382 { |
382 scaleTask->SetDoStore( EFalse ); |
383 complTask->SetDoStore( EFalse ); |
383 TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this ); |
384 TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this ); |
384 } |
385 } |
385 else |
386 else |
386 { |
387 { |
387 scaleTask->SetDoStore( ETrue ); |
388 if(iFilename != KNullDesC) |
388 } |
389 { |
389 |
390 complTask->SetDoStore(iServer.IsPublicPath( iFilename )); |
390 iProcessor.AddTaskL( scaleTask ); |
391 } |
391 CleanupStack::Pop( scaleTask ); |
392 |
|
393 if(iTargetUri != KNullDesC) |
|
394 { |
|
395 complTask->SetDoStore(iServer.IsPublicPath( iTargetUri )); |
|
396 } |
|
397 } |
|
398 |
|
399 iProcessor.AddTaskL( complTask ); |
|
400 CleanupStack::Pop( complTask ); |
392 |
401 |
393 // completion to first task, because task processor works like stack |
402 // completion to first task, because task processor works like stack |
394 if( i == 0 ) |
403 if( i == 0 ) |
395 { |
404 { |
396 // compTask is now responsible for completing the RMessage |
405 // compTask is now responsible for completing the RMessage |
397 scaleTask->SetMessageData( iRequestId, iMessage, iClientThread ); |
406 complTask->SetMessageData( iRequestId, iMessage, iClientThread ); |
398 ResetMessageData(); |
407 ResetMessageData(); |
399 } |
408 } |
400 } |
409 } |
401 } |
410 } |
402 else |
411 else |