perfapps/memspyui/ui/avkon/src/MemSpyViewProcesses.cpp
changeset 53 819e59dfc032
parent 52 36d60d12b4af
equal deleted inserted replaced
52:36d60d12b4af 53:819e59dfc032
    54     {
    54     {
    55     }
    55     }
    56 
    56 
    57 CMemSpyViewProcesses::~CMemSpyViewProcesses()
    57 CMemSpyViewProcesses::~CMemSpyViewProcesses()
    58     {	
    58     {	
    59 	iProcesses.Reset();
    59 	iProcesses.ResetAndDestroy();
    60     //delete iSearchField;
       
    61     delete iMatcherBuffer;
    60     delete iMatcherBuffer;
    62     }
    61     }
    63 
    62 
    64 
    63 
    65 //void CMemSpyViewProcesses::ConstructL( const TRect& aRect, CCoeControl& aContainer, TAny* aSelectionRune )
    64 //void CMemSpyViewProcesses::ConstructL( const TRect& aRect, CCoeControl& aContainer, TAny* aSelectionRune )
    66 void CMemSpyViewProcesses::ConstructL( const TRect& aRect, CCoeControl& aContainer, TProcessId aSelectionRune )
    65 void CMemSpyViewProcesses::ConstructL( const TRect& aRect, CCoeControl& aContainer, TProcessId aSelectionRune )
    67     {
    66     {
    68 	iMemSpySession.GetProcessesL(iProcesses); // get processes array;
    67     RArray<CMemSpyApiProcess*> processes;
       
    68 	iMemSpySession.GetProcessesL( processes ); // get processes array;
       
    69 	CleanupClosePushL( processes );
       
    70 	iProcesses.ResetAndDestroy();
       
    71 	for (TInt i=0; i<processes.Count(); i++)
       
    72 	    {
       
    73 	    iProcesses.Append(processes[i]);
       
    74 	    }
       
    75 	CleanupStack::PopAndDestroy( &processes );
    69 	
    76 	
    70     _LIT( KTitle, "Processes\n& Threads" );
    77     _LIT( KTitle, "Processes\n& Threads" );
    71     SetTitleL( KTitle );
    78     SetTitleL( KTitle );
    72     //
    79     //
    73     //CMemSpyViewBase::ConstructL( aRect, aContainer, aSelectionRune );
    80     //CMemSpyViewBase::ConstructL( aRect, aContainer, aSelectionRune );
   300         }
   307         }
   301     
   308     
   302     if ( doTerminate )
   309     if ( doTerminate )
   303         {        
   310         {        
   304         TRAP( err, iMemSpySession.EndProcessL( iCurrentProcessId, ETerminate ) );
   311         TRAP( err, iMemSpySession.EndProcessL( iCurrentProcessId, ETerminate ) );
   305         if( err = KErrNone )
   312         if( err == KErrNone )
   306             RefreshL();
   313             RefreshL();
   307         }        
   314         }        
   308     }
   315     }
   309 
   316 
   310 
   317 
   356 
   363 
   357 
   364 
   358 
   365 
   359 void CMemSpyViewProcesses::SetListBoxModelL()
   366 void CMemSpyViewProcesses::SetListBoxModelL()
   360     {	
   367     {	
   361 	if( iProcesses.Count() > 0 )
   368     RArray<CMemSpyApiProcess*> processes;
   362 		{
   369     iMemSpySession.GetProcessesL( processes ); // get processes array;
   363 		iProcesses.Close();
   370     CleanupClosePushL( processes );
   364 		}
   371     iProcesses.ResetAndDestroy();
   365 	
   372     for (TInt i=0; i<processes.Count(); i++)
   366 	iMemSpySession.GetProcessesL(iProcesses); // get processes array;
   373         {
   367 	iModel = new (ELeave) CDesC16ArrayFlat( iProcesses.Count() + 1); //array for formated items
   374         iProcesses.Append( processes[i] );
   368 	
   375         }
   369 	_LIT( KTab, "\t" );
   376     
   370 	iModel = FormatModel( iProcesses ); //TODO Format model method with advanced formatting
   377     CDesCArrayFlat* model = FormatModelLC( processes ); //TODO Format model method with advanced formatting
   371 		
   378 		
   372 	CAknSettingStyleListBox* listbox = static_cast< CAknSettingStyleListBox* >( iListBox );
   379 	CAknSettingStyleListBox* listbox = static_cast< CAknSettingStyleListBox* >( iListBox );
   373     //listbox->Model()->SetItemTextArray( &iEngine.Container() );
   380     listbox->Model()->SetItemTextArray( model );
   374     listbox->Model()->SetItemTextArray( iModel );
   381     listbox->Model()->SetOwnershipType( ELbmOwnsItemArray );
   375     listbox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
   382     
       
   383     CleanupStack::Pop( model );
       
   384     CleanupStack::PopAndDestroy( &processes );
   376     }
   385     }
   377 
   386 
   378 
   387 
   379 void CMemSpyViewProcesses::HandleListBoxItemActionedL( TInt /*aIndex*/ )
   388 void CMemSpyViewProcesses::HandleListBoxItemActionedL( TInt /*aIndex*/ )
   380     {
   389     {
   559     }
   568     }
   560 
   569 
   561 //Model formating methods
   570 //Model formating methods
   562 //TODO: to be debbuged
   571 //TODO: to be debbuged
   563 
   572 
   564 CDesCArrayFlat* CMemSpyViewProcesses::FormatModel( RArray<CMemSpyApiProcess*> aProcesses )
   573 CDesCArrayFlat* CMemSpyViewProcesses::FormatModelLC( const RArray<CMemSpyApiProcess*> &aProcesses )
   565 	{		
   574 	{		
   566 	model = new (ELeave) CDesC16ArrayFlat( iProcesses.Count() + 16 ); //array for formated items
   575     CDesCArrayFlat* model = new (ELeave) CDesC16ArrayFlat( iProcesses.Count() + 16 ); //array for formated items
       
   576     CleanupStack::PushL( model );
       
   577     
   567 	_LIT( KMemSpyProcessNameFormatSpecBasicName, " \t%S\t\t%8x, " );
   578 	_LIT( KMemSpyProcessNameFormatSpecBasicName, " \t%S\t\t%8x, " );
   568 	
   579 	
   569 	for( TInt i=0; i < aProcesses.Count(); i++ )
   580 	for( TInt i=0; i < aProcesses.Count(); i++ )
   570 		{
   581 		{
   571 		HBufC* tempName = HBufC::NewL( KMaxFullName ); //aProcesses[i]->Name().Length() + 16
   582 		HBufC* tempName = HBufC::NewL( KMaxFullName ); //aProcesses[i]->Name().Length() + 16