[Tizen] Restore behavior of Uploaded and LoadingFinished signal
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / image-view / image-view-impl.cpp
index 5e520d8..859ef08 100755 (executable)
@@ -233,6 +233,22 @@ void ImageView::SetDepthIndex( int depthIndex )
   }
 }
 
+void ImageView::OnStageConnection( int depth )
+{
+  if( mImage )
+  {
+    mImage.UploadedSignal().Emit( mImage );
+  }
+
+  Dali::ResourceImage resourceImage = Dali::ResourceImage::DownCast( mImage );
+  if( resourceImage )
+  {
+    resourceImage.LoadingFinishedSignal().Emit( resourceImage );
+  }
+
+  Control::OnStageConnection( depth ); // Enabled visuals will be put on stage
+}
+
 Vector3 ImageView::GetNaturalSize()
 {
   if( mVisual )
@@ -394,19 +410,23 @@ void ImageView::SetProperty( BaseObject* object, Property::Index index, const Pr
             // the property map contains only the custom shader
             else if( ( map->Count() == 1u )&&( shaderValue ) )
             {
-              impl.mShaderMap = *( shaderValue->GetMap() );
-
-              if( !impl.mUrl.empty() )
-              {
-                impl.SetImage( impl.mUrl, impl.mImageSize );
-              }
-              else if( impl.mImage )
-              {
-                impl.SetImage( impl.mImage );
-              }
-              else if( !impl.mPropertyMap.Empty() )
+              Property::Map* shaderMap = shaderValue->GetMap();
+              if( shaderMap )
               {
-                impl.SetImage( impl.mPropertyMap );
+                impl.mShaderMap = *shaderMap;
+
+                if( !impl.mUrl.empty() )
+                {
+                  impl.SetImage( impl.mUrl, impl.mImageSize );
+                }
+                else if( impl.mImage )
+                {
+                  impl.SetImage( impl.mImage );
+                }
+                else if( !impl.mPropertyMap.Empty() )
+                {
+                  impl.SetImage( impl.mPropertyMap );
+                }
               }
             }
           }