From 479e5481d99bd73d0c1858583868f04e71425577 Mon Sep 17 00:00:00 2001 From: Agnelo Vaz Date: Tue, 23 Jun 2015 13:55:49 +0100 Subject: [PATCH] TextController Paste button functional Change-Id: Ic62265c2e17551374e9774829e5f491ca21cf807 Signed-off-by: Agnelo Vaz --- dali-toolkit/internal/text/text-controller-impl.cpp | 7 +++++-- dali-toolkit/internal/text/text-controller-impl.h | 2 +- dali-toolkit/internal/text/text-controller.cpp | 8 ++++++-- dali-toolkit/internal/text/text-controller.h | 3 ++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/dali-toolkit/internal/text/text-controller-impl.cpp b/dali-toolkit/internal/text/text-controller-impl.cpp index cef33eb..f05ffda 100644 --- a/dali-toolkit/internal/text/text-controller-impl.cpp +++ b/dali-toolkit/internal/text/text-controller-impl.cpp @@ -799,9 +799,12 @@ void Controller::Impl::SendSelectionToClipboard( bool deleteAfterSending ) ChangeState( EventData::EDITING ); } -void Controller::Impl::PasteTextFromClipboard() +void Controller::Impl::GetTextFromClipboard( unsigned int itemIndex, std::string& retreivedString ) { - // Not supported + if ( mClipboard ) + { + retreivedString = mClipboard.GetItem( itemIndex ); + } } void Controller::Impl::RepositionSelectionHandles( CharacterIndex selectionStart, CharacterIndex selectionEnd ) diff --git a/dali-toolkit/internal/text/text-controller-impl.h b/dali-toolkit/internal/text/text-controller-impl.h index dc5d3a6..8e84d3c 100644 --- a/dali-toolkit/internal/text/text-controller-impl.h +++ b/dali-toolkit/internal/text/text-controller-impl.h @@ -345,7 +345,7 @@ struct Controller::Impl void SendSelectionToClipboard( bool deleteAfterSending ); - void PasteTextFromClipboard(); + void GetTextFromClipboard( unsigned int itemIndex, std::string& retreivedString ); void RepositionSelectionHandles( CharacterIndex selectionStart, CharacterIndex selectionEnd ); void RepositionSelectionHandles( float visualX, float visualY ); diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 55ece1c..886327f 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -1227,7 +1227,7 @@ void Controller::InsertText( const std::string& text, Controller::InsertType typ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "UTF8 size %d, UTF32 size %d\n", text.size(), utf32Characters.Count() ); } - if( 0u != utf32Characters.Count() ) + if( 0u != utf32Characters.Count() ) // Check if Utf8ToUtf32 conversion succeeded { // Handle the IMF (predicitive text) state changes if( mImpl->mEventData ) @@ -1490,7 +1490,11 @@ void Controller::TextPopupButtonTouched( Dali::Toolkit::TextSelectionPopup::Butt } case Toolkit::TextSelectionPopup::PASTE: { - mImpl->PasteTextFromClipboard(); + std::string stringToPaste(""); + mImpl->GetTextFromClipboard( 0, stringToPaste ); // Paste latest item from system clipboard + InsertText( stringToPaste, Text::Controller::CLIPBOARD ); + mImpl->ChangeState( EventData::EDITING ); + mImpl->RequestRelayout(); break; } case Toolkit::TextSelectionPopup::SELECT: diff --git a/dali-toolkit/internal/text/text-controller.h b/dali-toolkit/internal/text/text-controller.h index 69c210d..f1e1d28 100644 --- a/dali-toolkit/internal/text/text-controller.h +++ b/dali-toolkit/internal/text/text-controller.h @@ -103,7 +103,8 @@ public: enum InsertType { COMMIT, - PRE_EDIT + PRE_EDIT, + CLIPBOARD }; /** -- 2.7.4