413 { |
398 { |
414 IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::SetDependenciesSelectedL() begin"); |
399 IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::SetDependenciesSelectedL() begin"); |
415 RPointerArray<MIAUpdateNode> deps; |
400 RPointerArray<MIAUpdateNode> deps; |
416 CleanupClosePushL( deps ); |
401 CleanupClosePushL( deps ); |
417 |
402 |
418 |
403 RPointerArray<MIAUpdateAnyNode> allNodes; |
419 IAUpdateDepUtils::GetDependenciesL( aNode, aAllNodes, deps ); |
404 CleanupClosePushL( allNodes ); |
420 |
405 for( TInt i = 0; i < aAllNodes.Count(); ++i ) |
|
406 { |
|
407 MIAUpdateAnyNode* node = aAllNodes[i]; |
|
408 User::LeaveIfError( allNodes.Append( node ) ); |
|
409 } |
|
410 |
|
411 IAUpdateDepUtils::GetDependenciesL( aNode, allNodes, deps ); |
|
412 CleanupStack::PopAndDestroy( &allNodes ); |
421 TInt depCount = deps.Count(); |
413 TInt depCount = deps.Count(); |
422 for( TInt i = 0; i < depCount; i++ ) |
414 for( TInt i = 0; i < depCount; i++ ) |
423 { |
415 { |
424 TInt depNodeInd = aAllNodes.Find( deps[i] ); |
416 TInt depNodeInd = aAllNodes.Find( deps[i] ); |
425 aAllNodes[depNodeInd]->Base().SetSelected( ETrue ); |
417 aAllNodes[depNodeInd]->Base().SetSelected( ETrue ); |
427 CleanupStack::PopAndDestroy( &deps ); |
419 CleanupStack::PopAndDestroy( &deps ); |
428 |
420 |
429 IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::SetDependenciesSelectedL() end"); |
421 IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::SetDependenciesSelectedL() end"); |
430 } |
422 } |
431 |
423 |
432 // ----------------------------------------------------------------------------- |
424 |
433 // CIAUpdateNodeFilter::StoreNodeListL |
|
434 // |
|
435 // ----------------------------------------------------------------------------- |
|
436 // |
|
437 void CIAUpdateNodeFilter::StoreNodeListL( const RPointerArray< MIAUpdateNode >& aNodes ) |
|
438 { |
|
439 IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::StoreNodeListL() begin"); |
|
440 iStoredNodes.Reset(); |
|
441 for( TInt i = 0; i < aNodes.Count(); ++i ) |
|
442 { |
|
443 iStoredNodes.AppendL( aNodes[i] ); |
|
444 } |
|
445 IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::StoreNodeListL() end"); |
|
446 } |
|
447 |
|
448 // ----------------------------------------------------------------------------- |
|
449 // CIAUpdateNodeFilter::RestoreNodeListL |
|
450 // |
|
451 // ----------------------------------------------------------------------------- |
|
452 // |
|
453 void CIAUpdateNodeFilter::RestoreNodeListL( RPointerArray< MIAUpdateNode >& aNodes) const |
|
454 { |
|
455 IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::RestoreNodeListL() begin"); |
|
456 aNodes.Reset(); |
|
457 for( TInt i = 0; i < iStoredNodes.Count(); ++i ) |
|
458 { |
|
459 aNodes.AppendL( iStoredNodes[i] ); |
|
460 } |
|
461 IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::RestoreNodeListL() end"); |
|
462 } |
|
463 |
|
464 // ----------------------------------------------------------------------------- |
|
465 // CIAUpdateNodeFilter::SortSelectedNodesFirstL |
|
466 // |
|
467 // ----------------------------------------------------------------------------- |
|
468 // |
|
469 void CIAUpdateNodeFilter::SortSelectedNodesFirstL( |
|
470 const RPointerArray<MIAUpdateNode>& aSelectedNodes, |
|
471 RPointerArray< MIAUpdateNode >& aNodes ) |
|
472 { |
|
473 for ( TInt i = aNodes.Count() - 1 ; i >= 0 ; --i ) |
|
474 { |
|
475 MIAUpdateNode* node( aNodes[ i ] ); |
|
476 if ( node->Base().IsSelected() ) |
|
477 { |
|
478 aNodes.Remove( i ); |
|
479 } |
|
480 } |
|
481 for ( TInt j = aSelectedNodes.Count() -1 ; j >= 0 ; --j ) |
|
482 { |
|
483 aNodes.InsertL( aSelectedNodes[j], 0 ); |
|
484 } |
|
485 } |
|
486 |
|
487 // ----------------------------------------------------------------------------- |
|
488 // CIAUpdateNodeFilter::SortThisNodeFirstL |
|
489 // |
|
490 // ----------------------------------------------------------------------------- |
|
491 // |
|
492 void CIAUpdateNodeFilter::SortThisNodeFirstL( const MIAUpdateNode* aFirstNode, |
|
493 RPointerArray< MIAUpdateNode >& aNodes) |
|
494 { |
|
495 TBool removed = EFalse; |
|
496 for ( TInt i = aNodes.Count() - 1 ; i >= 0 && !removed ; --i ) |
|
497 { |
|
498 if ( aNodes[ i ] == aFirstNode ) |
|
499 { |
|
500 aNodes.Remove( i ); |
|
501 removed = ETrue; |
|
502 } |
|
503 } |
|
504 aNodes.InsertL( aFirstNode, 0 ); |
|
505 } |
|
506 |
425 |
507 |
426 |
508 // ----------------------------------------------------------------------------- |
427 // ----------------------------------------------------------------------------- |
509 // CIAUpdateNodeFilter::CompareAndMarkFilterNodesL |
428 // CIAUpdateNodeFilter::CompareAndMarkFilterNodesL |
510 // |
429 // |