17 |
17 |
18 |
18 |
19 #include "glximageviewermanager.h" |
19 #include "glximageviewermanager.h" |
20 #include <glxsingletonstore.h> |
20 #include <glxsingletonstore.h> |
21 #include <glxtracer.h> |
21 #include <glxtracer.h> |
|
22 #include <glxlog.h> |
22 |
23 |
23 #include <f32file.h> |
24 #include <f32file.h> |
|
25 #include <caf/manager.h> |
|
26 #include <driveinfo.h> |
|
27 #include <coeutils.h> |
24 |
28 |
|
29 _LIT( KPrivateFolder, "\\Private\\" ); |
|
30 _LIT( KGifFileExt, ".gif" ); |
|
31 _LIT( KTempFilePath, "?:\\data\\images\\200104E7.gif" ); |
|
32 |
25 EXPORT_C CGlxImageViewerManager* CGlxImageViewerManager::InstanceL() |
33 EXPORT_C CGlxImageViewerManager* CGlxImageViewerManager::InstanceL() |
26 { |
34 { |
27 TRACER("CGlxImageViewerManager::InstanceL()"); |
35 TRACER("CGlxImageViewerManager::InstanceL()"); |
28 return CGlxSingletonStore::InstanceL(&NewL); |
36 return CGlxSingletonStore::InstanceL(&NewL); |
29 } |
37 } |
48 |
56 |
49 EXPORT_C TBool CGlxImageViewerManager::IsPrivate() |
57 EXPORT_C TBool CGlxImageViewerManager::IsPrivate() |
50 { |
58 { |
51 TRACER("CGlxImageViewerManager::IsPrivate()"); |
59 TRACER("CGlxImageViewerManager::IsPrivate()"); |
52 return iIsPrivate; |
60 return iIsPrivate; |
|
61 } |
|
62 |
|
63 EXPORT_C TBool CGlxImageViewerManager::IsPrivateGif() |
|
64 { |
|
65 TRACER("CGlxImageViewerManager::IsPrivateGif()"); |
|
66 return iIsPrivateGif; |
53 } |
67 } |
54 |
68 |
55 CGlxImageViewerManager::CGlxImageViewerManager() |
69 CGlxImageViewerManager::CGlxImageViewerManager() |
56 : iImageUri(NULL), iFile(NULL), iIsPrivate(EFalse) |
70 : iImageUri(NULL), iFile(NULL), iIsPrivate(EFalse) |
57 { |
71 { |
134 // --------------------------------------------------------------------------- |
160 // --------------------------------------------------------------------------- |
135 // |
161 // |
136 EXPORT_C void CGlxImageViewerManager::SetImageFileHandleL(const RFile& aFileHandle) |
162 EXPORT_C void CGlxImageViewerManager::SetImageFileHandleL(const RFile& aFileHandle) |
137 { |
163 { |
138 TRACER("void CGlxImageViewerManager::SetImageFileHandleL()"); |
164 TRACER("void CGlxImageViewerManager::SetImageFileHandleL()"); |
139 _LIT( KPrivateFolder, "\\Private\\" ); // Platsec private folder |
|
140 TFileName filePath; |
165 TFileName filePath; |
141 User::LeaveIfError( aFileHandle.FullName( filePath ) ); |
166 User::LeaveIfError(aFileHandle.FullName(filePath)); |
142 SetImageUriL( filePath ); |
167 TParsePtrC parse(filePath); |
143 TParsePtrC parse( filePath ); |
168 if (parse.PathPresent() && parse.Path().Length() |
144 if( parse.PathPresent() && |
169 > KPrivateFolder().Length() && parse.Path().Left( |
145 parse.Path().Length() > KPrivateFolder().Length() && |
170 KPrivateFolder().Length()).CompareF(KPrivateFolder) == 0) |
146 parse.Path().Left( KPrivateFolder().Length() ).CompareF( KPrivateFolder ) == 0 ) |
|
147 { |
171 { |
148 // File is in private folder; duplicate file handle |
172 // File is in private folder; duplicate file handle |
149 iFile = new (ELeave) RFile64; |
173 iFile = new (ELeave) RFile64; |
150 User::LeaveIfError( iFile->Duplicate( aFileHandle ) ); |
174 User::LeaveIfError(iFile->Duplicate(aFileHandle)); |
151 iIsPrivate = ETrue; |
175 iIsPrivate = ETrue; |
|
176 if (parse.Ext().Compare(KGifFileExt) == 0) |
|
177 { |
|
178 // Gif file from private path, hence make a local copy. |
|
179 TFileName ramFilePath(KTempFilePath); |
|
180 TChar drive; |
|
181 User::LeaveIfError(DriveInfo::GetDefaultDrive( |
|
182 DriveInfo::EDefaultRam, drive)); |
|
183 ramFilePath[0] = drive; |
|
184 ConeUtils::EnsurePathExistsL(ramFilePath); |
|
185 if (!iManager) |
|
186 { |
|
187 iManager = ContentAccess::CManager::NewL(); |
|
188 } |
|
189 iManager->CopyFile(*iFile, ramFilePath); |
|
190 filePath.Copy(ramFilePath); |
|
191 iIsPrivateGif = ETrue; |
|
192 } |
152 } |
193 } |
|
194 SetImageUriL( filePath ); |
153 } |
195 } |