diff -r 0d1adf67ec1b -r 12f60d9a73b3 csxhelp/HelpEngine/src/CSXHLegacyContentParser.cpp --- a/csxhelp/HelpEngine/src/CSXHLegacyContentParser.cpp Thu Aug 19 09:42:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,280 +0,0 @@ -/* -* Copyright (c) 2006 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: CCSXHLegacyContentParser class definition -* -*/ - -#include "CSXHLegacyContentParser.h" -#include "CSXHLegacyTOC1.h" -#include "CSXHLegacyTOC2.h" -#include "CSXHKywdTOC1.h" -#include "CSXHHelpDataBase.h" - -#include -#include -#include -#include -#include - -CCSXHLegacyContentParser* CCSXHLegacyContentParser::NewL(CCSXHHelpDataBase -*aDataBase) - { - CCSXHLegacyContentParser* self = CCSXHLegacyContentParser::NewLC(aDataBase); - CleanupStack::Pop(self); - return self; - } - -CCSXHLegacyContentParser* CCSXHLegacyContentParser::NewLC(CCSXHHelpDataBase -*aDataBase) - { - CCSXHLegacyContentParser* self = new (ELeave) CCSXHLegacyContentParser(aDataBase); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -void CCSXHLegacyContentParser::ConstructL() - { - iModel = CHlpModel::NewL(CCoeEnv::Static()->FsSession(), this); - iModel->OpenL(); - } - -CCSXHLegacyContentParser::CCSXHLegacyContentParser(CCSXHHelpDataBase* aDataBase) - :iTopic(NULL) - { - iDataBase = aDataBase; - iHlpList = NULL; - } - -CCSXHLegacyContentParser::~CCSXHLegacyContentParser() - { - if(iTopic) - delete iTopic; - if(iHlpList) - delete iHlpList; - - //No need to delete the entries here, it will be done by the database - iLegacyTOC1List.Close(); - - if(iModel) - { - TRAP_IGNORE(iModel->CloseL()); - delete iModel; - } - } -// -------------------------------------------------------------------------- -// Gets the available kywds from the legacy content and sends them to the -// database -// -------------------------------------------------------------------------- -void CCSXHLegacyContentParser::GenerateKywdTOC1ListL(CCSXHHelpDataBase* aDataBase) - { - CHlpList* HlpList; - HlpList = CHlpList::NewL(); - iModel->SearchL(EIndexList); - iModel->LoadListL(HlpList); - - TInt nCount(HlpList->MdcaCount()); - for (TInt i(0); i < nCount; i++) - { - TBuf appName; - appName = HlpList->MdcaPoint(i); - TRAP_IGNORE(aDataBase->InsertKeywordL(appName,i,HlpList->Item(i)->HelpFileUid())); - } - delete HlpList; - } -// -------------------------------------------------------------------------- -// Gets the available TOC1 from the legacy content and sends them to the -// database. Local copy of the TOC1 objects is maintained for generating TOC2 -// -------------------------------------------------------------------------- -void CCSXHLegacyContentParser::GenerateTOC1ListL(CCSXHHelpDataBase* aDataBase) - { - const TInt twoColumnFlatArray = 2; - CDesCArray* categoryList = new(ELeave) CDesCArrayFlat(twoColumnFlatArray); - CleanupStack::PushL(categoryList); - iModel->CategoryListL(categoryList); - CCSXHLegacyTOC1* categoryObj; - TBuf appName; - TLinearOrder anOrder(Orderer); - for (TInt i(0); i < categoryList->Count(); i++) - { - appName = categoryList->MdcaPoint(i); - categoryObj = CCSXHLegacyTOC1::NewLC(appName); - if ( aDataBase->GetAppHelpsTopics()->InsertChild(categoryObj) ) - { - iLegacyTOC1List.AppendL(categoryObj);//Keep a local copy*/ - } - CleanupStack::Pop(categoryObj); - } - CleanupStack::Pop(categoryList); - delete categoryList; - } -// -------------------------------------------------------------------------- -// Gets the available TOC2 objects for the TOC1 object -// -------------------------------------------------------------------------- -void CCSXHLegacyContentParser::GenerateTOC2ListL(CCSXHGenericTOC1& aGenericTOC1Object, - RPointerArray* GenericTOC2List) - { - iModel->SearchL(ETopicListForCategory, aGenericTOC1Object.GetName()); - if(iHlpList) - { - delete iHlpList; - //Next line is Needed for code scanner - iHlpList = NULL; - } - iHlpList = CHlpList::NewL(); - iModel->LoadListL(iHlpList); - - TInt count(iHlpList->MdcaCount()); - CCSXHGenericTOC2* PLegacyTOC2; - TLinearOrder anOrder(Orderer); - for (TInt i(0); i < count; i++) - { - PLegacyTOC2 = CCSXHLegacyTOC2::NewL(&aGenericTOC1Object,iHlpList->MdcaPoint(i)); - if (KErrNone != GenericTOC2List->InsertInOrder(PLegacyTOC2,anOrder)) - delete PLegacyTOC2; - } - } -// -------------------------------------------------------------------------- -// Gets the RTF content for the given topic -// -------------------------------------------------------------------------- -TAny* CCSXHLegacyContentParser::GetTopicContentL(CCSXHGenericTOC2* aTopic) - { - TInt nCount(iHlpList->MdcaCount()); - TInt nIndex(0); - for(nIndex=0;nIndex < nCount; nIndex++) - { - TBuf appName; - appName.Append(iHlpList->MdcaPoint(nIndex)); - if(appName.Compare(aTopic->GetName())==0) - break; - } - if( nIndex == nCount ) - { - return NULL; - } - if(iTopic) - { - delete iTopic; - //Next line is Needed for code scanner - iTopic = NULL; - } - iTopic = CHlpTopic::NewL(); - CHlpItem* item = iHlpList->Item(nIndex); - iModel->TopicSearchL(*item); - iModel->LoadTopicL(iTopic); - return iTopic->TopicText(); - } - -void CCSXHLegacyContentParser::HandleModelEventL(TInt aEvent) - { - iStatus = aEvent; - } - -// -------------------------------------------------------------------------- -// Gets the number of kywd subtopics for the given kywd -// -------------------------------------------------------------------------- -TInt CCSXHLegacyContentParser::InitGenerateTOC2ListForKeywordSearchL(CCSXHKywdTOC1* aKywdTOC1Object) - { - if(aKywdTOC1Object->LegacyIndex() == -1 || (!iLegacyTOC1List.Count())) - return 0; - CHlpList* SearchList; - - if(iHlpList) - { - delete iHlpList; - //Next line is Needed for code scanner - iHlpList = NULL; - } - iHlpList = CHlpList::NewL(); - SearchList = CHlpList::NewLC(); - iModel->SearchL(EIndexList); - iModel->LoadListL(SearchList); - //Search Panel - CHlpItem* item = SearchList->Item(aKywdTOC1Object->LegacyIndex()); - iModel->IndexSearchL(*item); - iModel->LoadListL(iHlpList); - - CleanupStack::PopAndDestroy(SearchList); - return iHlpList->MdcaCount(); - } - - -// -------------------------------------------------------------------------- -// Gets the available kywd subtopics for the given kywd -// -------------------------------------------------------------------------- -void CCSXHLegacyContentParser::GenerateTOC2ListForKeywordSearchL(CCSXHKywdTOC1* aKywdTOC1Object) - { - if(aKywdTOC1Object->LegacyIndex() == -1 || (!iLegacyTOC1List.Count())) - return; - - TInt nCount(iHlpList->MdcaCount()); - CCSXHGenericTOC2* PLegacyTOC2; - TLinearOrder anOrder(Orderer); - for (TInt i(0); i < nCount; i++) - { - PLegacyTOC2 = CCSXHLegacyTOC2::NewL(aKywdTOC1Object,iHlpList->MdcaPoint(i),ETrue); - iDataBase->InsertKeywordTopic(aKywdTOC1Object,PLegacyTOC2); - iDataBase->IncrementKeywordSearchCount(); - } - - } - -CCSXHLegacyTOC1* CCSXHLegacyContentParser::GetTOC1ForTOC2(CCSXHLegacyTOC2*) - { - TInt count = iLegacyTOC1List.Count(); - CCSXHLegacyTOC1* toc1; - for(TInt i = 0; iCategory().Compare(toc1->GetName())==0) - return toc1; - } - return NULL; - } - -CCSXHHelpContentBase* CCSXHLegacyContentParser::GetContextTopic(TCoeHelpContext& aContext) - { - TRAPD(err,LoadContextTopicL(aContext)); - if(err != KErrNone || NULL == iTopic) - return NULL; - - TInt count = iLegacyTOC1List.Count(); - CCSXHLegacyTOC1* toc1; - for(TInt i = 0; iCategory().Compare(toc1->GetName())==0) - { - return toc1->GetContextTopic(iTopic->TopicTitle()); - } - } - return NULL; - } - -void CCSXHLegacyContentParser::LoadContextTopicL(TCoeHelpContext& aContext) - { - if(iTopic) - { - delete iTopic; - //Next line is Needed for code scanner - iTopic = NULL; - } - - iModel->ContextSearchL(aContext); - if(ETopicAvailable == iStatus ) - { - iTopic = CHlpTopic::NewL(); - iModel->LoadTopicL(iTopic); - } - }