Fixed automatic naming of visuals for non-native controls 78/134278/2
authorDavid Steele <david.steele@samsung.com>
Thu, 15 Jun 2017 10:51:06 +0000 (11:51 +0100)
committerDavid Steele <david.steele@samsung.com>
Fri, 16 Jun 2017 14:54:07 +0000 (15:54 +0100)
Ensured Control::Background visual is named to "background" regardless.

During visual registration, a lookup of registered properties is attempted to
retrieve the name of the property and assign that name to the visual.
(Used by scripting and styling).

In the case of non-native controls, where they use ControlWrapper as
their gateway class, the typeid lookup cannot get past ControlWrapper,
so will currently fail to name the visuals.

Instead, changed the RegisterVisual method to call GetPropertyName() directly -
for the ControlWrapper case, the non-native type name has been set on this object,
and in the glue layer, any C# properties annotated with ScriptableProperties
will be registered with the same type name. Consequently, GetPropertyName() will
work as intended for non-native properties.

However, this has to be within a try-catch block, as it will assert if the
developer hasn't registered the property index, which is the case
for some native controls.

Change-Id: I8b92496a21d13e3696fb827e67586f92e9e0dffb
Signed-off-by: David Steele <david.steele@samsung.com>
automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp
dali-toolkit/internal/controls/control/control-data-impl.cpp
dali-toolkit/public-api/controls/control-impl.cpp

index b8e40b8..2e7e268 100644 (file)
@@ -207,7 +207,7 @@ void TestVisualRender( ToolkitTestApplication& application,
                        Integration::ResourcePointer resourcePtr = Integration::ResourcePointer())
 {
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
                        Integration::ResourcePointer resourcePtr = Integration::ResourcePointer())
 {
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
-  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
 
   if( resourcePtr )
   {
 
   if( resourcePtr )
   {
@@ -317,7 +317,7 @@ int UtcDaliVisualFactoryGetColorVisual1(void)
   Visual::Base visual = factory.CreateVisual(propertyMap);
   DALI_TEST_CHECK( visual );
 
   Visual::Base visual = factory.CreateVisual(propertyMap);
   DALI_TEST_CHECK( visual );
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   TestVisualRender( application, actor, visual );
 
   Vector3 actualValue(Vector4::ZERO);
   TestVisualRender( application, actor, visual );
 
   Vector3 actualValue(Vector4::ZERO);
@@ -346,7 +346,7 @@ int UtcDaliVisualFactoryGetColorVisual2(void)
   Visual::Base visual = factory.CreateVisual( map );
   DALI_TEST_CHECK( visual );
 
   Visual::Base visual = factory.CreateVisual( map );
   DALI_TEST_CHECK( visual );
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   TestVisualRender( application, actor, visual );
 
   Vector3 actualValue;
   TestVisualRender( application, actor, visual );
 
   Vector3 actualValue;
@@ -381,9 +381,9 @@ int UtcDaliVisualFactoryGetBorderVisual1(void)
   Visual::Base visual = factory.CreateVisual(propertyMap);
   DALI_TEST_CHECK( visual );
 
   Visual::Base visual = factory.CreateVisual(propertyMap);
   DALI_TEST_CHECK( visual );
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
-  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
   actor.SetSize(200.f, 200.f);
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f));
   actor.SetSize(200.f, 200.f);
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f));
@@ -429,9 +429,9 @@ int UtcDaliVisualFactoryGetBorderVisual2(void)
   Visual::Base visual = factory.CreateVisual( propertyMap );
   DALI_TEST_CHECK( visual );
 
   Visual::Base visual = factory.CreateVisual( propertyMap );
   DALI_TEST_CHECK( visual );
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
-  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
   actor.SetSize(200.f, 200.f);
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f));
   actor.SetSize(200.f, 200.f);
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f));
@@ -504,7 +504,7 @@ int UtcDaliVisualFactoryGetLinearGradientVisual(void)
   DALI_TEST_CHECK( visual );
 
   // A lookup texture is generated and pass to shader as sampler
   DALI_TEST_CHECK( visual );
 
   // A lookup texture is generated and pass to shader as sampler
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   TestVisualRender( application, actor, visual, 1u);
 
   END_TEST;
   TestVisualRender( application, actor, visual, 1u);
 
   END_TEST;
