iaupdate/IAD/ui/src/iaupdatenodefilter.cpp
branchRCL_3
changeset 65 7333d7932ef7
parent 22 0817e13c927e
child 66 8b7f4e561641
equal deleted inserted replaced
62:5cc91383ab1e 65:7333d7932ef7
    70 CIAUpdateNodeFilter::~CIAUpdateNodeFilter()
    70 CIAUpdateNodeFilter::~CIAUpdateNodeFilter()
    71     {
    71     {
    72     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::~CIAUpdateNodeFilter() begin");
    72     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::~CIAUpdateNodeFilter() begin");
    73 
    73 
    74     delete iFilterParams;
    74     delete iFilterParams;
       
    75     iStoredNodes.Reset();
    75 
    76 
    76     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::~CIAUpdateNodeFilter() end");
    77     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::~CIAUpdateNodeFilter() end");
    77     }
    78     }
    78 
    79 
    79 
    80 
   210                     }
   211                     }
   211                 else
   212                 else
   212                     {
   213                     {
   213                     for ( TInt i = 0; i < aFwNodes.Count(); ++i )   
   214                     for ( TInt i = 0; i < aFwNodes.Count(); ++i )   
   214                         {
   215                         {
       
   216                         if ( aFwNodes[i]->FwType() == MIAUpdateFwNode::EFotiNsu )
       
   217                             {
       
   218                             aFwNodes[i]->Base().SetSelected( EFalse ); 
       
   219                             }
       
   220                         else
       
   221                             {
       
   222                             aFwNodes[i]->Base().SetSelected( ETrue );
       
   223                             }
       
   224                         }
       
   225                     for ( TInt i = 0; i < aNodes.Count(); ++i )   
       
   226                         {
       
   227                         aNodes[i]->Base().SetSelected( EFalse );
       
   228                         }
       
   229                     }
       
   230                 }
       
   231             }
       
   232         else
       
   233             {
       
   234             if ( aFwNodes.Count() == 1 && aFwNodes[0]->FwType() == MIAUpdateFwNode::EFotiNsu )
       
   235                 {
       
   236                 aFwNodes[0]->Base().SetSelected( EFalse );
       
   237                 }
       
   238             else
       
   239                 {
       
   240                 for ( TInt i = 0; i < aFwNodes.Count(); ++i )   
       
   241                     {
       
   242                     if ( aFwNodes[i]->FwType() == MIAUpdateFwNode::EFotiNsu )
       
   243                         {
       
   244                         aFwNodes[i]->Base().SetSelected( EFalse ); 
       
   245                         }
       
   246                     else
       
   247                         {
   215                         aFwNodes[i]->Base().SetSelected( ETrue );
   248                         aFwNodes[i]->Base().SetSelected( ETrue );
   216                         }
   249                         }
   217                     for ( TInt i = 0; i < aNodes.Count(); ++i )   
       
   218                         {
       
   219                         aNodes[i]->Base().SetSelected( EFalse );
       
   220                         }
       
   221                     }
       
   222                 }
       
   223             }
       
   224         else
       
   225             {
       
   226             if ( aFwNodes.Count() == 1 && aFwNodes[0]->FwType() == MIAUpdateFwNode::EFotiNsu )
       
   227                 {
       
   228                 aFwNodes[0]->Base().SetSelected( EFalse );
       
   229                 }
       
   230             else
       
   231                 {
       
   232                 for ( TInt i = 0; i < aFwNodes.Count(); ++i )   
       
   233                     {
       
   234                     aFwNodes[i]->Base().SetSelected( ETrue );
       
   235                     }
   250                     }
   236                 for ( TInt i = 0; i < aNodes.Count(); ++i )   
   251                 for ( TInt i = 0; i < aNodes.Count(); ++i )   
   237                     {
   252                     {
   238                     aNodes[i]->Base().SetSelected( EFalse );
   253                     aNodes[i]->Base().SetSelected( EFalse );
   239                     }
   254                     }
   398     {
   413     {
   399     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::SetDependenciesSelectedL() begin"); 
   414     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::SetDependenciesSelectedL() begin"); 
   400     RPointerArray<MIAUpdateNode> deps;
   415     RPointerArray<MIAUpdateNode> deps;
   401     CleanupClosePushL( deps );
   416     CleanupClosePushL( deps );
   402     
   417     
   403     RPointerArray<MIAUpdateAnyNode> allNodes;
   418         
   404     CleanupClosePushL( allNodes );
   419     IAUpdateDepUtils::GetDependenciesL( aNode, aAllNodes, deps );    
   405     for( TInt i = 0; i < aAllNodes.Count(); ++i ) 
   420 
   406         {
       
   407         MIAUpdateAnyNode* node = aAllNodes[i];
       
   408         User::LeaveIfError( allNodes.Append( node ) );
       
   409         }
       
   410     
       
   411     IAUpdateDepUtils::GetDependenciesL( aNode, allNodes, deps );    
       
   412     CleanupStack::PopAndDestroy( &allNodes );
       
   413     TInt depCount = deps.Count();
   421     TInt depCount = deps.Count();
   414     for( TInt i = 0; i < depCount; i++ )
   422     for( TInt i = 0; i < depCount; i++ )
   415         {
   423         {
   416         TInt depNodeInd = aAllNodes.Find( deps[i] );
   424         TInt depNodeInd = aAllNodes.Find( deps[i] );
   417         aAllNodes[depNodeInd]->Base().SetSelected( ETrue );
   425         aAllNodes[depNodeInd]->Base().SetSelected( ETrue );
   419     CleanupStack::PopAndDestroy( &deps );
   427     CleanupStack::PopAndDestroy( &deps );
   420 
   428 
   421     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::SetDependenciesSelectedL() end");
   429     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNodeFilter::SetDependenciesSelectedL() end");
   422     }
   430     }
   423 
   431 
   424 
   432 // -----------------------------------------------------------------------------
       
   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     }
   425 
   506 
   426 
   507 
   427 // -----------------------------------------------------------------------------
   508 // -----------------------------------------------------------------------------
   428 // CIAUpdateNodeFilter::CompareAndMarkFilterNodesL
   509 // CIAUpdateNodeFilter::CompareAndMarkFilterNodesL
   429 // 
   510 //