diff -r 5e5d6b214f4f -r f5911524345e uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsheadercontrol.cpp --- a/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsheadercontrol.cpp Tue Feb 02 10:12:18 2010 +0200 +++ b/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsheadercontrol.cpp Fri Feb 19 22:41:11 2010 +0200 @@ -42,6 +42,9 @@ // constants declaration const TInt KLabelLineCount = 3; +// Size of thumbnail images stored to contacts +#define KPbkPersonalImageSize TSize(80,96) + // --------------------------------------------------------------------------- // NewL, two-phase construction // --------------------------------------------------------------------------- @@ -89,6 +92,7 @@ iLabels.AppendL(label); CleanupStack::Pop(label); } + iContactImageSize = KPbkPersonalImageSize; } // --------------------------------------------------------------------------- @@ -169,6 +173,29 @@ AknLayoutUtils::LayoutImage( iImage, Rect(), AknLayoutScalable_Apps::cl_header_pane_g1(isLandscape)); + + TPoint position = iImage->Position(); + TSize size = iImage->Size(); + + const TPoint newImagePosition = TPoint( position.iX/2, position.iY/2 ); + iImage->SetPosition( newImagePosition ); + + const TSize newImageSize = TSize( size.iWidth + 2*( position.iX - newImagePosition.iX ) , + size.iHeight + 2*( position.iY - newImagePosition.iY ) ); + + iImage->SetSize( newImageSize ); + + iContactImageSize = newImageSize; + + if ( iImageDecoder ) + { + // if bitmap was set resize it + if (iImageDecoder->IsActive()) + { + iImageDecoder->Cancel(); + } + TRAP_IGNORE( iImageDecoder->StartL( iContactImageSize ) ); + } TAknLayoutRect labelsRect; labelsRect.LayoutRect(Rect(), AknLayoutScalable_Apps::cl_header_name_pane(isLandscape)); @@ -344,7 +371,7 @@ iImageDecoder = NULL; } iImageDecoder = CVIMPSTDetailsImageDecoder::NewL(*this, data ); - iImageDecoder->Start(); + iImageDecoder->StartL(iContactImageSize); } }