87 { |
94 { |
88 TRACER("CGlxImageReader::ConstructL"); |
95 TRACER("CGlxImageReader::ConstructL"); |
89 |
96 |
90 CActiveScheduler::Add(this); |
97 CActiveScheduler::Add(this); |
91 iIsLaunchedFromFMngr = EFalse; |
98 iIsLaunchedFromFMngr = EFalse; |
92 TDataType imageType; |
|
93 |
99 |
94 iImgViewerMgr = CGlxImageViewerManager::InstanceL(); |
100 iImgViewerMgr = CGlxImageViewerManager::InstanceL(); |
95 if (iImgViewerMgr && iImgViewerMgr->IsPrivate()) |
101 if (iImgViewerMgr && iImgViewerMgr->IsPrivate()) |
96 { |
102 { |
97 iIsLaunchedFromFMngr = ETrue; |
103 iIsLaunchedFromFMngr = ETrue; |
98 } |
104 } |
99 |
105 |
100 GetFileTypeL(imageType); |
106 TInt errInImage = KErrNone; |
101 if (iIsLaunchedFromFMngr) |
107 if (iIsLaunchedFromFMngr) |
102 { |
108 { |
103 // TODO type cast handle to RFile |
109 // TODO type cast handle to RFile |
104 iImageDecoder = CImageDecoder::FileNewL(iImgViewerMgr->ImageFileHandle(), ContentAccess::EPeek); |
110 TRAP(errInImage,iImageDecoder = CImageDecoder::FileNewL(iImgViewerMgr->ImageFileHandle(), ContentAccess::EPeek)); |
105 } |
111 } |
106 else |
112 else |
107 { |
113 { |
108 iImageDecoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(), iImgViewerMgr->ImageUri()->Des()); |
114 TRAP(errInImage,iImageDecoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(), iImgViewerMgr->ImageUri()->Des())); |
109 } |
115 } |
110 |
116 |
|
117 if(errInImage != KErrNone) |
|
118 { |
|
119 User::Leave(errInImage); |
|
120 } |
111 iFrame = new(ELeave)CFbsBitmap(); |
121 iFrame = new(ELeave)CFbsBitmap(); |
112 iFrame->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels,iImageDecoder->FrameInfo(0).iFrameDisplayMode); |
122 iFrame->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels,iImageDecoder->FrameInfo(0).iFrameDisplayMode); |
113 iImageDecoder->Convert(&iStatus,*iFrame,0); |
123 iImageDecoder->Convert(&iStatus,*iFrame,0); |
114 SetActive(); |
124 SetActive(); |
115 } |
125 } |
116 |
126 |
117 // --------------------------------------------------------- |
|
118 // CGlxImageReader::GetFileTypeL |
|
119 // --------------------------------------------------------- |
|
120 // |
|
121 void CGlxImageReader::GetFileTypeL(TDataType aMimeType) |
|
122 { |
|
123 TRACER("CGlxImageReader::GetFileTypeL"); |
|
124 |
|
125 RApaLsSession session; |
|
126 User::LeaveIfError(session.Connect()); |
|
127 CleanupClosePushL(session); |
|
128 |
|
129 TUid uid; |
|
130 if(iIsLaunchedFromFMngr) |
|
131 { |
|
132 // TODO type cast handle to RFile |
|
133 User::LeaveIfError(session.AppForDocument(iImgViewerMgr->ImageFileHandle(), uid, aMimeType)); |
|
134 } |
|
135 else |
|
136 { |
|
137 User::LeaveIfError(session.AppForDocument(iImgViewerMgr->ImageUri()->Des(),uid,aMimeType)); |
|
138 } |
|
139 CleanupStack::PopAndDestroy(); // session |
|
140 } |
|
141 |
127 |
142 // --------------------------------------------------------- |
128 // --------------------------------------------------------- |
143 // CGlxImageReader::DoCancel |
129 // CGlxImageReader::DoCancel |
144 // --------------------------------------------------------- |
130 // --------------------------------------------------------- |
145 // |
131 // |
187 TInt rights = ERightsNone; |
173 TInt rights = ERightsNone; |
188 TBool drmProtected = EFalse; |
174 TBool drmProtected = EFalse; |
189 attributeSet.GetValue(EIsProtected,drmProtected); |
175 attributeSet.GetValue(EIsProtected,drmProtected); |
190 if(!drmProtected) |
176 if(!drmProtected) |
191 { |
177 { |
192 CleanupStack::PopAndDestroy(); |
178 CleanupStack::PopAndDestroy(&attributeSet); |
193 delete content; |
179 delete content; |
194 content = NULL; |
180 content = NULL; |
195 return EFalse; |
181 return EFalse; |
196 } |
182 } |
197 attributeSet.GetValue(ECanView,rights); |
183 attributeSet.GetValue(ECanView,rights); |
198 CleanupStack::PopAndDestroy(); |
184 CleanupStack::PopAndDestroy(&attributeSet); |
199 |
185 |
200 if(content) |
186 if(content) |
201 { |
187 { |
202 delete content; |
188 delete content; |
203 content = NULL; |
189 content = NULL; |