@@ -541,7 +541,7 @@ int UtcDaliVisualFactoryGetRadialGradientVisual(void)
   DALI_TEST_CHECK( visual );
 
   // A lookup texture is generated and pass to shader as sampler
   DALI_TEST_CHECK( visual );
 
   // A lookup texture is generated and pass to shader as sampler
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   TestVisualRender( application, actor, visual, 1u );
 
   Matrix3 alignMatrix( radius, 0.f, 0.f, 0.f, radius, 0.f, center.x, center.y, 1.f );
   TestVisualRender( application, actor, visual, 1u );
 
   Matrix3 alignMatrix( radius, 0.f, 0.f, 0.f, radius, 0.f, center.x, center.y, 1.f );
@@ -581,7 +581,7 @@ int UtcDaliVisualFactoryDefaultOffsetsGradientVisual(void)
   DALI_TEST_CHECK( visual );
 
   // A lookup texture is generated and pass to shader as sampler
   DALI_TEST_CHECK( visual );
 
   // A lookup texture is generated and pass to shader as sampler
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   TestVisualRender( application, actor, visual, 1u );
 
   Stage::GetCurrent().Remove( actor );
   TestVisualRender( application, actor, visual, 1u );
 
   Stage::GetCurrent().Remove( actor );
@@ -623,7 +623,7 @@ int UtcDaliVisualFactoryGetNPatchVisual1(void)
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
-    DummyControl actor = DummyControl::New();
+    DummyControl actor = DummyControl::New(true);
     TestVisualRender( application, actor, visual, 1u,
                       ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                       ninePatchResource );
     TestVisualRender( application, actor, visual, 1u,
                       ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                       ninePatchResource );
@@ -641,7 +641,7 @@ int UtcDaliVisualFactoryGetNPatchVisual1(void)
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
-    DummyControl actor = DummyControl::New();
+    DummyControl actor = DummyControl::New(true);
     TestVisualRender( application, actor, visual, 1u,
                       ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                       ninePatchResource );
     TestVisualRender( application, actor, visual, 1u,
                       ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                       ninePatchResource );
@@ -673,7 +673,7 @@ int UtcDaliVisualFactoryGetNPatchVisual2(void)
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
-    DummyControl actor = DummyControl::New();
+    DummyControl actor = DummyControl::New(true);
     TestVisualRender( application, actor, visual, 1u );
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
     TestVisualRender( application, actor, visual, 1u );
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
@@ -689,7 +689,7 @@ int UtcDaliVisualFactoryGetNPatchVisual2(void)
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
-    DummyControl actor = DummyControl::New();
+    DummyControl actor = DummyControl::New(true);
     TestVisualRender( application, actor, visual, 1u );
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
     TestVisualRender( application, actor, visual, 1u );
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
@@ -708,7 +708,7 @@ int UtcDaliVisualFactoryGetNPatchVisual2(void)
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
-    DummyControl actor = DummyControl::New();
+    DummyControl actor = DummyControl::New(true);
     TestVisualRender( application, actor, visual, 1u );
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
     TestVisualRender( application, actor, visual, 1u );
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
@@ -749,7 +749,7 @@ int UtcDaliVisualFactoryGetNPatchVisual3(void)
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
-    DummyControl actor = DummyControl::New();
+    DummyControl actor = DummyControl::New(true);
     TestVisualRender( application, actor, visual, 1u,
                       ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                       ninePatchResource );
     TestVisualRender( application, actor, visual, 1u,
                       ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                       ninePatchResource );
