482 // CElementStack::Reset |
482 // CElementStack::Reset |
483 // -------------------------------------------------------------------------- |
483 // -------------------------------------------------------------------------- |
484 // |
484 // |
485 void CElementStack::Reset() |
485 void CElementStack::Reset() |
486 { |
486 { |
487 // Stack's elements need to destroy vice versa, |
487 // Stack's elements need to destroy vice versa, |
488 // because views in elements are always linked to previous view. |
488 // because views in elements are always linked to previous view. |
489 // Like BaseView<-FindView<-RefineView<-RefineView... |
489 // Like BaseView<-FindView<-RefineView<-RefineView... |
490 const TInt count( iStack.Count() ); |
490 const TInt count( iStack.Count() ); |
491 for ( TInt i=count-1; i >= 0; --i ) |
491 for ( TInt i=count-1; i >= 0; --i ) |
492 { |
492 { |
563 // -------------------------------------------------------------------------- |
563 // -------------------------------------------------------------------------- |
564 // |
564 // |
565 CPbk2FilteredViewStack::CCallback::CCallback( |
565 CPbk2FilteredViewStack::CCallback::CCallback( |
566 CPbk2FilteredViewStack& aViewStack, |
566 CPbk2FilteredViewStack& aViewStack, |
567 MVPbkContactViewObserver& aObserver, AddObserverL aAddObserverFuncL, |
567 MVPbkContactViewObserver& aObserver, AddObserverL aAddObserverFuncL, |
568 AddObserverError aAddObserverErrorFunc ) : |
568 AddObserverError aAddObserverErrorFunc ) : |
569 CActive( EPriorityStandard ), |
569 CActive( EPriorityStandard ), |
570 iViewStack( aViewStack ), |
570 iViewStack( aViewStack ), |
571 iObserver( aObserver ), |
571 iObserver( aObserver ), |
572 iAddObserverFuncL( aAddObserverFuncL ), |
572 iAddObserverFuncL( aAddObserverFuncL ), |
573 iAddObserverErrorFunc( aAddObserverErrorFunc ) |
573 iAddObserverErrorFunc( aAddObserverErrorFunc ) |
705 void CPbk2FilteredViewStack::UpdateFilterL( const MDesCArray& aFindStrings, |
705 void CPbk2FilteredViewStack::UpdateFilterL( const MDesCArray& aFindStrings, |
706 const MVPbkContactBookmarkCollection* aAlwaysincluded, |
706 const MVPbkContactBookmarkCollection* aAlwaysincluded, |
707 TBool aAlwaysIncludedChanged ) |
707 TBool aAlwaysIncludedChanged ) |
708 { |
708 { |
709 PBK2_DEBUG_PRINT(PBK2_DEBUG_STRING( |
709 PBK2_DEBUG_PRINT(PBK2_DEBUG_STRING( |
710 "CPbk2FilteredViewStack::UpdateFilterL: topview(0x%x), always=%x"), |
710 "CPbk2FilteredViewStack::UpdateFilterL: topview(0x%x), always=%x"), |
711 &TopView(), aAlwaysincluded ); |
711 &TopView(), aAlwaysincluded ); |
712 |
712 |
713 |
713 |
714 if ( aFindStrings.MdcaCount() == 0 ) |
714 if ( aFindStrings.MdcaCount() == 0 ) |
715 { |
715 { |
1240 MVPbkContactViewObserver::ContactViewError, aError, |
1240 MVPbkContactViewObserver::ContactViewError, aError, |
1241 aErrorNotified ); |
1241 aErrorNotified ); |
1242 } |
1242 } |
1243 |
1243 |
1244 // -------------------------------------------------------------------------- |
1244 // -------------------------------------------------------------------------- |
|
1245 // CPbk2FilteredViewStack::ContactViewObserverExtension |
|
1246 // -------------------------------------------------------------------------- |
|
1247 // |
|
1248 TAny* CPbk2FilteredViewStack::ContactViewObserverExtension( TUid aExtensionUid ) |
|
1249 { |
|
1250 if( aExtensionUid == KVPbkContactViewObserverExtension2Uid ) |
|
1251 { |
|
1252 return static_cast<MVPbkContactViewObserverExtension*>( this ); |
|
1253 } |
|
1254 return NULL; |
|
1255 } |
|
1256 |
|
1257 // -------------------------------------------------------------------------- |
|
1258 // CPbk2FilteredViewStack::FilteredContactRemovedFromView |
|
1259 // -------------------------------------------------------------------------- |
|
1260 // |
|
1261 void CPbk2FilteredViewStack::FilteredContactRemovedFromView( |
|
1262 MVPbkContactViewBase& aView ) |
|
1263 { |
|
1264 const TInt count = iViewObservers.Count(); |
|
1265 |
|
1266 for( TInt i = 0; i < count; i++ ) |
|
1267 { |
|
1268 MVPbkContactViewObserver* observer = iViewObservers[i]; |
|
1269 |
|
1270 TAny* extension = observer->ContactViewObserverExtension( |
|
1271 KVPbkContactViewObserverExtension2Uid ); |
|
1272 |
|
1273 if( extension ) |
|
1274 { |
|
1275 MVPbkContactViewObserverExtension* contactViewExtension = |
|
1276 static_cast<MVPbkContactViewObserverExtension*>( extension ); |
|
1277 |
|
1278 if( contactViewExtension ) |
|
1279 { |
|
1280 contactViewExtension->FilteredContactRemovedFromView( aView ); |
|
1281 } |
|
1282 } |
|
1283 } |
|
1284 } |
|
1285 |
|
1286 // -------------------------------------------------------------------------- |
1245 // CPbk2FilteredViewStack::TopElement |
1287 // CPbk2FilteredViewStack::TopElement |
1246 // -------------------------------------------------------------------------- |
1288 // -------------------------------------------------------------------------- |
1247 // |
1289 // |
1248 MPbk2FilteredViewStackElement& CPbk2FilteredViewStack::TopElement() const |
1290 MPbk2FilteredViewStackElement& CPbk2FilteredViewStack::TopElement() const |
1249 { |
1291 { |
1274 MVPbkContactViewBase& aView ) |
1316 MVPbkContactViewBase& aView ) |
1275 { |
1317 { |
1276 // Check first if the aView is the base view. |
1318 // Check first if the aView is the base view. |
1277 if ( iBaseViewElement->View() == &aView ) |
1319 if ( iBaseViewElement->View() == &aView ) |
1278 { |
1320 { |
1279 if ( iBaseViewElement->ViewState() == |
1321 if ( iBaseViewElement->ViewState() == |
1280 MPbk2FilteredViewStackElement::EUndefined ) |
1322 MPbk2FilteredViewStackElement::EUndefined ) |
1281 { |
1323 { |
1282 // The Base view is changed. |
1324 // The Base view is changed. |
1283 SendBaseViewChangedEvent(); |
1325 SendBaseViewChangedEvent(); |
1284 } |
1326 } |
1285 |
1327 |
1286 iBaseViewElement->SetViewState( |
1328 iBaseViewElement->SetViewState( |
1287 MPbk2FilteredViewStackElement::EReady ); |
1329 MPbk2FilteredViewStackElement::EReady ); |
1288 } |
1330 } |
1289 else |
1331 else |
1544 } |
1586 } |
1545 |
1587 |
1546 // -------------------------------------------------------------------------- |
1588 // -------------------------------------------------------------------------- |
1547 // CPbk2FilteredViewStack::SendBaseViewChangedEvent |
1589 // CPbk2FilteredViewStack::SendBaseViewChangedEvent |
1548 // -------------------------------------------------------------------------- |
1590 // -------------------------------------------------------------------------- |
1549 // |
1591 // |
1550 void CPbk2FilteredViewStack::SendBaseViewChangedEvent() |
1592 void CPbk2FilteredViewStack::SendBaseViewChangedEvent() |
1551 { |
1593 { |
1552 const TInt count = iStackObservers.Count(); |
1594 const TInt count = iStackObservers.Count(); |
1553 for ( TInt i = count - 1; i >= 0; --i ) |
1595 for ( TInt i = count - 1; i >= 0; --i ) |
1554 { |
1596 { |