clfwrapper/ClientSrc/CCLFDefaultOperation.cpp
branchRCL_3
changeset 14 646a02f170b9
parent 0 c53acadfccc6
child 15 3cebc1a84278
equal deleted inserted replaced
8:6752808b2036 14:646a02f170b9
   171                         RPointerArray<MCLFItem>& aUndefinedItemArray,
   171                         RPointerArray<MCLFItem>& aUndefinedItemArray,
   172                         const TArray<MCLFItem*>& aItemArray,
   172                         const TArray<MCLFItem*>& aItemArray,
   173                         const TArray<TCLFFieldId> aSortFields,
   173                         const TArray<TCLFFieldId> aSortFields,
   174                         TCLFItemDataType aSortingDataType )
   174                         TCLFItemDataType aSortingDataType )
   175     {
   175     {
   176     MG_DEBUG1( MSI1, "MakeSortingItemsL start" );
       
   177 
       
   178     const TInt sortingFieldsCount( aSortFields.Count() );
   176     const TInt sortingFieldsCount( aSortFields.Count() );
   179     const TInt count( aItemArray.Count() );
   177     const TInt count( aItemArray.Count() );
   180     for( TInt i = 0 ; i < count ; ++i )
   178     for( TInt i = 0 ; i < count ; ++i )
   181         {
   179         {
   182         MCLFItem* seItem = aItemArray[i];
   180         MCLFItem* seItem = aItemArray[i];
   216         else
   214         else
   217             { // field not found -> undefined item
   215             { // field not found -> undefined item
   218             aUndefinedItemArray.AppendL( seItem );
   216             aUndefinedItemArray.AppendL( seItem );
   219             }
   217             }
   220         }
   218         }
   221 
       
   222     MG_DEBUG1( MSI2, "MakeSortingItemsL end" );
       
   223     }
   219     }
   224 
   220 
   225 // -----------------------------------------------------------------------------
   221 // -----------------------------------------------------------------------------
   226 // SortSortingItemsL
   222 // SortSortingItemsL
   227 // Select correct sortign operation
   223 // Select correct sortign operation
   388 // -----------------------------------------------------------------------------
   384 // -----------------------------------------------------------------------------
   389 //
   385 //
   390 void CCLFDefaultOperation::GroupItemsL( const TArray<MCLFItem*>& aSourceList,
   386 void CCLFDefaultOperation::GroupItemsL( const TArray<MCLFItem*>& aSourceList,
   391                                         RPointerArray<MCLFItem>& aGroupedList )
   387                                         RPointerArray<MCLFItem>& aGroupedList )
   392     {
   388     {
   393     MG_DEBUG1( GI1, "CCLFDefaultOperation::GroupItemsL start" );
       
   394 
       
   395     iGroupedItemList.ResetAndDestroy();
   389     iGroupedItemList.ResetAndDestroy();
   396     switch ( iGrouping )
   390     switch ( iGrouping )
   397         {
   391         {
   398         case ECLFMusicAlbumGrouping:
   392         case ECLFMusicAlbumGrouping:
   399             {
   393             {
   405             {
   399             {
   406             AppendItemsToArrayL( aSourceList, aGroupedList );
   400             AppendItemsToArrayL( aSourceList, aGroupedList );
   407             break;
   401             break;
   408             }
   402             }
   409         }
   403         }
   410 
       
   411     MG_DEBUG1( GI2, "CCLFDefaultOperation::GroupItemsL end" );
       
   412     }
   404     }
   413 
   405 
   414 // -----------------------------------------------------------------------------
   406 // -----------------------------------------------------------------------------
   415 // CCLFDefaultOperation::SortItemsL
   407 // CCLFDefaultOperation::SortItemsL
   416 // -----------------------------------------------------------------------------
   408 // -----------------------------------------------------------------------------
   482 //
   474 //
   483 void CCLFDefaultOperation::DoMusicAlbumGroupingL(
   475 void CCLFDefaultOperation::DoMusicAlbumGroupingL(
   484                                     const TArray<MCLFItem*>& aSourceList,
   476                                     const TArray<MCLFItem*>& aSourceList,
   485                                     RPointerArray<MCLFItem>& aGroupedList )
   477                                     RPointerArray<MCLFItem>& aGroupedList )
   486     {
   478     {
   487     MG_DEBUG1( DMAG1, "CCLFDefaultOperation::DoMusicAlbumGroupingL start" );
       
   488 
       
   489     CDesCArray* tempAlbumNameArray =
   479     CDesCArray* tempAlbumNameArray =
   490                 new (ELeave) CDesCArraySeg( KCLFGroupedItemArrayGranularity );
   480                 new (ELeave) CDesCArraySeg( KCLFGroupedItemArrayGranularity );
   491     CleanupStack::PushL( tempAlbumNameArray );
   481     CleanupStack::PushL( tempAlbumNameArray );
   492 
   482 
   493     const TInt count( aSourceList.Count() );
   483     const TInt count( aSourceList.Count() );
   496         const MCLFItem* item = aSourceList[i];
   486         const MCLFItem* item = aSourceList[i];
   497         TPtrC albumName;
   487         TPtrC albumName;
   498         if( item->GetField( ECLFFieldIdAlbum, albumName ) == KErrNone )
   488         if( item->GetField( ECLFFieldIdAlbum, albumName ) == KErrNone )
   499             {
   489             {
   500             TInt pos( 0 );
   490             TInt pos( 0 );
   501             if( tempAlbumNameArray->Find( albumName, pos ) )
   491             if( tempAlbumNameArray->FindIsq( albumName, pos ) )
   502                 {
   492                 {
   503                 // not found
   493                 // not found
   504                 tempAlbumNameArray->AppendL( albumName );
   494                 tempAlbumNameArray->InsertIsqL( albumName );
   505 
   495 
   506                 // make new item
   496                 // make new item
   507                 MCLFModifiableItem* newItem =
   497                 MCLFModifiableItem* newItem =
   508                                 ContentListingFactory::NewModifiableItemLC();
   498                                 ContentListingFactory::NewModifiableItemLC();
   509                 newItem->AddFieldL( ECLFFieldIdAlbum, albumName );
   499                 newItem->AddFieldL( ECLFFieldIdAlbum, albumName );
   520                 aGroupedList.AppendL( newItem );
   510                 aGroupedList.AppendL( newItem );
   521                 }
   511                 }
   522             }
   512             }
   523         }
   513         }
   524     CleanupStack::PopAndDestroy( tempAlbumNameArray );
   514     CleanupStack::PopAndDestroy( tempAlbumNameArray );
   525 
       
   526     MG_DEBUG1( DMAG2, "CCLFDefaultOperation::DoMusicAlbumGroupingL end" );
       
   527     }
   515     }
   528 
   516 
   529 //  End of File
   517 //  End of File