diff -r 2666d9724c76 -r d4f567ce2e7c phonebookui/Phonebook2/UIControls/src/CPbk2FetchDlg.cpp --- a/phonebookui/Phonebook2/UIControls/src/CPbk2FetchDlg.cpp Thu Jul 15 18:22:55 2010 +0300 +++ b/phonebookui/Phonebook2/UIControls/src/CPbk2FetchDlg.cpp Thu Aug 19 09:41:07 2010 +0300 @@ -149,7 +149,8 @@ inline CPbk2FetchDlg::CPbk2FetchDlg ( TParams aParams, MPbk2FetchDlgObserver& aObserver ) : iParams( aParams ), - iObserver( aObserver ) + iObserver( aObserver ), + iSelectPermitted( ETrue ) { } @@ -258,6 +259,7 @@ ( aContactLink, Phonebook2::Pbk2AppUi()->ApplicationServices(). ContactManager().ContactStoresL() ); + // Append the selected contact to results. if ( linkArray->Count() > 0 ) { const MVPbkContactLink& link = linkArray->At( KFirstElement ); @@ -268,6 +270,28 @@ } // -------------------------------------------------------------------------- +// CPbk2FetchDlg::AcceptDelayedFetchL +// -------------------------------------------------------------------------- +// +EXPORT_C void CPbk2FetchDlg::DenyDelayedFetchL + ( const TDesC8& aContactLink ) + { + CVPbkContactLinkArray* linkArray = CVPbkContactLinkArray::NewLC + ( aContactLink, Phonebook2::Pbk2AppUi()->ApplicationServices(). + ContactManager().ContactStoresL() ); + + // Unmark the selected contact + if ( linkArray->Count() > 0 ) + { + const MVPbkContactLink& link = linkArray->At( KFirstElement ); + iResults->DenyAppendDelayedL( link ); + iPages->SelectContactL( link, EFalse ); + } + + CleanupStack::PopAndDestroy(); // linkArray + } + +// -------------------------------------------------------------------------- // CPbk2FetchDlg::ExecuteLD // -------------------------------------------------------------------------- // @@ -388,6 +412,12 @@ } } + // Only multiple fetch needs to wait buffered operations finished + if ( !canceled && ( iParams.iFlags & EFetchMultiple ) ) + { + iResults->WaitOperationsCompleteL(); + } + // Notify observer if ( canceled ) { @@ -435,6 +465,11 @@ // Reset results iResults->ResetAndDestroy(); } + else + { + // Permit selection again + iSelectPermitted = ETrue; + } iExitRecord.Set( EExitOrdered ); // exit is now ordered and // when client later requests @@ -525,6 +560,12 @@ } else { + // EKeyApplicationF means left softkey is pressed + if ( EKeyApplicationF == aKeyEvent.iCode && + ( iParams.iFlags & EFetchMultiple ) ) + { + iSelectPermitted = EFalse; + } if( !Phonebook2::Pbk2AppUi()->KeyEventHandler().Pbk2ProcessKeyEventL( aKeyEvent, aType ) ) { @@ -788,6 +829,14 @@ } } } +// -------------------------------------------------------------------------- +// CPbk2FetchDlg::IsSelectPermitted +// -------------------------------------------------------------------------- +// +TBool CPbk2FetchDlg::IsSelectPermitted() + { + return iSelectPermitted; + } // -------------------------------------------------------------------------- // CPbk2FetchDlg::HandleControlEventL