photosgallery/viewframework/medialists/src/glximagereader.cpp
changeset 1 9ba538e329bd
parent 0 4e91876724a2
child 2 7d9067c6fcb1
--- a/photosgallery/viewframework/medialists/src/glximagereader.cpp	Thu Dec 17 08:45:44 2009 +0200
+++ b/photosgallery/viewframework/medialists/src/glximagereader.cpp	Thu Jan 07 12:46:23 2010 +0200
@@ -69,10 +69,17 @@
 CGlxImageReader::~CGlxImageReader()
     {
     TRACER("CGlxImageReader::~");
-    
-    Cancel();
-    delete iFrame;
-    delete iImageDecoder;
+    if(iImageDecoder)
+        {
+        Cancel();
+        delete iImageDecoder;
+        }  
+
+    if(iFrame)
+        {
+        delete iFrame;
+        }
+
     if(iImgViewerMgr)
         {
         iImgViewerMgr->DeleteInstance();
@@ -89,7 +96,6 @@
     
     CActiveScheduler::Add(this);
     iIsLaunchedFromFMngr = EFalse;
-    TDataType imageType;
 
     iImgViewerMgr = CGlxImageViewerManager::InstanceL();
     if (iImgViewerMgr && iImgViewerMgr->IsPrivate())
@@ -97,47 +103,27 @@
         iIsLaunchedFromFMngr = ETrue;    
         }
     
-    GetFileTypeL(imageType);
+    TInt errInImage = KErrNone;
     if (iIsLaunchedFromFMngr)
         {
         // TODO type cast handle to RFile
-        iImageDecoder = CImageDecoder::FileNewL(iImgViewerMgr->ImageFileHandle(), ContentAccess::EPeek);
+        TRAP(errInImage,iImageDecoder = CImageDecoder::FileNewL(iImgViewerMgr->ImageFileHandle(), ContentAccess::EPeek));
         }
     else
-        { 
-        iImageDecoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(), iImgViewerMgr->ImageUri()->Des());
+        {
+        TRAP(errInImage,iImageDecoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(), iImgViewerMgr->ImageUri()->Des()));
         }
 
+    if(errInImage != KErrNone)
+        {
+        User::Leave(errInImage);
+        }
     iFrame = new(ELeave)CFbsBitmap();
     iFrame->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels,iImageDecoder->FrameInfo(0).iFrameDisplayMode);
     iImageDecoder->Convert(&iStatus,*iFrame,0);
     SetActive();
     }
 
-// ---------------------------------------------------------
-// CGlxImageReader::GetFileTypeL
-// ---------------------------------------------------------
-//
-void CGlxImageReader::GetFileTypeL(TDataType aMimeType)
-    {
-    TRACER("CGlxImageReader::GetFileTypeL");
-    
-    RApaLsSession session;
-    User::LeaveIfError(session.Connect());
-    CleanupClosePushL(session);
-
-    TUid uid;
-    if(iIsLaunchedFromFMngr)
-        {
-        // TODO type cast handle to RFile
-        User::LeaveIfError(session.AppForDocument(iImgViewerMgr->ImageFileHandle(), uid, aMimeType));
-        }
-    else
-        {
-        User::LeaveIfError(session.AppForDocument(iImgViewerMgr->ImageUri()->Des(),uid,aMimeType));
-        }
-    CleanupStack::PopAndDestroy(); // session
-    }
 
 // ---------------------------------------------------------
 // CGlxImageReader::DoCancel
@@ -189,13 +175,13 @@
     attributeSet.GetValue(EIsProtected,drmProtected);
     if(!drmProtected)
         {
-        CleanupStack::PopAndDestroy();
+        CleanupStack::PopAndDestroy(&attributeSet);
         delete content;
         content = NULL;
         return EFalse;
         }
     attributeSet.GetValue(ECanView,rights);
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(&attributeSet);
 
     if(content)
         {