diff -r 000000000000 -r 79c6a41cd166 homescreenpluginsrv/hspsodt/src/hspsodt.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenpluginsrv/hspsodt/src/hspsodt.cpp Thu Dec 17 08:54:17 2009 +0200 @@ -0,0 +1,911 @@ +/* +* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Class represents an Object Description Tree of Xuikon. +* +*/ + + +#include "hspsodt.h" +#include +#include +#include "hspsthememanagement.h" +#include "hspsdomdocument.h" +#include "hspsresource.h" + +/* Literal delim is used in separation of theme header and and other data in ODT-streaming. */ +_LIT(KDelim, "#"); + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// ChspsODT::ChspsODT +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +ChspsODT::ChspsODT() + { + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void ChspsODT::ConstructL() + { + iDomDocument = ChspsDomDocument::NewL(); + iResourceList = new( ELeave ) CArrayPtrSeg( KPathListGranularity ); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +EXPORT_C ChspsODT* ChspsODT::NewL() + { + ChspsODT* self = new( ELeave ) ChspsODT; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::NewLC +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +EXPORT_C ChspsODT* ChspsODT::NewLC( const TDesC8& aStreamData ) + { + ChspsODT* data = ChspsODT::NewL(); + CleanupStack::PushL( data ); + RDesReadStream stream( aStreamData ); + CleanupClosePushL( stream ); + data->InternalizeL( stream ); + CleanupStack::PopAndDestroy( &stream ); + return data; + } + +// Destructor +ChspsODT::~ChspsODT() + { + delete iDescription; + delete iLogoFile; + delete iPreviewFile; + delete iProviderName; + delete iThemeFullName; + delete iThemeShortName; + delete iThemeVersion; + delete iPackageVersion; + // clean up the array + if( iResourceList ) + { + iResourceList->ResetAndDestroy(); + delete iResourceList; + } + delete iDomDocument; + } + + +// ----------------------------------------------------------------------------- +// ChspsODT::MarshalHeaderL +// Marshals the ODT header into descriptor +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C HBufC8* ChspsODT::MarshalHeaderL() const + { + CBufFlat* buf = CBufFlat::NewL( KMaxHeaderDataLength8 ); + CleanupStack::PushL( buf ); + RBufWriteStream stream( *buf ); //stream over the buffer + CleanupClosePushL( stream ); + ExternalizeHeaderL( stream ); + CleanupStack::PopAndDestroy( &stream ); + + //Create a heap descriptor from the buffer + HBufC8* des = HBufC8::NewL( buf->Size() ); + TPtr8 ptr( des->Des() ); + buf->Read( 0, ptr, buf->Size() ); + CleanupStack::PopAndDestroy( buf ); + + return des; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::UnMarshalHeaderLC +// Unmarshals the ODT header from descriptor stream +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C ChspsODT* ChspsODT::UnMarshalHeaderLC( const TDesC8& aStreamData ) + { + ChspsODT* data = ChspsODT::NewL(); + CleanupStack::PushL( data ); + RDesReadStream stream( aStreamData ); + CleanupClosePushL( stream ); + data->InternalizeHeaderL( stream ); + CleanupStack::PopAndDestroy( &stream ); + + return data; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::UnMarshalHeaderL +// Unmarshals the ODT header from descriptor stream +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::UnMarshalHeaderL( const TDesC8& aStreamData ) + { + + RDesReadStream stream( aStreamData ); + CleanupClosePushL( stream ); + InternalizeHeaderL( stream ); + CleanupStack::PopAndDestroy( &stream ); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ExternalizeL +// Externalizes the ODT +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::ExternalizeL( RWriteStream& aStream ) const + { + ExternalizeHeaderL( aStream ); + ExternalizeResourceListL( aStream ); + aStream << *iDomDocument; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::InternalizeL +// Internalizes the ODT +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::InternalizeL( RReadStream& aStream ) + { + InternalizeHeaderL( aStream ); + // consumes header delimiter + aStream.ReadInt16L(); + InternalizeResourceListL( aStream ); + delete iDomDocument; + iDomDocument = NULL; + iDomDocument = ChspsDomDocument::NewL( aStream ); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ExternalizeHeaderL +// Externalizes the ODT header +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +void ChspsODT::ExternalizeHeaderL( RWriteStream& aStream ) const + { + if ( iPackageVersion ) + { + aStream << *iPackageVersion; + } + else + { + aStream << KNullDesC; + } + + aStream.WriteUint32L( iFamilyMask ); + aStream.WriteUint32L( iConfigurationType ); + aStream.WriteUint32L( iRootUid ); + aStream.WriteUint32L( iProviderUid ); + aStream.WriteUint32L( iThemeUid ); + aStream.WriteInt32L( iMultiInstance ); + if ( iDescription ) + { + aStream << *iDescription; + } + else + { + aStream << KNullDesC; + } + if ( iLogoFile ) + { + aStream << *iLogoFile; + } + else + { + aStream << KNullDesC; + } + if ( iPreviewFile ) + { + aStream << *iPreviewFile; + } + else + { + aStream << KNullDesC; + } + if ( iProviderName ) + { + aStream << *iProviderName; + } + else + { + aStream << KNullDesC; + } + + if ( iThemeFullName ) + { + aStream << *iThemeFullName; + } + else + { + aStream << KNullDesC; + } + + if ( iThemeShortName ) + { + aStream << *iThemeShortName; + } + else + { + aStream << KNullDesC; + } + + if ( iThemeVersion ) + { + aStream << *iThemeVersion; + } + else + { + aStream << KNullDesC; + } + aStream.WriteInt32L( iLanguage ); + aStream.WriteUint32L( iFlags ); + // end of the header delimiter + aStream.WriteL( KDelim ); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::InternalizeHeaderL +// Internalizes the ODT header +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::InternalizeHeaderL( RReadStream& aStream ) + { + HBufC* version = HBufC::NewL( aStream, KMaxFileName ); + CleanupStack::PushL( version ); + if ( iPackageVersion && version->Des().Compare( iPackageVersion->Des() ) != 0 ) + { + // Package version check requested (iPackageVersion defined) + // and package version not supported + User::Leave( KErrNotSupported ); + } + if ( !iPackageVersion && version->Length() ) + { + // Package version check not requested + iPackageVersion = version->AllocL(); + } + CleanupStack::PopAndDestroy( version ); + + iFamilyMask = aStream.ReadUint32L(); + iConfigurationType = aStream.ReadUint32L(); + iRootUid = aStream.ReadUint32L(); + iProviderUid = aStream.ReadUint32L(); + iThemeUid = aStream.ReadUint32L(); + iMultiInstance = aStream.ReadInt32L(); + + delete iDescription; + iDescription = NULL; + iDescription = HBufC::NewL(aStream, KMaxDescLength ); + + delete iLogoFile; + iLogoFile = NULL; + iLogoFile = HBufC::NewL(aStream, KMaxFileName ); + + delete iPreviewFile; + iPreviewFile = NULL; + iPreviewFile = HBufC::NewL(aStream, KMaxFileName ); + + delete iProviderName; + iProviderName = NULL; + iProviderName = HBufC::NewL(aStream, KMaxFileName ); + + delete iThemeFullName; + iThemeFullName = NULL; + iThemeFullName = HBufC::NewL(aStream, KMaxFileName ); + + delete iThemeShortName; + iThemeShortName = NULL; + iThemeShortName = HBufC::NewL(aStream, KMaxFileName ); + + delete iThemeVersion; + iThemeVersion = NULL; + iThemeVersion = HBufC::NewL(aStream, KMaxFileName ); + + iLanguage = aStream.ReadInt32L(); + iFlags = aStream.ReadUint32L(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::AddResourceL +// Adds a resource into Resource List. Takes ownership. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::AddResourceL( ChspsResource* aResource ) + { + const TInt resourceIndex = CheckResourceL( aResource ); + if ( resourceIndex >= 0 ) + { + ChspsResource* resource = iResourceList->At( resourceIndex ); + delete resource; + resource = NULL; + iResourceList->Delete( resourceIndex ); + } + iResourceList->AppendL( aResource ); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::CheckResourceL +// Check for duplicates +// ----------------------------------------------------------------------------- +TInt ChspsODT::CheckResourceL( ChspsResource* aResource ) + { + if ( !aResource ) + { + User::Leave( KErrArgument ); + } + + for ( TInt index=0; index < ResourceCount(); index++ ) + { + ChspsResource& r = ResourceL(index); + if ( r.ResourceId() == aResource->ResourceId() + && r.FileName() == aResource->FileName() ) + { + return index; + } + } + + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::DeleteResourceL +// Deletes resource from the element array +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::DeleteResourceL( TInt aIndex ) + { + if ( aIndex < 0 || aIndex >= ResourceCount() ) + { + User::Leave( KErrArgument ); + } + + ChspsResource* resource = iResourceList->At( aIndex ); + if ( resource ) + { + delete resource; + resource = NULL; + iResourceList->Delete( aIndex ); + } + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ResourceL +// Get the resource by the index +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C ChspsResource& ChspsODT::ResourceL( TInt aIndex ) const + { + if ( aIndex < 0 || aIndex >= ResourceCount() ) + { + User::Leave( KErrArgument ); + } + + return ( *iResourceList->At(aIndex)); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ElementCount +// Returns the amount of elements +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C TInt ChspsODT::ResourceCount() const + { + return iResourceList->Count(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ExternalizeResourceListL +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::ExternalizeResourceListL( RWriteStream& aStream ) const + { + // Stream out the resource list + TInt count = iResourceList->Count(); + aStream.WriteInt32L(count); + ChspsResource* resource; + for (TInt i=0;iAt(i); + resource->ExternalizeL(aStream); + } + } + +// ----------------------------------------------------------------------------- +// ChspsODT::InternalizeResourceListL +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::InternalizeResourceListL( RReadStream& aStream ) + { + // clean up the array + if( iResourceList ) + { + iResourceList->ResetAndDestroy(); + } + // stream in the resource list + TInt count = aStream.ReadInt32L(); + for (TInt i=0;iInternalizeL(aStream); + iResourceList->AppendL( resource ); + CleanupStack::Pop( resource ); // now owned by array + resource = NULL; + } + } + + +// ----------------------------------------------------------------------------- +// ChspsODT::SetRootUid +// Set RootUid +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetRootUid( TInt aUid ) + { + iRootUid = aUid; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::RootUid +// Get RootUid +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C TInt ChspsODT::RootUid() const + { + return iRootUid; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetProviderUid +// Set ProviderUid +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetProviderUid( TInt aUid ) + { + iProviderUid = aUid; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ProviderUid +// Get ProviderUid +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C TInt ChspsODT::ProviderUid() const + { + return iProviderUid; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetThemeUid +// Set ThemeUid +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetThemeUid( TInt aUid ) + { + iThemeUid = aUid; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ThemeUid +// Get ThemeUid +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C TInt ChspsODT::ThemeUid() const + { + return iThemeUid; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetProviderNameL +// Set ProviderNameL +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetProviderNameL( const TDesC& aName ) + { + delete iProviderName; + iProviderName = NULL; + iProviderName = aName.AllocL(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ProviderName +// Get ProviderName +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C const TDesC& ChspsODT::ProviderName() const + { + if ( iProviderName ) + { + return *iProviderName; + } + else + { + return KNullDesC; + } + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetThemeFullNameL +// Set ThemeFullNameL +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetThemeFullNameL( const TDesC& aName ) + { + delete iThemeFullName; + iThemeFullName = NULL; + iThemeFullName = aName.AllocL(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ThemeFullName +// Get ThemeFullName +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C const TDesC& ChspsODT::ThemeFullName() const + { + if ( iThemeFullName ) + { + return *iThemeFullName; + } + else + { + return KNullDesC; + } + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetThemeShortNameL +// Set ThemeShortNameL +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetThemeShortNameL( const TDesC& aName ) + { + delete iThemeShortName; + iThemeShortName = NULL; + iThemeShortName = aName.AllocL(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ThemeShortName +// Get ThemeShortName +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C const TDesC& ChspsODT::ThemeShortName() const + { + if ( iThemeShortName ) + { + return *iThemeShortName; + } + else + { + return KNullDesC; + } + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetThemeVersionL +// Set ThemeVersionL +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetThemeVersionL( const TDesC& aVersion ) + { + delete iThemeVersion; + iThemeVersion = NULL; + iThemeVersion = aVersion.AllocL(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ThemeVersion +// Get ThemeVersion +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C const TDesC& ChspsODT::ThemeVersion() const + { + if ( iThemeVersion ) + { + return *iThemeVersion; + } + else + { + return KNullDesC; + } + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetOdtLanguage +// Set OdtLanguage +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetOdtLanguage( TInt aLanguage ) + { + iLanguage = aLanguage; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::OdtLanguage +// Get OdtLanguage +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C TInt ChspsODT::OdtLanguage() const + { + return iLanguage; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetFlags +// Set Flags +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetFlags( TUint aFlags ) + { + iFlags = aFlags; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::Flags +// Get Flags +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C TUint ChspsODT::Flags() const + { + return iFlags; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::DomDocument +// Get DomDocument +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C ChspsDomDocument& ChspsODT::DomDocument() const + { + return *iDomDocument; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::CloneL() +// Makes a clone of this ODT and returns pointer to it +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C ChspsODT* ChspsODT::CloneL() + { + ChspsODT* clone = new (ELeave) ChspsODT; + CleanupStack::PushL( clone ); + clone->ConstructL(); + clone->SetConfigurationType( iConfigurationType ); + clone->SetRootUid( iRootUid ); + clone->SetProviderUid( iProviderUid ); + clone->SetThemeUid( iThemeUid ); + if( iProviderName ) + { + clone->SetProviderNameL( *iProviderName ); + } + if( iThemeFullName ) + { + clone->SetThemeFullNameL( *iThemeFullName ); + } + if( iThemeShortName ) + { + clone->SetThemeShortNameL( *iThemeShortName ); + } + if( iThemeVersion ) + { + clone->SetThemeVersionL( *iThemeVersion ); + } + if( iPackageVersion ) + { + clone->SetPackageVersionL( *iPackageVersion ); + } + clone->SetOdtLanguage( iLanguage ); + clone->SetFlags( iFlags ); + + TInt resourceCount = iResourceList->Count(); + + for ( TInt index = 0; index < resourceCount ; index++ ) + { + ChspsResource& resource = ResourceL( index ); + clone->AddResourceL( resource.CloneL() ); + } + + CleanupStack::Pop( clone ); + return clone; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::CopyDomDocumentL() +// Clones the aDom and sets it as this ChspsODT's DomDocument +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void ChspsODT::CopyDomDocumentL( ChspsDomDocument& aDom ) + { + delete iDomDocument; + iDomDocument = NULL; + iDomDocument = aDom.CloneL(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetConfigurationType() +// ----------------------------------------------------------------------------- +// +EXPORT_C void ChspsODT::SetConfigurationType( TUint aType ) + { + iConfigurationType = aType; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::ConfigurationType() +// ----------------------------------------------------------------------------- +// +EXPORT_C TUint ChspsODT::ConfigurationType() const + { + return iConfigurationType; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetPackageVersionL +// Set package version +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetPackageVersionL( const TDesC& aVersion ) + { + delete iPackageVersion; + iPackageVersion = NULL; + iPackageVersion = aVersion.AllocL(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::PackageVersion +// Get package version +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C const TDesC& ChspsODT::PackageVersion() const + { + if ( iPackageVersion ) + { + return *iPackageVersion; + } + else + { + return KNullDesC; + } + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetFamily +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetFamily( const TUint32 aFamilyMask ) + { + iFamilyMask = aFamilyMask; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::Family +// ----------------------------------------------------------------------------- +EXPORT_C TUint32 ChspsODT::Family() const + { + return iFamilyMask; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetMultiInstance +// Set MultiInstance +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetMultiInstance( TInt aMultiInstance ) + { + iMultiInstance = aMultiInstance; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::MultiInstance +// Get MultiInstance +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +EXPORT_C TInt ChspsODT::MultiInstance() const + { + return iMultiInstance; + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetDescriptionL +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetDescriptionL( const TDesC& aDesc ) + { + delete iDescription; + iDescription = NULL; + iDescription = aDesc.AllocL(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::Description +// ----------------------------------------------------------------------------- +EXPORT_C const TDesC& ChspsODT::Description() const + { + if ( iDescription ) + { + return *iDescription; + } + else + { + return KNullDesC; + } + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetLogoFileL +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetLogoFileL( const TDesC& aPath ) + { + delete iLogoFile; + iLogoFile = NULL; + iLogoFile = aPath.AllocL(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::LogoFile +// ----------------------------------------------------------------------------- +EXPORT_C const TDesC& ChspsODT::LogoFile() const + { + if ( iLogoFile ) + { + return *iLogoFile; + } + else + { + return KNullDesC; + } + } + +// ----------------------------------------------------------------------------- +// ChspsODT::SetPreviewFileL +// ----------------------------------------------------------------------------- +EXPORT_C void ChspsODT::SetPreviewFileL( const TDesC& aPath ) + { + delete iPreviewFile; + iPreviewFile = NULL; + iPreviewFile = aPath.AllocL(); + } + +// ----------------------------------------------------------------------------- +// ChspsODT::PreviewFile +// ----------------------------------------------------------------------------- +EXPORT_C const TDesC& ChspsODT::PreviewFile() const + { + if ( iPreviewFile ) + { + return *iPreviewFile; + } + else + { + return KNullDesC; + } + } + +// End of File