diff -r 8173571d354e -r 1fc85118c3ae locationlandmarksrefappfors60/Src/LandmarksLmCategoriesModel.cpp --- a/locationlandmarksrefappfors60/Src/LandmarksLmCategoriesModel.cpp Thu Aug 19 09:48:36 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: -* Implements the CLandmarksLmCategoriesModel class -* -*/ - - - -#include -#include -#include -#include - -#include - -#include "LandmarksUtils.h" -#include "LandmarksCommonData.h" -#include "LandmarksLmCategoriesModel.h" -#include "LandmarksApplicationEngine.h" - - -_LIT(KItemFormat, "\t%S"); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -CLandmarksLmCategoriesModel::CLandmarksLmCategoriesModel( - RArray& aMarkedCategories) -: iMarkedCategoryIds(aMarkedCategories) - { - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CLandmarksLmCategoriesModel::ConstructL(CLandmarksApplicationEngine& aEngine) - { - iCategories = aEngine.CategoriesL(); - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -CLandmarksLmCategoriesModel* CLandmarksLmCategoriesModel::NewL( - CLandmarksApplicationEngine& aEngine, - RArray& aMarkedCategories) - { - CLandmarksLmCategoriesModel* self = new (ELeave) - CLandmarksLmCategoriesModel(aMarkedCategories); - CleanupStack::PushL(self); - self->ConstructL(aEngine); - CleanupStack::Pop(self); - return self; - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -CLandmarksLmCategoriesModel::~CLandmarksLmCategoriesModel() - { - if (iCategories) - { - iCategories->ResetAndDestroy(); - delete iCategories; - } - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CLandmarksLmCategoriesModel::SelectCategoriesL( - CArrayFixFlat& aSelectedIndexes) - { - // clear current list of selected categories - iMarkedCategoryIds.Reset(); - - for (TInt i = 0; i < aSelectedIndexes.Count(); i++) - { - TInt categoryIndex = aSelectedIndexes[i]; - - // Fetch the id of the selected item. - __ASSERT_ALWAYS((categoryIndex >= 0) && (categoryIndex < iCategories->Count()), - LandmarksUtils::Panic(KErrGeneral)); - TPosLmItemId selectedCategoryId = (*iCategories)[categoryIndex]->CategoryId(); - - User::LeaveIfError(iMarkedCategoryIds.Append(selectedCategoryId)); - } - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -CArrayFixFlat* CLandmarksLmCategoriesModel::SelectedCategoriesL() - { - CArrayFixFlat* selectedItems = new (ELeave) CArrayFixFlat(KGranularity); - CleanupStack::PushL(selectedItems); - - for (TInt i = 0; i < iCategories->Count(); i++) - { - TPosLmItemId categoryId = (*iCategories)[i]->CategoryId(); - - TInt index = iMarkedCategoryIds.Find(categoryId); - if (KErrNotFound != index) - { - selectedItems->AppendL(i); - } - } - - CleanupStack::Pop(selectedItems); - return selectedItems; - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -CDesCArray* CLandmarksLmCategoriesModel::FormattedCategoryNamesL() - { - // Granularity is set to be 8. - CDesCArrayFlat* listItems = new (ELeave) CDesCArrayFlat(KGranularity); - CleanupStack::PushL(listItems); - - for (TInt i = 0; i < iCategories->Count(); i++) - { - // Create buffer that will contain the name and mark status. 3 extra - // chars for tab and icon index. - const TInt KExtraChars = 3; - TPtrC categoryName; - User::LeaveIfError((*iCategories)[i]->GetCategoryName(categoryName)); - HBufC* formattedCategoryName = HBufC::NewLC(categoryName.Length() + KExtraChars); - - // format string with category - formattedCategoryName->Des().Format(KItemFormat, &categoryName); - - listItems->AppendL(*formattedCategoryName); - CleanupStack::PopAndDestroy(formattedCategoryName); - } - - CleanupStack::Pop(listItems); - - iListItems = listItems; - return iListItems; - } - -