locationlandmarksrefappfors60/Src/LandmarksCategoriesModel.cpp
branchRCL_3
changeset 17 1fc85118c3ae
parent 16 8173571d354e
child 18 870918037e16
--- a/locationlandmarksrefappfors60/Src/LandmarksCategoriesModel.cpp	Thu Aug 19 09:48:36 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +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 CLandmarksCategoriesModel class and some help functions
-*
-*/
-
-
-
-#include <eikenv.h>
-#include <gulicon.h>
-#include <AknsUtils.h>
-#include <AknsItemID.h>
-
-#include <EPos_CPosLandmarkCategory.h>
-
-#include <lmrefapp.mbg>
-#include "LandmarksCommonData.h"
-#include "LandmarksCategoriesModel.h"
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// DefaultIconIndex returns the icon index of the appropriate default icon.
-// User defined categories have different default icons than global ones.
-//
-// Returns: an icon index
-// Param:   aCategory the category to investigate
-// -----------------------------------------------------------------------------
-//
-TInt DefaultIconIndex(CPosLandmarkCategory& aCategory)
-    {
-    // Global categories have different default icon than user-defined.
-    TBool isGlobal = aCategory.GlobalCategory() != KPosLmNullGlobalCategory;
-
-    if (isGlobal)
-        {
-        return KDefaultGlobalIconIndex;
-        }
-    else
-        {
-        return KDefaultUserIconIndex;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// ResetAndDestroyIcons
-// Resets and destroys an array of icons. This function is used as a 
-// TCleanupOperation.
-// Params: aAny: The icons array to reset ands destroy
-// -----------------------------------------------------------------------------
-//
-void ResetAndDestroyIcons(TAny* aAny)
-    {
-    CIconList* icons = reinterpret_cast <CIconList*> (aAny);
-    for (TInt i = 0; i < icons->Count(); i++)
-        {
-        delete &icons[i];
-        }
-    icons->Reset();
-    }
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CLandmarksCategoriesModel::CLandmarksCategoriesModel()
-	{
-	}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CLandmarksCategoriesModel::ConstructL()
-	{
-	// The list box model uses MDesCArray interface class to take in text items.
-	iListItems = new(ELeave) CDesCArraySeg(KGranularity);
-	}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CLandmarksCategoriesModel* CLandmarksCategoriesModel::NewL()
-    {
-    CLandmarksCategoriesModel* self = 
-        new (ELeave) CLandmarksCategoriesModel();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CLandmarksCategoriesModel::~CLandmarksCategoriesModel()
-	{
-	delete iListItems;
-	}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CLandmarksCategoriesModel::SetItemIds(RArray<TPosLmItemId>* aItemIds)
-    {
-    iItemIds = aItemIds;
-
-    // Empty descriptor model
-    iListItems->Reset();
-    }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CDesCArraySeg* CLandmarksCategoriesModel::ItemList()
-    {
-    return iListItems;
-    }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CLandmarksCategoriesModel::SetCurrentItem(TInt aIndex) 
-    {
-    iCurrentItem = aIndex;
-    }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-TPosLmItemId CLandmarksCategoriesModel::CurrentItemId()
-    {
-    if (iCurrentItem < 0 || iCurrentItem > iItemIds->Count() - 1)
-        {
-        return KPosLmNullItemId;
-        }
-
-    return (*iItemIds)[iCurrentItem];
-    }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CIconList* CLandmarksCategoriesModel::CreateIconListL()
-    {
-    CIconList* iconList = new (ELeave) CArrayPtrFlat<CGulIcon>(KGranularity);
-    CleanupStack::PushL(TCleanupItem(ResetAndDestroyIcons, iconList));
-    
-    // Create the global category icon consisting of its image and mask.
-    TAknsItemID aknsItemId ={0,0};
-    CGulIcon* icon = AknsUtils::CreateGulIconL(NULL, aknsItemId,
-        KLandmarksMbmFileName, 
-        EMbmLmrefappCategory_global, 
-        EMbmLmrefappCategory_global_mask);
-    CleanupStack::PushL(icon);
-    icon->SetBitmapsOwnedExternally(EFalse); 
-    iconList->AppendL(icon);
-    CleanupStack::Pop(icon);
-
-    // Create the user defined category icon consisting of its image and mask.
-    icon = AknsUtils::CreateGulIconL(NULL, aknsItemId,
-        KLandmarksMbmFileName, 
-        EMbmLmrefappCategory_user, 
-        EMbmLmrefappCategory_user_mask);
-    CleanupStack::PushL(icon);
-    icon->SetBitmapsOwnedExternally(EFalse); 
-    iconList->AppendL(icon);
-    CleanupStack::Pop(icon);
-    
-    CleanupStack::Pop(); // iconList
-
-    // initialze iIconList. We don't need to delete any possible previous 
-    // iIconList since ownership is transferred to calling object.
-    iIconList = iconList;
-
-    return iconList;
-    }
-
-// -----------------------------------------------------------------------------
-// Refreshes a part of the model. Those categories that have been read from the 
-// database overwrites old categories. The model is refreshed incrementally 
-// from top to bottom.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CLandmarksCategoriesModel::RepopulateModelL(
-    CArrayPtr<CPosLandmarkCategory>* aCategories)
-    {
-    TInt nrOfReadItems = aCategories->Count();
-
-    // Format and insert the read categories
-    for (TInt i = 0; i < nrOfReadItems; i++)
-        {
-        // Format name and icon
-        CPosLandmarkCategory* category = (*aCategories)[i];
-        HBufC* formattedName = FormatListItemLC(*category);
-
-        // Insert formatted descriptor into model
-        iListItems->AppendL(*formattedName);
-
-        CleanupStack::PopAndDestroy(formattedName);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// Formats a list item to the following format "X\tcategoryName"
-// where X = icon index
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-HBufC* CLandmarksCategoriesModel::FormatListItemLC(CPosLandmarkCategory& aCategory)
-    {
-    // Extract name
-    TPtrC name;
-    aCategory.GetCategoryName(name);
-    // 10 extra chars for icon index and column separator
-    const TInt KExtraChars = 10;
-    HBufC* formattedNameBuf = HBufC::NewLC(name.Length() + KExtraChars);
-    TPtr formattedNamePtr = formattedNameBuf->Des();
-
-    // Extract icon info
-    TPtrC mbmIconFile;
-    TInt iconIndex, maskIndex;
-    TInt res = aCategory.GetIcon(mbmIconFile, iconIndex, maskIndex);
-
-    // Format list item
-    if (res == KErrNone)
-        {
-        // Create icon and append it to icon array. 
-        TRAPD(err, AppendIconL(mbmIconFile, iconIndex, maskIndex));
-        if (err == KErrNone)
-            {
-            // Append the array index where the icon is appended
-            formattedNamePtr.AppendNum(iIconList->Count() - 1);
-            }
-        else // Unable to create icon, use appropriate default icon.
-            {
-            formattedNamePtr.AppendNum(DefaultIconIndex(aCategory));
-            }
-        }
-    else // res == KErrNotFound
-        {
-        formattedNamePtr.AppendNum(DefaultIconIndex(aCategory));
-        }
-    formattedNamePtr.Append(KTab);
-    formattedNamePtr.Append(name);
-
-    return formattedNameBuf;
-    }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CLandmarksCategoriesModel::AppendIconL(
-    const TDesC& aMbmFile, 
-    TInt aIconOffset, 
-    TInt aMaskOffset)
-    {
-    TAknsItemID aknsItemId = {0,0};
-    CGulIcon* icon = AknsUtils::CreateGulIconL(NULL, aknsItemId,
-        aMbmFile, 
-        aIconOffset, 
-        aMaskOffset);
-    CleanupStack::PushL(icon);
-    icon->SetBitmapsOwnedExternally(EFalse);
-    iIconList->AppendL(icon);
-    CleanupStack::Pop(icon);
-    }
-
-