X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-factory-impl.cpp;h=e762b3e7ef3823e2c43ae1090b8753bbf1811b32;hb=e671e53804ba5d0c87cbac89db4a6dc60114318c;hp=90bb9377d80055a440ad5e49352fba6cdae9025e;hpb=30ae04d70a9a93e49163a5cec2efafd32fc678b5;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.cpp b/dali-toolkit/internal/visuals/visual-factory-impl.cpp index 90bb937..e762b3e 100644 --- a/dali-toolkit/internal/visuals/visual-factory-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-factory-impl.cpp @@ -67,11 +67,14 @@ 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 ) -: mDebugEnabled( debugEnabled ), +: mFactoryCache(), + mSlotDelegate(this), + mDebugEnabled( debugEnabled ), mPreMultiplyOnLoad( true ) { } @@ -80,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; @@ -341,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; }