void CTTGPSLoggerCheckBoxSettingItem::CompleteConstructionL() { CAknEnumeratedTextSettingItem::CompleteConstructionL(); iSelectionItemList = new (ELeave) CSelectionItemList(32); TInt count = EnumeratedTextArray()->Count(); TInt numValueArray = iValueArray.Count(); for (TInt i1 = 0; i1 < count; i1++) { CSelectableItem* item = new (ELeave) CSelectableItem(*(EnumeratedTextArray()->At(i1)->Value()), EFalse); CleanupStack::PushL(item); item->ConstructL(); if (i1 < numValueArray) { item->SetSelectionStatus(iValueArray[i1]); } CleanupStack::Pop(item); iSelectionItemList->AppendL(item); } }
// -------------------------------------------------------------------------- // CMSStoreServersSetting::CreateSelectionItemListL // Creates selection item list // -------------------------------------------------------------------------- // void CMSStoreServersSetting::CreateSelectionItemListL() { if ( iItemArray ) { iItemArray->ResetAndDestroy(); delete iItemArray; iItemArray = NULL; } iItemArray = new ( ELeave ) CSelectionItemList( KItemArrayGranularity ); TBuf8<KMaxFileName> itemText; TInt serverCount(0); if ( iServers ) { serverCount = iServers->Count(); } // Cycle trough all servers for ( TInt idx = 0; idx < serverCount; idx++ ) { // get server CCmMediaServerFull* server = (*iServers)[idx]; // show only copy capable devices if ( server->StoreUsage() ) { HBufC* devName = UpnpString::ToUnicodeL( server->MediaServerName() ); CleanupStack::PushL( devName ); CSelectableItem* item = new ( ELeave ) CSelectableItem( *devName, EFalse); CleanupStack::PushL( item ); // item must be constructed item->ConstructL(); // count of servers set to rule TInt ruleServerCount = iRule->MediaServerCount(); // Cycle trough all servers for (TInt index = 0; index < ruleServerCount; index++ ) { const TDesC8& ruleServerUDN = iRule->MediaServerL( index ); if (ruleServerUDN == server->MediaServer()) // compare UDNs { // found - break this loop index = ruleServerCount; // found - mark selected item->SetSelectionStatus( ETrue ); iSelectedItemCount++; } } // append item to list iItemArray->AppendL(item); CleanupStack::Pop( item ); CleanupStack::PopAndDestroy( devName ); } else // we don't need this kind of servers anymore so remove it { delete server; iServers->Remove( idx ); idx--; // remove transfers next item to current index serverCount--; // servers on the list were reduced } } }