taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp
branchRCL_3
changeset 93 b01126ce0bec
parent 88 3321d3e205b6
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp	Tue Sep 14 20:58:58 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp	Wed Sep 15 12:00:00 2010 +0300
@@ -514,9 +514,7 @@
     CFbsBitmap* ret = new (ELeave) CFbsBitmap();
     CleanupStack::PushL( ret );
 
-    CFbsBitmap* bmp = new (ELeave) CFbsBitmap();
-    CleanupStack::PushL( bmp );
-    User::LeaveIfError( bmp->Duplicate( aFbsHandle ) );
+    CFbsBitmap* bmp = DuplicateBitmapLC( aFbsHandle );
     
     // First scale using normal method, to show "draft" screenshots.
     // Do not always use aSize, preserving the aspect ratio is quite
@@ -528,11 +526,7 @@
     // Second, if it is screenshot, perform quality improvement scaling
     if ( aIsScreenshot )
         {
-        CTsBitmapScaleTask* rotaTask = new (ELeave) CTsBitmapScaleTask( *this );
-        CleanupStack::PushL( rotaTask );
-        iScaleTasks.AppendL( rotaTask );
-        rotaTask->StartLD( bmp, ret ); // ownership of bmp transferred
-        CleanupStack::Pop( rotaTask );
+        ScaleBitmapL( bmp, ret );
         CleanupStack::Pop( bmp );
         }
     else
@@ -544,6 +538,32 @@
     return ret;
     }
 
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::DuplicateBitmapL
+// --------------------------------------------------------------------------
+//
+CFbsBitmap* CTsFastSwapAreaExtension::DuplicateBitmapLC( TInt aFbsHandle  )
+    {
+    CFbsBitmap* bmp = new (ELeave) CFbsBitmap();
+    CleanupStack::PushL( bmp );
+    User::LeaveIfError( bmp->Duplicate( aFbsHandle ) );
+    return bmp;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ScaleBitmapL
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::ScaleBitmapL( CFbsBitmap* aSourceBitmap,
+        CFbsBitmap* aTargetBitmap )
+    {
+    CTsBitmapScaleTask* rotaTask = new (ELeave) CTsBitmapScaleTask( *this );
+    CleanupStack::PushL( rotaTask );
+    iScaleTasks.AppendL( rotaTask );
+    rotaTask->StartLD( aSourceBitmap, aTargetBitmap ); 
+    // ownership of bmp transferred
+    CleanupStack::Pop( rotaTask );
+    }
 
 // --------------------------------------------------------------------------
 // CTsFastSwapAreaExtension::CancelScaleTasks