X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fstyling%2Fstyle-manager-impl.cpp;h=e6ad82f730f102d0fb5a53a85319c3f3dc4d0389;hb=d7d0746a5d6952f6087785b99a78108f2fec8999;hp=0968081cb16e1ece5a6a56b7b9272a41922469e7;hpb=c052b6678e2c6d8a65545dbbe4531ea7057c1999;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/styling/style-manager-impl.cpp b/dali-toolkit/internal/styling/style-manager-impl.cpp index 0968081..e6ad82f 100644 --- a/dali-toolkit/internal/styling/style-manager-impl.cpp +++ b/dali-toolkit/internal/styling/style-manager-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,6 +45,8 @@ const char* APPLICATION_RESOURCE_PATH_KEY = "APPLICATION_RESOURCE_PATH"; const char* DEFAULT_TOOLKIT_PACKAGE_PATH = "/toolkit/"; +static constexpr int32_t COUNT_BROKEN_IMAGE_MAX = 3; + #if defined(DEBUG_ENABLED) Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, false, "LOG_STYLE"); #endif @@ -125,6 +127,9 @@ StyleManager::StyleManager() // Sound & haptic style mFeedbackStyle = new FeedbackStyle(); + + // Initialize BrokenImages + mBrokenImageUrls.assign(COUNT_BROKEN_IMAGE_MAX, ""); } StyleManager::~StyleManager() @@ -230,6 +235,11 @@ Toolkit::StyleManager::StyleChangedSignalType& StyleManager::ControlStyleChangeS return mControlStyleChangeSignal; } +Toolkit::DevelStyleManager::BrokenImageChangedSignalType& StyleManager::BrokenImageChangedSignal() +{ + return mBrokenImageChangedSignal; +} + void StyleManager::SetTheme(const std::string& themeFile) { bool themeLoaded = false; @@ -275,38 +285,62 @@ void StyleManager::SetTheme(const std::string& themeFile) } } -const Property::Map StyleManager::GetConfigurations() +const Property::Map& StyleManager::GetConfigurations() { DALI_LOG_STREAM(gLogFilter, Debug::Concise, "GetConfigurations()\n On entry, mThemeBuilder: " << (bool(mThemeBuilder) ? "Created" : "Empty") << " mThemeFile: " << mThemeFile); - Property::Map result; - if(mThemeBuilder) - { - result = mThemeBuilder.GetConfigurations(); - } - else + if(!mThemeBuilder) { DALI_LOG_STREAM(gLogFilter, Debug::Concise, "GetConfigurations() Loading default theme"); - bool themeLoaded = false; - mThemeBuilder = CreateBuilder(mThemeBuilderConstants); // Load default theme because this is first try to load stylesheet. - themeLoaded = LoadJSON(mThemeBuilder, mDefaultThemeFilePath); - mThemeFile = mDefaultThemeFilePath; - - if(themeLoaded) - { - result = mThemeBuilder.GetConfigurations(); - } +#if defined(DEBUG_ENABLED) + bool themeLoaded = LoadJSON(mThemeBuilder, mDefaultThemeFilePath); DALI_LOG_STREAM(gLogFilter, Debug::Concise, " themeLoaded" << (themeLoaded ? "success" : "failure")); +#else + LoadJSON(mThemeBuilder, mDefaultThemeFilePath); +#endif + + mThemeFile = mDefaultThemeFilePath; } +#if defined(DEBUG_ENABLED) + Property::Map result = mThemeBuilder.GetConfigurations(); DALI_LOG_STREAM(gLogFilter, Debug::Concise, "GetConfigurations()\n On exit, result Count: " << (result.Count() != 0)); DALI_LOG_STREAM(gLogFilter, Debug::Verbose, " result: " << result); +#endif + + return mThemeBuilder.GetConfigurations(); +} + +void StyleManager::SetBrokenImageUrl(DevelStyleManager::BrokenImageType brokenImageType, const std::string& brokenImageUrl) +{ + int brokenType = static_cast(brokenImageType); + mBrokenImageUrls[brokenType] = brokenImageUrl; + Toolkit::StyleManager styleManager = StyleManager::Get(); + mBrokenImageChangedSignal.Emit(styleManager); +} - return result; +std::string StyleManager::GetBrokenImageUrl(DevelStyleManager::BrokenImageType brokenImageType) +{ + int brokenType = static_cast(brokenImageType); + return mBrokenImageUrls[brokenType]; +} + +std::vector StyleManager::GetBrokenImageUrlList() +{ + // create a list for brokenImage + std::vector brokenImageUrlList; + for(int i = 0; i < COUNT_BROKEN_IMAGE_MAX; i++) + { + if(!mBrokenImageUrls[i].empty()) + { + brokenImageUrlList.push_back(mBrokenImageUrls[i]); + } + } + return brokenImageUrlList; } bool StyleManager::LoadFile(const std::string& filename, std::string& stringOut)