From: Bowon Ryu Date: Tue, 21 Mar 2023 02:09:36 +0000 (+0900) Subject: [Tizen] Add EnsureFontClientCreated to StyleMonitor X-Git-Tag: accepted/tizen/7.0/unified/20230330.014304~2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git;a=commitdiff_plain;h=2f69c7550abc0498982ca70a977d7230ff46557c [Tizen] Add EnsureFontClientCreated to StyleMonitor to prevent a FontClient from being created faster than necessary, do not create a FontClient in the constructor. Change-Id: I496c71816f953c769558f23abff11ae03fcef0f8 Signed-off-by: Bowon Ryu --- diff --git a/dali/devel-api/adaptor-framework/style-monitor.cpp b/dali/devel-api/adaptor-framework/style-monitor.cpp index 233505a..a65b61b 100644 --- a/dali/devel-api/adaptor-framework/style-monitor.cpp +++ b/dali/devel-api/adaptor-framework/style-monitor.cpp @@ -49,6 +49,11 @@ StyleMonitor StyleMonitor::DownCast(BaseHandle handle) return StyleMonitor(dynamic_cast(handle.GetObjectPtr())); } +bool StyleMonitor::EnsureFontClientCreated() +{ + return GetImplementation(*this).EnsureFontClientCreated(); +} + std::string StyleMonitor::GetDefaultFontFamily() const { return GetImplementation(*this).GetDefaultFontFamily(); diff --git a/dali/devel-api/adaptor-framework/style-monitor.h b/dali/devel-api/adaptor-framework/style-monitor.h index 2708eec..fabf58f 100644 --- a/dali/devel-api/adaptor-framework/style-monitor.h +++ b/dali/devel-api/adaptor-framework/style-monitor.h @@ -118,6 +118,15 @@ public: // Creation & Destruction static StyleMonitor DownCast(BaseHandle handle); public: // Style Information + + /** + * @brief Ensure the font client has been created. + * + * If font client doesn't exist, create it and set default values. + * @return true if the font client has been created. + */ + bool EnsureFontClientCreated(); + /** * @brief Retrieves the default font family. * @return The default font family. diff --git a/dali/internal/styling/common/style-monitor-impl.cpp b/dali/internal/styling/common/style-monitor-impl.cpp index 3e9000d..01adfbd 100644 --- a/dali/internal/styling/common/style-monitor-impl.cpp +++ b/dali/internal/styling/common/style-monitor-impl.cpp @@ -83,23 +83,32 @@ Dali::StyleMonitor StyleMonitor::Get() StyleMonitor::StyleMonitor() : mDefaultFontSize(-1) { - mFontClient = TextAbstraction::FontClient::Get(); - GetSystemDefaultFontFamily(mFontClient, mDefaultFontFamily); - DALI_LOG_INFO(gLogFilter, Debug::Verbose, "StyleMonitor::StyleMonitor::DefaultFontFamily(%s)\n", mDefaultFontFamily.c_str()); - mDefaultFontSize = mFontClient.GetDefaultFontSize(); } StyleMonitor::~StyleMonitor() { } +bool StyleMonitor::EnsureFontClientCreated() +{ + if(!mFontClient) + { + mFontClient = TextAbstraction::FontClient::Get(); + GetSystemDefaultFontFamily(mFontClient, mDefaultFontFamily); + DALI_LOG_INFO(gLogFilter, Debug::Verbose, "StyleMonitor::StyleMonitor::DefaultFontFamily(%s)\n", mDefaultFontFamily.c_str()); + mDefaultFontSize = mFontClient.GetDefaultFontSize(); + } + + return mFontClient != nullptr ? true : false; +} + void StyleMonitor::StyleChanged(StyleChange::Type styleChange) { switch(styleChange) { case StyleChange::DEFAULT_FONT_CHANGE: { - if(mFontClient) + if(EnsureFontClientCreated()) { mFontClient.ResetSystemDefaults(); GetSystemDefaultFontFamily(mFontClient, mDefaultFontFamily); @@ -110,7 +119,10 @@ void StyleMonitor::StyleChanged(StyleChange::Type styleChange) case StyleChange::DEFAULT_FONT_SIZE_CHANGE: { - mDefaultFontSize = mFontClient.GetDefaultFontSize(); + if(EnsureFontClientCreated()) + { + mDefaultFontSize = mFontClient.GetDefaultFontSize(); + } break; } diff --git a/dali/internal/styling/common/style-monitor-impl.h b/dali/internal/styling/common/style-monitor-impl.h index 14f8fb5..a8bc511 100644 --- a/dali/internal/styling/common/style-monitor-impl.h +++ b/dali/internal/styling/common/style-monitor-impl.h @@ -63,6 +63,11 @@ public: // Style Information /** + * @copydoc Dali::StyleMonitor::EnsureFontClientCreated() + */ + bool EnsureFontClientCreated(); + + /** * @copydoc Dali::StyleMonitor::GetDefaultFontFamily() const */ std::string GetDefaultFontFamily() const;