20 #include <s32mem.h> |
20 #include <s32mem.h> |
21 #include "hspsthememanagement.h" |
21 #include "hspsthememanagement.h" |
22 #include "hspsdomdocument.h" |
22 #include "hspsdomdocument.h" |
23 #include "hspsresource.h" |
23 #include "hspsresource.h" |
24 |
24 |
|
25 // ODT version number |
|
26 _LIT( KHpspOdtVersion, "3.0" ); |
|
27 |
25 // ============================ MEMBER FUNCTIONS =============================== |
28 // ============================ MEMBER FUNCTIONS =============================== |
26 |
29 |
27 // ----------------------------------------------------------------------------- |
30 // ----------------------------------------------------------------------------- |
28 // ChspsODT::ChspsODT |
31 // ChspsODT::ChspsODT |
29 // C++ default constructor can NOT contain any code, that |
32 // C++ default constructor can NOT contain any code, that |
60 aTarget.SetThemeUid( aSource.ThemeUid() ); |
63 aTarget.SetThemeUid( aSource.ThemeUid() ); |
61 aTarget.SetProviderNameL( aSource.ProviderName() ); |
64 aTarget.SetProviderNameL( aSource.ProviderName() ); |
62 aTarget.SetThemeFullNameL( aSource.ThemeFullName() ); |
65 aTarget.SetThemeFullNameL( aSource.ThemeFullName() ); |
63 aTarget.SetThemeShortNameL( aSource.ThemeShortName() ); |
66 aTarget.SetThemeShortNameL( aSource.ThemeShortName() ); |
64 aTarget.SetThemeVersionL( aSource.ThemeVersion() ); |
67 aTarget.SetThemeVersionL( aSource.ThemeVersion() ); |
65 aTarget.SetPackageVersionL( aSource.PackageVersion() ); |
|
66 aTarget.SetDescriptionL( aSource.Description() ); |
68 aTarget.SetDescriptionL( aSource.Description() ); |
67 aTarget.SetLogoFileL( aSource.LogoFile() ); |
69 aTarget.SetLogoFileL( aSource.LogoFile() ); |
68 aTarget.SetPreviewFileL( aSource.PreviewFile() ); |
70 aTarget.SetPreviewFileL( aSource.PreviewFile() ); |
69 aTarget.SetMultiInstance( aSource.MultiInstance() ); |
71 aTarget.SetMultiInstance( aSource.MultiInstance() ); |
70 aTarget.SetOdtLanguage( aSource.OdtLanguage() ); |
72 aTarget.SetOdtLanguage( aSource.OdtLanguage() ); |
124 delete iPreviewFile; |
126 delete iPreviewFile; |
125 delete iProviderName; |
127 delete iProviderName; |
126 delete iThemeFullName; |
128 delete iThemeFullName; |
127 delete iThemeShortName; |
129 delete iThemeShortName; |
128 delete iThemeVersion; |
130 delete iThemeVersion; |
129 delete iPackageVersion; |
|
130 // clean up the array |
131 // clean up the array |
131 if( iResourceList ) |
132 if( iResourceList ) |
132 { |
133 { |
133 iResourceList->ResetAndDestroy(); |
134 iResourceList->ResetAndDestroy(); |
134 delete iResourceList; |
135 delete iResourceList; |
217 // ChspsODT::ExternalizeHeaderL |
218 // ChspsODT::ExternalizeHeaderL |
218 // Externalizes the ODT header |
219 // Externalizes the ODT header |
219 // (other items were commented in a header). |
220 // (other items were commented in a header). |
220 // ----------------------------------------------------------------------------- |
221 // ----------------------------------------------------------------------------- |
221 void ChspsODT::ExternalizeHeaderL( RWriteStream& aStream ) const |
222 void ChspsODT::ExternalizeHeaderL( RWriteStream& aStream ) const |
222 { |
223 { |
223 const TDesC& packageVersion = PackageVersion(); |
224 aStream.WriteInt32L( KHpspOdtVersion().Length() ); |
224 aStream.WriteInt32L( packageVersion.Length() ); |
225 aStream << KHpspOdtVersion(); |
225 if( packageVersion.Length() > 0 ) |
226 |
226 { |
|
227 aStream << packageVersion; |
|
228 } |
|
229 |
|
230 aStream.WriteUint32L( iThemeUid ); |
227 aStream.WriteUint32L( iThemeUid ); |
231 |
228 |
232 const TDesC& providerName = ProviderName(); |
229 const TDesC& providerName = ProviderName(); |
233 aStream.WriteInt32L( providerName.Length() ); |
230 aStream.WriteInt32L( providerName.Length() ); |
234 if( providerName.Length() > 0 ) |
231 if( providerName.Length() > 0 ) |
295 // (other items were commented in a header). |
292 // (other items were commented in a header). |
296 // ----------------------------------------------------------------------------- |
293 // ----------------------------------------------------------------------------- |
297 TInt ChspsODT::HeaderSize() const |
294 TInt ChspsODT::HeaderSize() const |
298 { |
295 { |
299 TInt size = sizeof( TInt32 ); |
296 TInt size = sizeof( TInt32 ); |
300 if( PackageVersion().Length() > 0 ) |
297 size += sizeof( TUint32 ); // String streaming insert also max. 32bit member of TCardinality. |
301 { |
298 size += KHpspOdtVersion().Size(); |
302 size += sizeof( TUint32 ); // String streaming insert also max. 32bit member of TCardinality. |
|
303 size += PackageVersion().Size(); |
|
304 } |
|
305 |
299 |
306 size += sizeof( TUint32 ); // iThemeUid |
300 size += sizeof( TUint32 ); // iThemeUid |
307 |
301 |
308 size += sizeof( TInt32 ); |
302 size += sizeof( TInt32 ); |
309 if( ProviderName().Length() > 0 ) |
303 if( ProviderName().Length() > 0 ) |
368 // (other items were commented in a header). |
362 // (other items were commented in a header). |
369 // ----------------------------------------------------------------------------- |
363 // ----------------------------------------------------------------------------- |
370 EXPORT_C void ChspsODT::InternalizeHeaderL( RReadStream& aStream ) |
364 EXPORT_C void ChspsODT::InternalizeHeaderL( RReadStream& aStream ) |
371 { |
365 { |
372 TInt len = aStream.ReadInt32L(); |
366 TInt len = aStream.ReadInt32L(); |
373 HBufC* version = NULL; |
367 HBufC* odtVersion = NULL; |
374 if( len > 0 ) |
368 if ( len > 0 ) |
375 { |
369 { |
376 version = HBufC::NewL( aStream, len ); |
370 odtVersion = HBufC::NewL( aStream, len ); |
377 } |
371 } |
378 CleanupStack::PushL( version ); |
372 CleanupStack::PushL( odtVersion ); |
379 |
373 // ODT version check. |
380 // Check version request. |
374 if ( KHpspOdtVersion() != *odtVersion ) |
381 if( iPackageVersion ) |
375 { |
382 { |
376 User::Leave( KErrNotSupported ); |
383 TBool supported = ETrue; |
377 } |
384 if( version == NULL ) |
378 CleanupStack::PopAndDestroy( odtVersion ); |
385 { |
|
386 supported = EFalse; |
|
387 } |
|
388 else if( version && |
|
389 version->Compare( *iPackageVersion ) != 0 ) |
|
390 { |
|
391 supported = EFalse; |
|
392 } |
|
393 |
|
394 if( !supported ) |
|
395 { |
|
396 // Package version check requested (iPackageVersion defined) |
|
397 // and package version not supported |
|
398 User::Leave( KErrNotSupported ); |
|
399 } |
|
400 } |
|
401 |
|
402 if( version ) |
|
403 { |
|
404 delete iPackageVersion; |
|
405 iPackageVersion = NULL; |
|
406 iPackageVersion = version->AllocL(); |
|
407 } |
|
408 CleanupStack::PopAndDestroy( version ); |
|
409 |
379 |
410 iThemeUid = aStream.ReadUint32L(); |
380 iThemeUid = aStream.ReadUint32L(); |
411 |
381 |
412 delete iProviderName; |
382 delete iProviderName; |
413 iProviderName = NULL; |
383 iProviderName = NULL; |
925 { |
895 { |
926 return iConfigurationType; |
896 return iConfigurationType; |
927 } |
897 } |
928 |
898 |
929 // ----------------------------------------------------------------------------- |
899 // ----------------------------------------------------------------------------- |
930 // ChspsODT::SetPackageVersionL |
|
931 // Set package version |
|
932 // (other items were commented in a header). |
|
933 // ----------------------------------------------------------------------------- |
|
934 EXPORT_C void ChspsODT::SetPackageVersionL( const TDesC& aVersion ) |
|
935 { |
|
936 if( iPackageVersion ) |
|
937 { |
|
938 delete iPackageVersion; |
|
939 iPackageVersion = NULL; |
|
940 } |
|
941 |
|
942 if( aVersion.Length() != 0 ) |
|
943 { |
|
944 iPackageVersion = aVersion.AllocL(); |
|
945 } |
|
946 } |
|
947 |
|
948 // ----------------------------------------------------------------------------- |
|
949 // ChspsODT::PackageVersion |
|
950 // Get package version |
|
951 // (other items were commented in a header). |
|
952 // ----------------------------------------------------------------------------- |
|
953 EXPORT_C const TDesC& ChspsODT::PackageVersion() const |
|
954 { |
|
955 if ( iPackageVersion ) |
|
956 { |
|
957 return *iPackageVersion; |
|
958 } |
|
959 else |
|
960 { |
|
961 return KNullDesC; |
|
962 } |
|
963 } |
|
964 |
|
965 // ----------------------------------------------------------------------------- |
|
966 // ChspsODT::SetFamily |
900 // ChspsODT::SetFamily |
967 // ----------------------------------------------------------------------------- |
901 // ----------------------------------------------------------------------------- |
968 EXPORT_C void ChspsODT::SetFamily( const TUint32 aFamilyMask ) |
902 EXPORT_C void ChspsODT::SetFamily( const TUint32 aFamilyMask ) |
969 { |
903 { |
970 iFamilyMask = aFamilyMask; |
904 iFamilyMask = aFamilyMask; |