X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-factory-impl.cpp;h=e762b3e7ef3823e2c43ae1090b8753bbf1811b32;hp=4803e078ab5fe71f7d44eb34fa2b45a69c6e4543;hb=c0f19460b99fc0253297831f0807b03d3ea6901d;hpb=8928813fb057c91497d9ad57c6a580ffe40bd054 diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.cpp b/dali-toolkit/internal/visuals/visual-factory-impl.cpp index 4803e07..e762b3e 100644 --- a/dali-toolkit/internal/visuals/visual-factory-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-factory-impl.cpp @@ -67,11 +67,13 @@ BaseHandle Create() DALI_TYPE_REGISTRATION_BEGIN_CREATE( Toolkit::VisualFactory, Dali::BaseHandle, Create, true ) DALI_TYPE_REGISTRATION_END() +const char * const BROKEN_IMAGE_URL( DALI_IMAGE_DIR "broken.png" ); ///< URL For the broken image } // namespace VisualFactory::VisualFactory( bool debugEnabled ) : mFactoryCache(), + mSlotDelegate(this), mDebugEnabled( debugEnabled ), mPreMultiplyOnLoad( true ) { @@ -81,6 +83,22 @@ VisualFactory::~VisualFactory() { } +void VisualFactory::OnStyleChangedSignal( Toolkit::StyleManager styleManager, StyleChange::Type type) +{ + if( type == StyleChange::THEME_CHANGE ) + { + std::string brokenImageUrl(BROKEN_IMAGE_URL); + + Property::Map config = Toolkit::DevelStyleManager::GetConfigurations( styleManager ); + config["brokenImageUrl"].Get( brokenImageUrl ); + + if( mFactoryCache ) + { + mFactoryCache->SetBrokenImageUrl(brokenImageUrl); + } + } +} + Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& propertyMap ) { Visual::BasePtr visualPtr; @@ -342,6 +360,17 @@ Internal::VisualFactoryCache& VisualFactory::GetFactoryCache() if( !mFactoryCache ) { mFactoryCache = std::unique_ptr( new VisualFactoryCache( mPreMultiplyOnLoad ) ); + + std::string brokenImageUrl(BROKEN_IMAGE_URL); + Toolkit::StyleManager styleManager = Toolkit::StyleManager::Get(); + if( styleManager ) + { + Property::Map config = Toolkit::DevelStyleManager::GetConfigurations( styleManager ); + config["brokenImageUrl"].Get( brokenImageUrl ); + styleManager.StyleChangedSignal().Connect( mSlotDelegate, &VisualFactory::OnStyleChangedSignal ); + } + + mFactoryCache->SetBrokenImageUrl(brokenImageUrl); } return *mFactoryCache; }