imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp
branchRCL_3
changeset 13 ffb2d5dd62e9
parent 11 85a88bc05e45
child 14 ad31f4183ddc
--- 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", &params.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", &params.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 );
         }