492 // |
492 // |
493 void CGlxGridViewMLObserver::RefreshScreen(TInt aItemIndex, |
493 void CGlxGridViewMLObserver::RefreshScreen(TInt aItemIndex, |
494 const RArray<TMPXAttribute>& aAttributes) |
494 const RArray<TMPXAttribute>& aAttributes) |
495 { |
495 { |
496 TRACER("CGlxGridViewMLObserver::RefreshScreen()"); |
496 TRACER("CGlxGridViewMLObserver::RefreshScreen()"); |
|
497 GLX_DEBUG2("CGlxGridViewMLObserver::RefreshScreen(%d)", aItemIndex); |
497 TInt mediaCount = iMediaList.Count(); |
498 TInt mediaCount = iMediaList.Count(); |
498 TInt firstIndex = iHgGrid->FirstIndexOnScreen(); |
499 TInt firstIndex = iHgGrid->FirstIndexOnScreen(); |
499 firstIndex = (firstIndex<0 ? 0 : firstIndex); |
500 firstIndex = (firstIndex<0 ? 0 : firstIndex); |
500 TInt lastOnScreen = firstIndex + iHgGrid->ItemsOnScreen() - 1; |
501 TInt lastOnScreen = firstIndex + iHgGrid->ItemsOnScreen() - 1; |
501 lastOnScreen = (lastOnScreen >mediaCount-1? mediaCount-1:lastOnScreen); |
502 lastOnScreen = (lastOnScreen >mediaCount-1? mediaCount-1:lastOnScreen); |
502 if (mediaCount < iItemsPerPage || aItemIndex == firstIndex) |
503 if (mediaCount < iItemsPerPage || aItemIndex == firstIndex) |
503 { |
504 { |
504 if (aItemIndex == firstIndex && HasRelevantThumbnail(firstIndex)) |
505 if (aItemIndex == firstIndex && HasRelevantThumbnail(firstIndex) |
|
506 && HasRelevantThumbnail(lastOnScreen)) |
505 { |
507 { |
506 GLX_DEBUG2("## GridMLObserver::HandleAttributesAvailableL()" |
508 GLX_DEBUG2("## GridMLObserver::HandleAttributesAvailableL()" |
507 " RefreshScreen - firstIndex(%d)", firstIndex); |
509 " RefreshScreen - firstIndex(%d)", firstIndex); |
508 iHgGrid->RefreshScreen(firstIndex); |
510 iHgGrid->RefreshScreen(firstIndex); |
509 } |
511 } |
510 else if (aItemIndex > firstIndex && aItemIndex <= lastOnScreen) |
512 else if (aItemIndex > firstIndex && aItemIndex <= lastOnScreen) |
511 { |
513 { |
512 if ( HasRelevantThumbnail(lastOnScreen) ) |
514 if (HasRelevantThumbnail(lastOnScreen) && HasRelevantThumbnail( |
|
515 firstIndex)) |
513 { |
516 { |
514 GLX_DEBUG2("GridMLObserver::HandleAttributesAvailableL()" |
517 GLX_DEBUG2("GridMLObserver::HandleAttributesAvailableL()" |
515 " RefreshScreen - aItemIndex(%d)", aItemIndex); |
518 " RefreshScreen - aItemIndex(%d)", aItemIndex); |
516 iHgGrid->RefreshScreen(aItemIndex); |
519 iHgGrid->RefreshScreen(aItemIndex); |
517 } |
520 } |