diff -r 7333d7932ef7 -r 8b7f4e561641 secureswitools/swisistools/source/rscparser/aplapplistitem.cpp --- a/secureswitools/swisistools/source/rscparser/aplapplistitem.cpp Tue Aug 31 15:21:33 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,468 +0,0 @@ -// Copyright (c) 2009 - 2010 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: -// aplapplistitem.cpp -// -/** -* @file aplapplistitem.cpp -* -* @internalComponent -* @released -*/ -#include "aplapplistitem.h" -#include "barsc2.h" -#include "parse.h" -#include "uidtype.h" - -// -// class CAppLocalOpaqueDataInfo -// - -//Default Constructor for class CAppLocalOpaqueDataInfo -CAppLocalOpaqueDataInfo::CAppLocalOpaqueDataInfo() - : iServiceUid(0), - iLocale(0), - iOpaqueData(NULL) -{ -} - -//Destructor for class CAppLocalOpaqueDataInfo -CAppLocalOpaqueDataInfo::~CAppLocalOpaqueDataInfo() -{ - delete iOpaqueData; -} - -//Constructor for class CAppLocalOpaqueDataInfo -CAppLocalOpaqueDataInfo::CAppLocalOpaqueDataInfo(TInt aLocale, TUint32 aServiceUid, Ptr8* aOpaqueData) - : iLocale(aLocale), - iServiceUid(aServiceUid), - iOpaqueData(aOpaqueData) -{ - assert(iOpaqueData); -} - - -CAppLocalOpaqueDataInfo* CAppLocalOpaqueDataInfo::NewL(TInt aLocale, TUint32 aServiceUid, Ptr8* aOpaqueData) -{ - CAppLocalOpaqueDataInfo* self=new CAppLocalOpaqueDataInfo(aLocale, aServiceUid, aOpaqueData); - if(NULL==self) - { - std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - - return self; -} - - -Ptr8* CAppLocalOpaqueDataInfo::GetOpaqueData() -{ - return iOpaqueData; -} - -TUint32 CAppLocalOpaqueDataInfo::GetServiceUid() -{ - return iServiceUid; -} - -TInt CAppLocalOpaqueDataInfo::GetLocale() -{ - return iLocale; -} - -// -// Class CAppLocalizableInfo -// -CAppLocalizableInfo::~CAppLocalizableInfo() -{ - delete iCaption; - delete iShortCaption; - delete iGroupName; - delete iIconFileName; - if(iViewDataArray) - iViewDataArray->clear(); - delete iViewDataArray; - delete iOpaqueData; -} - -CAppLocalizableInfo::CAppLocalizableInfo(const std::string& aRegistrationFileName, const std::string& aLocalizeFilePath) - : iNumOfAppIcons(0), - iRegistrationFilePath(aRegistrationFileName), - iLocalPath(aLocalizeFilePath) -{ - iCaption = NULL; - iShortCaption = NULL; - iIconFileName = NULL; - iGroupName = NULL; - iViewDataArray = NULL; - iOpaqueData = NULL; -} - -CAppLocalizableInfo* CAppLocalizableInfo::NewL(const std::string& aRegistrationFileName,const std::string& aLocalizeFilePath) -{ - CAppLocalizableInfo* self=new CAppLocalizableInfo(aRegistrationFileName, aLocalizeFilePath); - if(NULL==self) - { - std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - - return self; -} - - -void CAppLocalizableInfo::SetCaption(Ptr16* Caption) -{ - iCaption = Caption; -} -void CAppLocalizableInfo::SetShortCaption(Ptr16* ShortCaption) -{ - iShortCaption = ShortCaption; -} -void CAppLocalizableInfo::SetGroupName(Ptr16* GroupName) -{ - iGroupName = GroupName; -} -void CAppLocalizableInfo::SetIconFileName(Ptr16* IconFileName) -{ - iIconFileName = IconFileName; -} - -void CAppLocalizableInfo::SetNumOfAppIcons(TInt NumOfAppIcons) -{ - iNumOfAppIcons = NumOfAppIcons; -} - -void CAppLocalizableInfo::SetLocale(TInt Locale) -{ - iLocale = Locale; -} - -void CAppLocalizableInfo::SetOpaqueData(Ptr8* OpaqueData) -{ - iOpaqueData = OpaqueData; -} - -std::vector* CAppLocalizableInfo::GetViewDataArray() -{ - return iViewDataArray; -} -Ptr16* CAppLocalizableInfo::GetGroupName() -{ - return iGroupName; -} - -Ptr16* CAppLocalizableInfo::GetCaption() -{ - return iCaption; -} - -Ptr16* CAppLocalizableInfo::GetShortCaption() -{ - return iShortCaption; -} - -Ptr16* CAppLocalizableInfo::GetIconFileName() -{ - return iIconFileName; -} - -TInt CAppLocalizableInfo::GetNumOfAppIcons() -{ - return iNumOfAppIcons; -} - -TInt CAppLocalizableInfo::GetLocale() -{ - return iLocale; -} - -Ptr8* CAppLocalizableInfo::GetOpaqueData() -{ - return iOpaqueData; -} - -//Read ViewData struct of Localizable resource file. -void CAppLocalizableInfo::ReadViewDataL(RResourceReader& aResourceReader) -{ - // read LEN WORD STRUCT view_list[] - const TInt numOfViews = aResourceReader.ReadInt16L(); - - if (numOfViews > 0) - { - iViewDataArray = new std::vector; - if(NULL==iViewDataArray) - { - std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - } - - for(TInt view = 0; view < numOfViews; ++view) - { - CAppViewData* viewData = CAppViewData::NewL(); - aResourceReader.ReadUint32L(); // skip over LONG reserved_long - aResourceReader.ReadUint32L(); // skip over LLINK reserved_llink - - // read LONG uid - const TUid viewUid = {aResourceReader.ReadInt32L()}; - viewData->SetUid(viewUid); - // read LONG screen_mode - const TInt screenMode = aResourceReader.ReadInt32L(); - viewData->SetScreenMode(screenMode); - - aResourceReader.ReadUint32L(); // skip over LONG reserved_long - aResourceReader.ReadUint32L(); // skip over LLINK reserved_llink - - // read LTEXT caption - PtrC16* viewCaption = aResourceReader.ReadTPtrCL(); - - if(NULL != viewCaption) - { - viewData->SetCaptionL(viewCaption); - - viewCaption->iPtr = NULL; //To Avoid double delete in destructor. To be destroyed by RResourceReader. - delete viewCaption; - } - // read WORD number_of_icons - const TInt numOfViewIcons = aResourceReader.ReadInt16L(); - viewData->SetNumOfViewIcons(numOfViewIcons); - - // read LTEXT icon_file - PtrC16* viewIconFile = aResourceReader.ReadTPtrCL(); - - if(NULL != viewIconFile) - { - ConvertToPlatformSpecificPath(viewIconFile->iPtr, viewIconFile->iMaxLength); - Ptr16* fullViewIconFileName = ViewDataIconFileNameL(viewIconFile); - if (fullViewIconFileName) - { - viewData->SetIconFileNameL(fullViewIconFileName); - viewData->SetNonMbmIconFile(true); - delete fullViewIconFileName; - } - else - { - viewIconFile->iPtr = NULL; - viewIconFile->iMaxLength = 0; - - if (numOfViewIcons > 0 && iIconFileName) - { // default to app icon filename - viewIconFile->iPtr = iIconFileName->GetPtr(); - viewIconFile->iMaxLength = iIconFileName->GetLength(); - std::string errMsg= "Failed : ServiceInfo Icon File not present in Device."; - throw CResourceFileException(errMsg); - } - } - } - - iViewDataArray->push_back(viewData); - if(NULL != viewIconFile) - { - viewIconFile->iPtr = NULL; //To Avoid double delete in destructor. To be destroyed by RResourceReader. - } - delete viewIconFile; - } - -} - - -Ptr16* CAppLocalizableInfo::ViewDataIconFileNameL(const PtrC16* aIconFileName) const -{ - Ptr16* filename = NULL; - if (aIconFileName->iMaxLength == 0) - return NULL; - - /* - * aIconFileName may contain a valid string in some format (for eg. URI format) other than path to a regular file on disk - * and that can be a mbm or non-mbm file. Such a filename will be reported as invalid filename by iFs.IsValidName() method. - * aIconFileName will be returned since it is a valid string. - */ - ParsePtrC parsePtr(aIconFileName); - - if ( parsePtr.IsWild() || !parsePtr.PathPresent() || !parsePtr.NamePresent() ) - { - parsePtr.SetToNull(); - return NULL; - } - - filename = new Ptr16(aIconFileName->iMaxLength); - if(NULL==filename || NULL == filename->GetPtr()) - { - parsePtr.SetToNull(); - std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - filename->UpdateLength(aIconFileName->iMaxLength); - BufCpy(filename->GetPtr(),aIconFileName->iPtr,aIconFileName->iMaxLength); - - std::wstring iFileName = Ptr16ToWstring(filename); - std::wstring iFilePath = string2wstring(iLocalPath); - std::string fullnamewitoutdrive = parsePtr.FullNameWithoutDrive(); - std::wstring iFilename1 = string2wstring(fullnamewitoutdrive); - - if(parsePtr.DrivePresent()) - iFilePath.append(iFilename1); - else - iFilePath.append(iFileName); - - // check for fully qualified icon filename - if (parsePtr.DrivePresent() && FileExists(iFileName)) - { - parsePtr.SetToNull(); - return filename; - } - else - { - // check for icon file on same drive as localisable resource file - std::string localisableResourceFileDrive = parsePtr.Drive(); - TInt ret = FindWild(aIconFileName); - if(ret == 0 && FileExists(iFilePath)) - { - parsePtr.SetToNull(); - return filename; - } - else - { - ParsePtrC parsePtr_reg(iRegistrationFilePath); - std::string registrationFileDrive = parsePtr_reg.Drive(); - - if(registrationFileDrive.compare(localisableResourceFileDrive)) - { - // check for icon file on same drive as registration file - std::string registrationfilepath(parsePtr_reg.FullPath()); - registrationfilepath.append(parsePtr.NameAndExt()); - std::wstring iRegFilePath = string2wstring(registrationfilepath); - std::string iconfile = parsePtr.StrName(); - - ret = FindWild(registrationFileDrive,iconfile,localisableResourceFileDrive); - if(ret == 0 && FileExists(iRegFilePath)) - { - parsePtr_reg.SetToNull(); - parsePtr.SetToNull(); - return filename; - } - } - parsePtr_reg.SetToNull(); - } - } - parsePtr.SetToNull(); //To Avoid double delete in destructor. To be destroyed by RResourceReader. - //Same as iIconFileName data member of class CAppInfoReader. Destructor will delete. - return NULL; // Or to be deleted by calling function. -} - -// -// Class CAppViewData -// - -CAppViewData::~CAppViewData() -{ - delete iCaption; - delete iIconFileName; -} - -CAppViewData::CAppViewData() - : iNonMbmIconFile(false),iNumOfViewIcons(0),iScreenMode(0) -{ - iCaption = NULL; - iIconFileName = NULL; - iUid = NullUid; -} - -CAppViewData* CAppViewData::NewL() -{ - CAppViewData* self=new CAppViewData(); - if(NULL==self) - { - std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - - return self; -} - -void CAppViewData::SetUid(TUid aUid) -{ - iUid=aUid; -} - -void CAppViewData::SetScreenMode(TInt aScreenMode) -{ - iScreenMode=aScreenMode; -} - -void CAppViewData::SetCaptionL(const PtrC16* aCaption) -{ - if(aCaption != NULL) - { - iCaption=new Ptr16(aCaption->iMaxLength); - if(NULL==iCaption || NULL==iCaption->GetPtr()) - { - std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - iCaption->UpdateLength(aCaption->iMaxLength); - BufCpy(iCaption->GetPtr(),aCaption->iPtr,aCaption->iMaxLength); - } - else - iCaption = NULL; -} - -void CAppViewData::SetIconFileNameL(const Ptr16* aFileName) -{ - if(aFileName != NULL) - { - iIconFileName = new Ptr16(aFileName->GetLength()); - if(NULL==iIconFileName || NULL==iIconFileName->GetPtr()) - { - std::string errMsg= "Failed : Error in Reading File. Memory Allocation Failed"; - throw CResourceFileException(errMsg); - } - iIconFileName->UpdateLength(aFileName->GetLength()); - BufCpy(iIconFileName->GetPtr(),aFileName->GetPtr(),aFileName->GetLength()); - } - else - iIconFileName = NULL; -} - -void CAppViewData::SetNumOfViewIcons(TInt aNumOfViewIcons) -{ - iNumOfViewIcons = aNumOfViewIcons; -} - -void CAppViewData::SetNonMbmIconFile(TBool aNonMbmIconFile) -{ - iNonMbmIconFile = aNonMbmIconFile; -} - -TUid CAppViewData::Uid() const -{ - return iUid; -} - -Ptr16* CAppViewData::GetCaption() -{ - return iCaption; -} -TInt CAppViewData::GetScreenMode() -{ - return iScreenMode; -} -Ptr16* CAppViewData::GetIconFileName() -{ - return iIconFileName; -} -TInt CAppViewData::GetNumOfViewIcons() -{ - return iNumOfViewIcons; -}