diff -r 85a88bc05e45 -r ffb2d5dd62e9 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp Tue Apr 27 16:57:55 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp Tue May 11 16:30:11 2010 +0300 @@ -613,7 +613,9 @@ User::Leave(err); } - if(Server()->StoreForPathL(params.iFileName)->IsDiskFull()) + // disk space check only for stored sizes + if ( params.iThumbnailSize != ECustomThumbnailSize && + Server()->StoreForPathL(params.iFileName)->IsDiskFull() ) { User::Leave( KErrDiskFull ); } @@ -736,22 +738,31 @@ { if( bitmapSize.iWidth < bitmapSize.iHeight ) { - TInt height = (*missingSizes)[i].iSize.iHeight; - (*missingSizes)[i].iSize.iHeight = (*missingSizes)[i].iSize.iWidth; - (*missingSizes)[i].iSize.iWidth = height; - TN_DEBUG1( "CThumbnailServerSession::RequestSetThumbnailByBitmapL() - portrait"); + TThumbnailSize size = (*missingSizes)[ i ].iType; + + if ( size == EFullScreenThumbnailSize || + size == EVideoFullScreenThumbnailSize || + size == EAudioFullScreenThumbnailSize || + size == EImageFullScreenThumbnailSize ) + { + TInt height = (*missingSizes)[i].iSize.iHeight; + (*missingSizes)[i].iSize.iHeight = (*missingSizes)[i].iSize.iWidth; + (*missingSizes)[i].iSize.iWidth = height; + + TN_DEBUG1( "CThumbnailServerSession::RequestSetThumbnailByBitmapL() - portrait"); + } } - + CThumbnailScaleTask* scaleTask = CThumbnailScaleTask::NewL( Server()->Processor(), - *Server(), params.iTargetUri, bitmap, bitmapSize, - (*missingSizes)[i].iSize, (*missingSizes)[i].iCrop, params.iDisplayMode, - KMaxPriority, KNullDesC, (*missingSizes)[i].iType, params.iModified, EFalse, EFalse, - reqId); + *Server(), params.iTargetUri, bitmap, bitmapSize, + (*missingSizes)[i].iSize, (*missingSizes)[i].iCrop, params.iDisplayMode, + KMaxPriority, KNullDesC, (*missingSizes)[i].iType, params.iModified, EFalse, EFalse, + reqId); CleanupStack::PushL( scaleTask ); scaleTask->SetDoStore( ETrue ); Server()->Processor().AddTaskL( scaleTask ); CleanupStack::Pop( scaleTask ); - + // completion to first task, because task processor works like stack if( i == 0 ) { @@ -793,7 +804,9 @@ TN_DEBUG2( "CThumbnailServerSession::CreateGenerateTaskFromFileHandleL() -- create thumbnail generation task for %S", ¶ms.iFileName ); - if(Server()->StoreForPathL(params.iFileName)->IsDiskFull()) + // disk space check only for stored sizes + if ( params.iThumbnailSize != ECustomThumbnailSize && + Server()->StoreForPathL(params.iFileName)->IsDiskFull() ) { User::Leave( KErrDiskFull ); } @@ -872,6 +885,7 @@ // Generate task is now responsible for completing the message iMessage = RMessage2(); } + // ----------------------------------------------------------------------------- // CThumbnailServerSession::CreateGenerateTaskL() // Create a task to generate a new thumbnail @@ -884,7 +898,9 @@ TN_DEBUG2( "CThumbnailServerSession::CreateGenerateTaskFromBufferL() -- create thumbnail generation task for %S", ¶ms.iTargetUri ); - if(Server()->StoreForPathL(params.iTargetUri)->IsDiskFull()) + // disk space check only for stored sizes + if ( params.iThumbnailSize != ECustomThumbnailSize && + Server()->StoreForPathL(params.iTargetUri)->IsDiskFull() ) { User::Leave( KErrDiskFull ); }