From: Bowon Ryu Date: Thu, 12 Jan 2023 08:20:10 +0000 (+0900) Subject: [Tizen] Remove unnecessray Clipboard creation in text controller X-Git-Tag: accepted/tizen/7.0/unified/20230203.164142~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4feaeac549f3062e5214fa9d4f7069d670638196;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git [Tizen] Remove unnecessray Clipboard creation in text controller Change-Id: Ia6a3dcadaecefb3b5e835734338f5a8c37240f4f Signed-off-by: Bowon Ryu --- diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard.cpp index 1d06f25631..15c74ae1fc 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard.cpp @@ -50,6 +50,11 @@ public: Clipboard(/*Ecore_X_Window ecoreXwin*/); virtual ~Clipboard(); + /** + * @copydoc Dali::Clipboard::IsAvailable() + */ + static bool IsAvailable(); + /** * @copydoc Dali::Clipboard::SetItem() */ @@ -113,6 +118,15 @@ Dali::Clipboard Clipboard::Get() return mToolkitClipboard; } +bool Clipboard::IsAvailable() +{ + if(mToolkitClipboard) + { + return true; + } + return false; +} + bool Clipboard::SetItem(const std::string &itemData ) { mItem = itemData; diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard.h b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard.h index ad532cd870..d3d684d509 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard.h +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard.h @@ -66,6 +66,13 @@ public: */ static Clipboard Get(); + /** + * @brief Checks whether the clipboard is available. + * + * @return true, if it is available, false otherwise. + */ + static bool IsAvailable(); + /** * Send the given string to the clipboard * @param[in] itemData string to send to clip board diff --git a/dali-toolkit/internal/text/controller/text-controller-impl.cpp b/dali-toolkit/internal/text/controller/text-controller-impl.cpp index 8b6d8cb63f..29bab358e5 100644 --- a/dali-toolkit/internal/text/controller/text-controller-impl.cpp +++ b/dali-toolkit/internal/text/controller/text-controller-impl.cpp @@ -1051,7 +1051,7 @@ std::pair Controller::Impl::GetSelectionIndexes() const void Controller::Impl::ShowClipboard() { - if(mClipboard) + if(EnsureClipboardCreated()) { mClipboard.ShowClipboard(); } @@ -1059,7 +1059,7 @@ void Controller::Impl::ShowClipboard() void Controller::Impl::HideClipboard() { - if(mClipboard && mClipboardHideEnabled) + if(EnsureClipboardCreated() && mClipboardHideEnabled) { mClipboard.HideClipboard(); } @@ -1073,7 +1073,7 @@ void Controller::Impl::SetClipboardHideEnable(bool enable) bool Controller::Impl::CopyStringToClipboard(const std::string& source) { //Send string to clipboard - return (mClipboard && mClipboard.SetItem(source)); + return (EnsureClipboardCreated() && mClipboard.SetItem(source)); } void Controller::Impl::SendSelectionToClipboard(bool deleteAfterSending) @@ -1086,7 +1086,7 @@ void Controller::Impl::SendSelectionToClipboard(bool deleteAfterSending) void Controller::Impl::RequestGetTextFromClipboard() { - if(mClipboard) + if(EnsureClipboardCreated()) { mClipboard.RequestItem(); } diff --git a/dali-toolkit/internal/text/controller/text-controller-impl.h b/dali-toolkit/internal/text/controller/text-controller-impl.h index faa8772fa4..ba67b396e3 100644 --- a/dali-toolkit/internal/text/controller/text-controller-impl.h +++ b/dali-toolkit/internal/text/controller/text-controller-impl.h @@ -370,7 +370,10 @@ struct Controller::Impl mModel = Model::New(); mFontClient = TextAbstraction::FontClient::Get(); - mClipboard = Clipboard::Get(); + if(mEditableControlInterface != nullptr && Clipboard::IsAvailable()) + { + mClipboard = Clipboard::Get(); + } mView.SetVisualModel(mModel->mVisualModel); mView.SetLogicalModel(mModel->mLogicalModel); @@ -551,15 +554,25 @@ struct Controller::Impl */ void GetText(CharacterIndex index, std::string& text) const; + bool EnsureClipboardCreated() + { + if(!mClipboard) + { + mClipboard = Clipboard::Get(); + } + + return mClipboard != nullptr ? true : false; + } + bool IsClipboardEmpty() { - bool result(mClipboard && mClipboard.NumberOfItems()); + bool result(Clipboard::IsAvailable() && EnsureClipboardCreated() && mClipboard.NumberOfItems()); return !result; // If NumberOfItems greater than 0, return false } bool IsClipboardVisible() { - bool result(mClipboard && mClipboard.IsVisible()); + bool result(Clipboard::IsAvailable() && EnsureClipboardCreated() && mClipboard.IsVisible()); return result; }