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 ); |
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 |