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=112fdd39f48bc871e11b5488ce079749f946ac33;hp=b86dcf0dd5faffabdecb05c563e565a53b049f36;hb=b5d9e85e1551fba1e45ce67e31d1d887a29efd89;hpb=0b1004e57c35369617cfd0327baf22e8e27a994a diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.cpp b/dali-toolkit/internal/visuals/visual-factory-impl.cpp index b86dcf0..112fdd3 100644 --- a/dali-toolkit/internal/visuals/visual-factory-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-factory-impl.cpp @@ -91,19 +91,15 @@ void VisualFactory::OnStyleChangedSignal(Toolkit::StyleManager styleManager, Sty { if(type == StyleChange::THEME_CHANGE) { - const std::string imageDirPath = AssetManager::GetDaliImagePath(); - std::string brokenImageUrl = imageDirPath + BROKEN_IMAGE_FILE_NAME; - - Property::Map config = Toolkit::DevelStyleManager::GetConfigurations(styleManager); - config["brokenImageUrl"].Get(brokenImageUrl); - - if(mFactoryCache) - { - mFactoryCache->SetBrokenImageUrl(brokenImageUrl); - } + SetBrokenImageUrl(styleManager); } } +void VisualFactory::OnBrokenImageChangedSignal(Toolkit::StyleManager styleManager) +{ + SetBrokenImageUrl(styleManager); +} + Toolkit::Visual::Base VisualFactory::CreateVisual(const Property::Map& propertyMap) { Visual::BasePtr visualPtr; @@ -372,24 +368,43 @@ Internal::TextureManager& VisualFactory::GetTextureManager() return GetFactoryCache().GetTextureManager(); } +void VisualFactory::SetBrokenImageUrl(Toolkit::StyleManager& styleManager) +{ + const std::string imageDirPath = AssetManager::GetDaliImagePath(); + std::string brokenImageUrl = imageDirPath + BROKEN_IMAGE_FILE_NAME; + std::vector customBrokenImageUrlList; + + if(styleManager) + { + customBrokenImageUrlList = Toolkit::DevelStyleManager::GetBrokenImageUrlList(styleManager); + if(customBrokenImageUrlList.size() == 0) + { + Property::Map config = Toolkit::DevelStyleManager::GetConfigurations(styleManager); + config["brokenImageUrl"].Get(brokenImageUrl); + customBrokenImageUrlList.push_back(brokenImageUrl); + } + mFactoryCache->SetBrokenImageUrl(customBrokenImageUrlList); + } + else + { + // Set default image + customBrokenImageUrlList.push_back(brokenImageUrl); + mFactoryCache->SetBrokenImageUrl(customBrokenImageUrlList); + } +} + Internal::VisualFactoryCache& VisualFactory::GetFactoryCache() { if(!mFactoryCache) { mFactoryCache = std::unique_ptr(new VisualFactoryCache(mPreMultiplyOnLoad)); - - const std::string imageDirPath = AssetManager::GetDaliImagePath(); - std::string brokenImageUrl = imageDirPath + BROKEN_IMAGE_FILE_NAME; - 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); + Toolkit::DevelStyleManager::BrokenImageChangedSignal(styleManager).Connect(mSlotDelegate, &VisualFactory::OnBrokenImageChangedSignal); } - - mFactoryCache->SetBrokenImageUrl(brokenImageUrl); + SetBrokenImageUrl(styleManager); } return *mFactoryCache; }