@@ -769,7 +769,7 @@ int UtcDaliVisualFactoryGetNPatchVisual3(void)
     TestGlAbstraction& gl = application.GetGlAbstraction();
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
     TestGlAbstraction& gl = application.GetGlAbstraction();
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
-    DummyControl actor = DummyControl::New();
+    DummyControl actor = DummyControl::New(true);
     TestVisualRender( application, actor, visual, 1u,
                       ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                       ninePatchResource );
     TestVisualRender( application, actor, visual, 1u,
                       ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                       ninePatchResource );
@@ -807,7 +807,7 @@ int UtcDaliVisualFactoryGetNPatchVisual4(void)
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   TestVisualRender( application, actor, visual, 1u,
                     ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                     ninePatchResource );
   TestVisualRender( application, actor, visual, 1u,
                     ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                     ninePatchResource );
@@ -853,7 +853,7 @@ int UtcDaliVisualFactoryGetNPatchVisual5(void)
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   TestVisualRender( application, actor, visual, 1u,
                     ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                     ninePatchResource );
   TestVisualRender( application, actor, visual, 1u,
                     ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
                     ninePatchResource );
@@ -884,7 +884,7 @@ int UtcDaliVisualFactoryGetNPatchVisualN1(void)
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   TestVisualRender( application, actor, visual, 1u,
                     ImageDimensions(),
                     Integration::ResourcePointer(bitmap) );
   TestVisualRender( application, actor, visual, 1u,
                     ImageDimensions(),
                     Integration::ResourcePointer(bitmap) );
@@ -921,7 +921,7 @@ int UtcDaliVisualFactoryGetNPatchVisualN2(void)
   TraceCallStack& drawTrace = gl.GetDrawTrace();
   drawTrace.Enable(true);
 
   TraceCallStack& drawTrace = gl.GetDrawTrace();
   drawTrace.Enable(true);
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   TestVisualRender( application, actor, visual, 1u,
                     ImageDimensions(),
                     Integration::ResourcePointer(bitmap) );
   TestVisualRender( application, actor, visual, 1u,
                     ImageDimensions(),
                     Integration::ResourcePointer(bitmap) );
@@ -964,9 +964,9 @@ int UtcDaliVisualFactoryGetSvgVisual(void)
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
-  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f) );
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(), Vector2(200.f, 200.f) );
@@ -1007,7 +1007,7 @@ int UtcDaliVisualFactoryGetSvgVisualLarge(void)
   DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   actor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); // Only rasterizes when it knows control size.
   DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   actor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); // Only rasterizes when it knows control size.
-  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
   Stage::GetCurrent().Add( actor );
 
   application.SendNotification();
   Stage::GetCurrent().Add( actor );
 
   application.SendNotification();
