diff -r b2bba7f74ac0 -r bcb8d447d716 idlefw/plugins/shortcutplugin/src/caiscutsettingsbkmlist.cpp --- a/idlefw/plugins/shortcutplugin/src/caiscutsettingsbkmlist.cpp Mon Mar 08 21:43:47 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,307 +0,0 @@ -/* -* Copyright (c) 2005-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: Bookmark list for settings listbox -* -*/ - - -#include -#include // For CActiveFavouritesDbNotifier - -#include -#include - -#include "caiscutsettingsmodel.h" -#include "caiscutsettingsapplist.h" -#include "caiscutsettingsbkmlist.h" -#include "taiscutparser.h" -#include "caiscutsettingsitem.h" -#include "aiscutdefs.h" - -#include "debug.h" - - -_LIT( KText, "bkm=0x%x" ); -const TInt KTBUF16 = 16; - -// ======== MEMBER FUNCTIONS ======== - -CAiScutSettingsBkmList::CAiScutSettingsBkmList( - CCoeEnv* aEnv, - CAiScutSettingsModel* aModel, - MAiScutListObserver& aObserver - ) - : iEnv(aEnv) - , iModel(aModel) - , iObserver(aObserver) -{ -} - -void CAiScutSettingsBkmList::ConstructL() -{ -} - -CAiScutSettingsBkmList* CAiScutSettingsBkmList::NewL( - CCoeEnv* aEnv, - CAiScutSettingsModel* aModel, - MAiScutListObserver& aObserver) -{ - CAiScutSettingsBkmList* self = new (ELeave) CAiScutSettingsBkmList( - aEnv, aModel, aObserver); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; -} - -CAiScutSettingsBkmList::~CAiScutSettingsBkmList() -{ - iListItems.ResetAndDestroy(); - delete iBookmarkDbObserver; -} - -// --------------------------------------------------------------------------- -// From MDesCArray -// Returns the number of descriptor elements in a descriptor array. -// --------------------------------------------------------------------------- -// -TInt CAiScutSettingsBkmList::MdcaCount() const -{ - return iListItems.Count(); -} - -// --------------------------------------------------------------------------- -// From MDesCArray -// Indexes into a descriptor array. -// --------------------------------------------------------------------------- -// -TPtrC CAiScutSettingsBkmList::MdcaPoint(TInt aIndex) const -{ - if (aIndex < 0 || aIndex >= iListItems.Count()) - { - TPtrC ret(KNullDesC); - return ret; - } - return iListItems[aIndex]->Caption(); -} - -// --------------------------------------------------------------------------- -// Gets bookmark list. -// --------------------------------------------------------------------------- -// -void CAiScutSettingsBkmList::GetBookmarkListL() -{ - iListItems.ResetAndDestroy(); - - iModel->ReadBookmarksL(); - - TInt count = iModel->BookmarkCount(); - - for (TInt i = count - 1; i >= 0; i--) // newest on top - { - CFavouritesItem* item = iModel->GetBookmark(i); - - TUid uid = TUid::Uid(item->Uid()); - TPtrC name = item->Name(); - - AddBookmarkL(uid, name); - } -} - -// --------------------------------------------------------------------------- -// Tells the bookmark list to start or stop observing for changes. -// --------------------------------------------------------------------------- -// -void CAiScutSettingsBkmList::SetObservingL(TBool aObserving) -{ - delete iBookmarkDbObserver; - iBookmarkDbObserver = NULL; - - if (aObserving) - { - - iBookmarkDbObserver = new (ELeave) CActiveFavouritesDbNotifier( - iModel->FavouritesDb(), *this); - iBookmarkDbObserver->Start(); - } - - iObserving = aObserving; -} - -// --------------------------------------------------------------------------- -// Finds the index of the given settings item in the bookmark list. -// --------------------------------------------------------------------------- -// -TInt CAiScutSettingsBkmList::FindIndex(CAiScutSettingsItem& aItem) -{ - TInt index = KErrNotFound; - - TAiScutParser parser; - parser.Parse(aItem.Value()); - TUid uid = parser.ParseUid(parser.Get(EScutDefParamValue)); - - for (TInt i = iListItems.Count() - 1; i >= 0; --i) - { - if (iListItems[i]->Uid() == uid) - { - index = i; - break; - } - } - - return index; -} - -// --------------------------------------------------------------------------- -// Returns target bookmark data from the given index. -// --------------------------------------------------------------------------- -// -TInt CAiScutSettingsBkmList::GetDataByIndex( - TInt aIndex, TPtrC& aParams, TPtrC& aCaption) const -{ - if (aIndex >= 0 && aIndex < iListItems.Count()) - { - CBkmListItem* item = iListItems[aIndex]; - aParams.Set(item->Params()); - aCaption.Set(item->Caption()); - return KErrNone; - } - - return KErrNotFound; -} - -// --------------------------------------------------------------------------- -// Adds an bookmark to the list. -// --------------------------------------------------------------------------- -// -void CAiScutSettingsBkmList::AddBookmarkL(TUid aUid, const TDesC& aCaption) -{ - CBkmListItem* listItem = CBkmListItem::NewLC(aUid, aCaption); - - TBuf buf; - buf.Format( KText, aUid.iUid ); - - listItem->SetParamsL(buf); - TLinearOrder sortMethod(CBkmListItem::CompareCaption); - User::LeaveIfError(iListItems.InsertInOrderAllowRepeats(listItem, sortMethod)); - CleanupStack::Pop(listItem); -} - -// --------------------------------------------------------------------------- -// Updates the bookmark list. -// --------------------------------------------------------------------------- -// -void CAiScutSettingsBkmList::UpdateBkmListL() -{ - GetBookmarkListL(); - iObserver.HandleScutListEventL(MAiScutListObserver::EBkmListUpdated, EFalse); -} - -// ----------------------------------------------------------------------------- -// From class MFavouritesDbObserver. -// Handles database event. -// ----------------------------------------------------------------------------- -// -void CAiScutSettingsBkmList::HandleFavouritesDbEventL(RDbNotifier::TEvent aEvent) -{ - __PRINT( __DBG_FORMAT( "XAI: CAiScutSettingsBkmList::HandleFavouritesDbEventL aEvent = %d"), aEvent); - - if (aEvent == RDbNotifier::ECommit) - { - UpdateBkmListL(); - } -} - -// --------------------------------------------------------------------------- -//Nested class to store individual bookmark list items -// --------------------------------------------------------------------------- -// -CAiScutSettingsBkmList::CBkmListItem::CBkmListItem(TUid aUid) : iUid(aUid) -{ -} - -void CAiScutSettingsBkmList::CBkmListItem::ConstructL(const TDesC& aCaption) -{ - iCaption = aCaption.AllocL(); -} - -CAiScutSettingsBkmList::CBkmListItem* CAiScutSettingsBkmList::CBkmListItem::NewLC( - TUid aUid, const TDesC& aCaption) -{ - CBkmListItem* self = new (ELeave) CBkmListItem(aUid); - CleanupStack::PushL(self); - self->ConstructL(aCaption); - return self; -} - -CAiScutSettingsBkmList::CBkmListItem::~CBkmListItem() -{ - delete iCaption; - delete iParams; -} - -// --------------------------------------------------------------------------- -// Compare method used to add the items to the list in sorted order. -// --------------------------------------------------------------------------- -// -TInt CAiScutSettingsBkmList::CBkmListItem::CompareCaption(const CBkmListItem& aFirst, - const CBkmListItem& aSecond) -{ - return aFirst.iCaption->Des().CompareC(*aSecond.iCaption); -} - -// --------------------------------------------------------------------------- -// Returns the item target bookmark uid. -// --------------------------------------------------------------------------- -// -TUid CAiScutSettingsBkmList::CBkmListItem::Uid() const -{ - return iUid; -} - -// --------------------------------------------------------------------------- -// Returns the item target bookmark caption. -// --------------------------------------------------------------------------- -// -TPtrC CAiScutSettingsBkmList::CBkmListItem::Caption() const -{ - return TPtrC(*iCaption); -} - -// --------------------------------------------------------------------------- -// Returns the possible parameters for item target. -// --------------------------------------------------------------------------- -// -TPtrC CAiScutSettingsBkmList::CBkmListItem::Params() const -{ - TPtrC params; - if (iParams) - { - params.Set(*iParams); - } - return params; -} - -// --------------------------------------------------------------------------- -// Sets the parameters for the item target. -// --------------------------------------------------------------------------- -// -void CAiScutSettingsBkmList::CBkmListItem::SetParamsL(const TDesC& aParams) -{ - HBufC* newParams = aParams.AllocL(); - delete iParams; - iParams = newParams; -} - -// End of File.