X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-factory-impl.cpp;h=112fdd39f48bc871e11b5488ce079749f946ac33;hb=ec0f0792f651f58e887bf53801da23a6d76de0e0;hp=6bbc2dfca4faf6d9204b9adacb0b5e51e1d3b340;hpb=9161d9828d1a5bb3c7eaf83002863de84b23b751;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 6bbc2df..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; @@ -154,6 +150,7 @@ Toolkit::Visual::Base VisualFactory::CreateVisual(const Property::Map& propertyM visualPtr = NPatchVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl, propertyMap); break; } + case VisualUrl::TVG: case VisualUrl::SVG: { visualPtr = SvgVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl, propertyMap); @@ -166,7 +163,6 @@ Toolkit::Visual::Base VisualFactory::CreateVisual(const Property::Map& propertyM break; } case VisualUrl::JSON: - case VisualUrl::RIVE: { visualPtr = AnimatedVectorImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), imageUrl, propertyMap); break; @@ -319,6 +315,7 @@ Toolkit::Visual::Base VisualFactory::CreateVisual(const std::string& url, ImageD visualPtr = NPatchVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl); break; } + case VisualUrl::TVG: case VisualUrl::SVG: { visualPtr = SvgVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl); @@ -331,7 +328,6 @@ Toolkit::Visual::Base VisualFactory::CreateVisual(const std::string& url, ImageD break; } case VisualUrl::JSON: - case VisualUrl::RIVE: { visualPtr = AnimatedVectorImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl); break; @@ -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; }