@@ -1042,9 +1042,9 @@ void MeshVisualLoadsCorrectlyTest( Property::Map& propertyMap, ToolkitTestApplic
   DALI_TEST_CHECK( visual );
 
   //Create an actor on stage to house the visual.
   DALI_TEST_CHECK( visual );
 
   //Create an actor on stage to house the visual.
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
-  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(), Vector2( 200.f, 200.f ) );
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(), Vector2( 200.f, 200.f ) );
@@ -1085,9 +1085,9 @@ void MeshVisualDoesNotLoadCorrectlyTest( Property::Map& propertyMap, ToolkitTest
   DALI_TEST_CHECK( visual );
 
   //Create an actor on stage to house the visual.
   DALI_TEST_CHECK( visual );
 
   //Create an actor on stage to house the visual.
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
-  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(),  Vector2( 200.f, 200.f ) );
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetTransformAndSize(DefaultTransform(),  Vector2( 200.f, 200.f ) );
@@ -1391,9 +1391,9 @@ void TestPrimitiveVisualWithProperties( Property::Map& propertyMap, ToolkitTestA
   DALI_TEST_CHECK( visual );
 
   //Create an actor on stage to house the visual.
   DALI_TEST_CHECK( visual );
 
   //Create an actor on stage to house the visual.
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
-  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
 
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
 
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
@@ -1809,9 +1809,9 @@ int UtcDaliVisualFactoryGetAnimatedImageVisual1(void)
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
-  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
   actor.SetSize( 200.0f, 200.0f );
   Stage::GetCurrent().Add( actor );
 
   actor.SetSize( 200.0f, 200.0f );
   Stage::GetCurrent().Add( actor );
 
@@ -1898,7 +1898,7 @@ int UtcDaliVisualFactoryGetAnimatedImageVisual2(void)
   TraceCallStack& texParameterTrace = gl.GetTexParameterTrace();
   texParameterTrace.Enable( true );
 
   TraceCallStack& texParameterTrace = gl.GetTexParameterTrace();
   texParameterTrace.Enable( true );
 
-  DummyControl actor = DummyControl::New();
+  DummyControl actor = DummyControl::New(true);
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
   actor.SetSize( 200.0f, 200.0f );
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
   dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
   actor.SetSize( 200.0f, 200.0f );
index 304ba78..ffcfdd7 100644 (file)
@@ -439,21 +439,20 @@ void Control::Impl::RegisterVisual( Property::Index index, Toolkit::Visual::Base
   // ( If the control has been type registered )
   if( visual.GetName().empty() )
   {
   // ( If the control has been type registered )
   if( visual.GetName().empty() )
   {
-    // Check if the control has been type registered:
-    TypeInfo typeInfo = TypeRegistry::Get().GetTypeInfo( typeid( mControlImpl ) );
-    if( typeInfo )
+    try
     {
     {
-      // Check if the property index has been registered:
-      Property::IndexContainer indices;
-      typeInfo.GetPropertyIndices( indices );
-      Property::IndexContainer::Iterator iter = std::find( indices.Begin(), indices.End(), index );
-      if( iter != indices.End() )
+      std::string visualName = self.GetPropertyName( index );
+      if( !visualName.empty() )
       {
       {
-        // If it has, then get it's name and use that for the visual
-        std::string visualName = typeInfo.GetPropertyName( index );
+        DALI_LOG_INFO( gLogFilter, Debug::Concise, "Setting visual name for property %d to %s\n",
+                       index, visualName.c_str() );
         visual.SetName( visualName );
       }
     }
         visual.SetName( visualName );
       }
     }
+    catch( Dali::DaliException e )
+    {
+      DALI_LOG_WARNING( "Attempting to register visual without a registered property, index: %d\n", index );
+    }
   }
 
   if( !visualReplaced ) // New registration entry
   }
 
   if( !visualReplaced ) // New registration entry
@@ -603,11 +602,14 @@ Dali::Animation Control::Impl::CreateTransition( const Toolkit::TransitionData&
 
       if( visual )
       {
 
       if( visual )
       {
+        DALI_LOG_INFO( gLogFilter, Debug::Concise, "CreateTransition: Found visual for %s\n",
+                       visual.GetName().c_str() );
         Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual );
         visualImpl.AnimateProperty( transition, *animator );
       }
       else
       {
         Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual );
         visualImpl.AnimateProperty( transition, *animator );
       }
       else
       {
+        DALI_LOG_INFO( gLogFilter, Debug::Concise, "CreateTransition: Could not find visual. Trying actors");
         // Otherwise, try any actor children of control (Including the control)
         Actor child = mControlImpl.Self().FindChildByName( animator->objectName );
         if( child )
         // Otherwise, try any actor children of control (Including the control)
         Actor child = mControlImpl.Self().FindChildByName( animator->objectName );
         if( child )
index 0dfc002..59e0a18 100644 (file)
@@ -122,6 +122,7 @@ Vector4 Control::GetBackgroundColor() const
 void Control::SetBackground( const Property::Map& map )
 {
   Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( map );
 void Control::SetBackground( const Property::Map& map )
 {
   Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( map );
+  visual.SetName("background");
   if( visual )
   {
     mImpl->RegisterVisual( Toolkit::Control::Property::BACKGROUND, visual, DepthIndex::BACKGROUND );
   if( visual )
   {
     mImpl->RegisterVisual( Toolkit::Control::Property::BACKGROUND, visual, DepthIndex::BACKGROUND );