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