X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fimage-view%2Fimage-view-impl.cpp;h=2cb24bb21812620ee37cf4fb466276a00e037db3;hp=76493a68a44d28277922ffdfc27b31794404064e;hb=ada974666c47551b8bfdb9302acc95f91ffda901;hpb=669373aecf093fe345b679b0ebe1e8056b12af2c diff --git a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp index 76493a6..2cb24bb 100644 --- a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp +++ b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp @@ -97,16 +97,23 @@ void ImageView::SetImage( Image image ) void ImageView::SetImage( Property::Map map ) { - mImage.Reset(); - mUrl.clear(); mPropertyMap = map; - mRenderer = Toolkit::RendererFactory::Get().GetControlRenderer( mPropertyMap ); + bool newRendererCreated = false; + if( mRenderer ) + { + newRendererCreated = Toolkit::RendererFactory::Get().ResetRenderer( mRenderer, mPropertyMap ); + } + else + { + mRenderer = Toolkit::RendererFactory::Get().GetControlRenderer( mPropertyMap ); + newRendererCreated = true; + } //we need to inform any newly created renderers if it is on stage - if( Self().OnStage() ) + CustomActor self = Self(); + if( newRendererCreated && self.OnStage() ) { - CustomActor self = Self(); mRenderer.SetOnStage( self ); } @@ -166,7 +173,7 @@ Vector3 ImageView::GetNaturalSize() size.y = mImageSize.GetHeight(); size.z = std::min(size.x, size.y); - if( size.x > 0 && size.x > 0 ) + if( size.x > 0 && size.y > 0 ) { return size; } @@ -208,6 +215,8 @@ float ImageView::GetWidthForHeight( float height ) void ImageView::OnStageConnection( int depth ) { + Control::OnStageConnection( depth ); + if( mRenderer ) { CustomActor self = Self(); @@ -215,6 +224,18 @@ void ImageView::OnStageConnection( int depth ) } } +void ImageView::OnStageDisconnection() +{ + if( mRenderer ) + { + CustomActor self = Self(); + mRenderer.SetOffStage( self ); + } + + Control::OnStageDisconnection(); +} + + /////////////////////////////////////////////////////////// // // Properties