From: Richard Underhill Date: Mon, 7 Apr 2014 14:37:15 +0000 (+0100) Subject: Shortcut check for markup in a string, before attempting to parse and split the strin... X-Git-Tag: dali-2014-wk16-release~7 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=e2e777d22421d671e2bc7bf81148f7b89a44e807 Shortcut check for markup in a string, before attempting to parse and split the string into individual text styles. [Issue#] N/A [Problem] [Cause] [Solution] Avoids stylestack if no markup Markup processing on text view and text input must now be specifically enabled via the SetMarkupProcessingEnabled( true ) Change-Id: Ide2f77c644c3bec42f71d3f3963f1f9c2584a353 Signed-off-by: Richard Underhill --- diff --git a/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-HelperAndDebug.cpp b/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-HelperAndDebug.cpp index 494039b..118d2f4 100644 --- a/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-HelperAndDebug.cpp +++ b/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-HelperAndDebug.cpp @@ -85,7 +85,7 @@ bool TestGetIndicesFromGlobalCharacterIndex( const std::string& description, TextViewProcessor::TextLayoutInfo& inputLayout( relayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( input, inputStyledText ); + MarkupProcessor::GetStyledTextArray( input, inputStyledText, true ); TextViewProcessor::CreateTextInfo( inputStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -277,7 +277,7 @@ static void UtcDaliTextViewDebugCouts() Toolkit::Internal::TextView::RelayoutData relayoutData; MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( std::string( "Hello world\nhello world" ), inputStyledText ); + MarkupProcessor::GetStyledTextArray( std::string( "Hello world\nhello world" ), inputStyledText, true ); TextViewProcessor::CreateTextInfo( inputStyledText, DEFAULT_LAYOUT_PARAMETERS, diff --git a/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-Processor.cpp b/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-Processor.cpp index 8f9a85e..90fed94 100644 --- a/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-Processor.cpp +++ b/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-Processor.cpp @@ -48,7 +48,7 @@ bool TestBeginsRightToLeftCharacter( const std::string& description, const std:: { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( input, styledText ); + MarkupProcessor::GetStyledTextArray( input, styledText, true ); const bool ret = ( result == TextProcessor::BeginsRightToLeftCharacter( styledText ) ); @@ -74,7 +74,7 @@ bool TestContainsRightToLeftCharacter( const std::string& description, const std { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( input, styledText ); + MarkupProcessor::GetStyledTextArray( input, styledText, true ); const bool ret = ( result == TextProcessor::ContainsRightToLeftCharacter( styledText ) ); @@ -102,7 +102,7 @@ bool TestFindNearestWord( const std::string& description, const std::string& inp { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( input, styledText ); + MarkupProcessor::GetStyledTextArray( input, styledText, true ); std::size_t start; std::size_t end; @@ -132,7 +132,7 @@ bool TestSplitInLines( const SplitInLinesTest& test, const char* location ) { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( test.inputText, styledText ); + MarkupProcessor::GetStyledTextArray( test.inputText, styledText, true ); std::vector lines; @@ -163,7 +163,7 @@ bool TestSplitInWords( const SplitInWordsTest& test, const char* location ) { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( test.inputText, styledText ); + MarkupProcessor::GetStyledTextArray( test.inputText, styledText, true ); std::vector words; diff --git a/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-Relayout-Utilities.cpp b/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-Relayout-Utilities.cpp index 9b5ddef..5a5aa26 100644 --- a/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-Relayout-Utilities.cpp +++ b/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView-Relayout-Utilities.cpp @@ -69,7 +69,7 @@ bool TestCalculateSubLineLayout( const CalculateSubLineLayoutTest& test, const // Create styled text. MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( test.inputLine, inputStyledText ); + MarkupProcessor::GetStyledTextArray( test.inputLine, inputStyledText, true ); // Create styled text layout info. Toolkit::Internal::TextView::RelayoutData relayoutData; diff --git a/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView.cpp b/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView.cpp index 188377b..83d39a8 100644 --- a/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView.cpp +++ b/automated-tests/dali-internal-test-suite/text-view/utc-Dali-TextView.cpp @@ -535,7 +535,7 @@ bool TestSplitWord( const std::string& description, const std::string& input, co TextViewProcessor::TextLayoutInfo& inputLayout( relayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( input, inputStyledText ); + MarkupProcessor::GetStyledTextArray( input, inputStyledText, true ); TextViewProcessor::CreateTextInfo( inputStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -563,7 +563,7 @@ bool TestSplitWord( const std::string& description, const std::string& input, co TextViewProcessor::TextLayoutInfo& firstResultLayout( firstRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray firstResultStyledText; - MarkupProcessor::GetStyledTextArray( firstResult, firstResultStyledText ); + MarkupProcessor::GetStyledTextArray( firstResult, firstResultStyledText, true ); TextViewProcessor::CreateTextInfo( firstResultStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -591,7 +591,7 @@ bool TestSplitWord( const std::string& description, const std::string& input, co TextViewProcessor::TextLayoutInfo& lastResultLayout( lastRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray lastResultStyledText; - MarkupProcessor::GetStyledTextArray( lastResult, lastResultStyledText ); + MarkupProcessor::GetStyledTextArray( lastResult, lastResultStyledText, true ); TextViewProcessor::CreateTextInfo( lastResultStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -667,7 +667,7 @@ bool TestSplitWordGroup( const std::string& description, TextViewProcessor::TextLayoutInfo& inputLayout( relayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( input, inputStyledText ); + MarkupProcessor::GetStyledTextArray( input, inputStyledText, true ); TextViewProcessor::CreateTextInfo( inputStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -691,7 +691,7 @@ bool TestSplitWordGroup( const std::string& description, TextViewProcessor::TextLayoutInfo& firstResultLayout( firstRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray firstResultStyledText; - MarkupProcessor::GetStyledTextArray( firstResult, firstResultStyledText ); + MarkupProcessor::GetStyledTextArray( firstResult, firstResultStyledText, true ); TextViewProcessor::CreateTextInfo( firstResultStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -715,7 +715,7 @@ bool TestSplitWordGroup( const std::string& description, TextViewProcessor::TextLayoutInfo& lastResultLayout( lastRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray lastResultStyledText; - MarkupProcessor::GetStyledTextArray( lastResult, lastResultStyledText ); + MarkupProcessor::GetStyledTextArray( lastResult, lastResultStyledText, true ); TextViewProcessor::CreateTextInfo( lastResultStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -792,7 +792,7 @@ bool TestSplitLine( const std::string& description, TextViewProcessor::TextLayoutInfo& inputLayout( relayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( input, inputStyledText ); + MarkupProcessor::GetStyledTextArray( input, inputStyledText, true ); TextViewProcessor::CreateTextInfo( inputStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -801,7 +801,8 @@ bool TestSplitLine( const std::string& description, static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..." ), + true ), relayoutData ); // Get the input line @@ -818,7 +819,7 @@ bool TestSplitLine( const std::string& description, TextViewProcessor::TextLayoutInfo& firstResultLayout( firstRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray firstResultStyledText; - MarkupProcessor::GetStyledTextArray( firstResult, firstResultStyledText ); + MarkupProcessor::GetStyledTextArray( firstResult, firstResultStyledText, true ); TextViewProcessor::CreateTextInfo( firstResultStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -827,7 +828,8 @@ bool TestSplitLine( const std::string& description, static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..." ), + true ), firstRelayoutData ); // Get the first result line @@ -844,7 +846,7 @@ bool TestSplitLine( const std::string& description, TextViewProcessor::TextLayoutInfo& lastResultLayout( lastRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray lastResultStyledText; - MarkupProcessor::GetStyledTextArray( lastResult, lastResultStyledText ); + MarkupProcessor::GetStyledTextArray( lastResult, lastResultStyledText, true ); TextViewProcessor::CreateTextInfo( lastResultStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -853,7 +855,8 @@ bool TestSplitLine( const std::string& description, static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..."), + true ), lastRelayoutData ); // Get the last result line @@ -912,7 +915,7 @@ bool TestMergeWords( const std::string& description, const std::string& inputFir TextViewProcessor::TextLayoutInfo& inputFirstLayout( firstRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputFirstStyledText; - MarkupProcessor::GetStyledTextArray( inputFirst, inputFirstStyledText ); + MarkupProcessor::GetStyledTextArray( inputFirst, inputFirstStyledText, true ); TextViewProcessor::CreateTextInfo( inputFirstStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -939,7 +942,7 @@ bool TestMergeWords( const std::string& description, const std::string& inputFir TextViewProcessor::TextLayoutInfo& inputLastLayout( lastRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputLastStyledText; - MarkupProcessor::GetStyledTextArray( inputLast, inputLastStyledText ); + MarkupProcessor::GetStyledTextArray( inputLast, inputLastStyledText, true ); TextViewProcessor::CreateTextInfo( inputLastStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -966,7 +969,7 @@ bool TestMergeWords( const std::string& description, const std::string& inputFir TextViewProcessor::TextLayoutInfo& resultLayout( resultRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray resultStyledText; - MarkupProcessor::GetStyledTextArray( result, resultStyledText ); + MarkupProcessor::GetStyledTextArray( result, resultStyledText, true ); TextViewProcessor::CreateTextInfo( resultStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -1022,7 +1025,7 @@ bool TestMergeGroupsOfWords( const std::string& description, const std::string& TextViewProcessor::TextLayoutInfo& inputFirstLayout( firstRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputFirstStyledText; - MarkupProcessor::GetStyledTextArray( inputFirst, inputFirstStyledText ); + MarkupProcessor::GetStyledTextArray( inputFirst, inputFirstStyledText, true ); TextViewProcessor::CreateTextInfo( inputFirstStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -1045,7 +1048,7 @@ bool TestMergeGroupsOfWords( const std::string& description, const std::string& TextViewProcessor::TextLayoutInfo& inputLastLayout( lastRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputLastStyledText; - MarkupProcessor::GetStyledTextArray( inputLast, inputLastStyledText ); + MarkupProcessor::GetStyledTextArray( inputLast, inputLastStyledText, true ); TextViewProcessor::CreateTextInfo( inputLastStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -1068,7 +1071,7 @@ bool TestMergeGroupsOfWords( const std::string& description, const std::string& TextViewProcessor::TextLayoutInfo& resultLayout( resultRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray resultStyledText; - MarkupProcessor::GetStyledTextArray( result, resultStyledText ); + MarkupProcessor::GetStyledTextArray( result, resultStyledText, true ); TextViewProcessor::CreateTextInfo( resultStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -1121,7 +1124,7 @@ bool TestMergeLines( const std::string& description, const std::string& inputFir TextViewProcessor::TextLayoutInfo& inputFirstLayout( firstRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputFirstStyledText; - MarkupProcessor::GetStyledTextArray( inputFirst, inputFirstStyledText ); + MarkupProcessor::GetStyledTextArray( inputFirst, inputFirstStyledText, true ); TextViewProcessor::CreateTextInfo( inputFirstStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -1130,7 +1133,8 @@ bool TestMergeLines( const std::string& description, const std::string& inputFir static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..." ), + true ), firstRelayoutData ); // Get the input word @@ -1146,7 +1150,7 @@ bool TestMergeLines( const std::string& description, const std::string& inputFir TextViewProcessor::TextLayoutInfo& inputLastLayout( lastRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputLastStyledText; - MarkupProcessor::GetStyledTextArray( inputLast, inputLastStyledText ); + MarkupProcessor::GetStyledTextArray( inputLast, inputLastStyledText, true ); TextViewProcessor::CreateTextInfo( inputLastStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -1155,7 +1159,8 @@ bool TestMergeLines( const std::string& description, const std::string& inputFir static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..." ), + true ), lastRelayoutData ); // Get the input word @@ -1171,7 +1176,7 @@ bool TestMergeLines( const std::string& description, const std::string& inputFir TextViewProcessor::TextLayoutInfo& resultLayout( resultRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray resultStyledText; - MarkupProcessor::GetStyledTextArray( result, resultStyledText ); + MarkupProcessor::GetStyledTextArray( result, resultStyledText, true ); TextViewProcessor::CreateTextInfo( resultStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -1180,7 +1185,8 @@ bool TestMergeLines( const std::string& description, const std::string& inputFir static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..." ), + true ), resultRelayoutData ); // Get the result word @@ -1226,7 +1232,7 @@ bool TestRemoveCharactersFromWord( const std::string& description, const std::st TextViewProcessor::TextLayoutInfo& inputLayout( relayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( input, inputStyledText ); + MarkupProcessor::GetStyledTextArray( input, inputStyledText, true ); TextViewProcessor::CreateTextInfo( inputStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -1253,7 +1259,7 @@ bool TestRemoveCharactersFromWord( const std::string& description, const std::st TextViewProcessor::TextLayoutInfo& resultLayout( resultRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray resultStyledText; - MarkupProcessor::GetStyledTextArray( result, resultStyledText ); + MarkupProcessor::GetStyledTextArray( result, resultStyledText, true ); TextViewProcessor::CreateTextInfo( resultStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -1311,7 +1317,7 @@ bool TestRemoveWordsFromGroup( const std::string& description, const std::string TextViewProcessor::TextLayoutInfo& inputLayout( relayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( input, inputStyledText ); + MarkupProcessor::GetStyledTextArray( input, inputStyledText, true ); TextViewProcessor::CreateTextInfo( inputStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -1334,7 +1340,7 @@ bool TestRemoveWordsFromGroup( const std::string& description, const std::string TextViewProcessor::TextLayoutInfo& resultLayout( resultRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray resultStyledText; - MarkupProcessor::GetStyledTextArray( result, resultStyledText ); + MarkupProcessor::GetStyledTextArray( result, resultStyledText, true ); TextViewProcessor::CreateTextInfo( resultStyledText, DEFAULT_LAYOUT_PARAMETERS, @@ -1390,7 +1396,7 @@ bool TestRemoveGroupsFromLine( const std::string& description, const std::string TextViewProcessor::TextLayoutInfo& inputLayout( relayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( input, inputStyledText ); + MarkupProcessor::GetStyledTextArray( input, inputStyledText, true ); TextViewProcessor::CreateTextInfo( inputStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -1399,7 +1405,8 @@ bool TestRemoveGroupsFromLine( const std::string& description, const std::string static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..." ), + true ), relayoutData ); // Get the input line @@ -1415,7 +1422,7 @@ bool TestRemoveGroupsFromLine( const std::string& description, const std::string TextViewProcessor::TextLayoutInfo& resultLayout( resultRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray resultStyledText; - MarkupProcessor::GetStyledTextArray( result, resultStyledText ); + MarkupProcessor::GetStyledTextArray( result, resultStyledText, true ); TextViewProcessor::CreateTextInfo( resultStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -1424,7 +1431,8 @@ bool TestRemoveGroupsFromLine( const std::string& description, const std::string static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..." ), + true ), resultRelayoutData ); // Get the result line @@ -1483,7 +1491,7 @@ bool TestUpdateTextInfo( const std::string& description, TextViewProcessor::TextLayoutInfo& inputLayout( relayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( input, inputStyledText ); + MarkupProcessor::GetStyledTextArray( input, inputStyledText, true ); TextViewProcessor::CreateTextInfo( inputStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -1492,7 +1500,8 @@ bool TestUpdateTextInfo( const std::string& description, static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..." ), + true ), relayoutData ); // Create layout info for the result. @@ -1500,7 +1509,7 @@ bool TestUpdateTextInfo( const std::string& description, TextViewProcessor::TextLayoutInfo& resultLayout( resultRelayoutData.mTextLayoutInfo ); MarkupProcessor::StyledTextArray resultStyledText; - MarkupProcessor::GetStyledTextArray( result, resultStyledText ); + MarkupProcessor::GetStyledTextArray( result, resultStyledText, true ); TextViewProcessor::CreateTextInfo( resultStyledText, Toolkit::Internal::TextView::LayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -1509,7 +1518,8 @@ bool TestUpdateTextInfo( const std::string& description, static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ), + std::string( "..." ), + true ), resultRelayoutData ); // Choose operation and call appropiate UpdateTextInfo() method. @@ -1519,14 +1529,15 @@ bool TestUpdateTextInfo( const std::string& description, static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Center, PointSize( lineHeightOffset ), - std::string( "..." ) ); + std::string( "..." ), + true ); switch( operation ) { case Insert: { MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( inputText, inputStyledText ); + MarkupProcessor::GetStyledTextArray( inputText, inputStyledText, true ); TextViewProcessor::UpdateTextInfo( position, inputStyledText, @@ -1546,7 +1557,7 @@ bool TestUpdateTextInfo( const std::string& description, case Replace: { MarkupProcessor::StyledTextArray inputStyledText; - MarkupProcessor::GetStyledTextArray( inputText, inputStyledText ); + MarkupProcessor::GetStyledTextArray( inputText, inputStyledText, true ); TextViewProcessor::UpdateTextInfo( position, numberOfCharacters, @@ -1667,7 +1678,7 @@ static void UtcDaliTextViewCreateTextInfo() "\n" ); MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( text, styledText ); + MarkupProcessor::GetStyledTextArray( text, styledText, true ); TextViewProcessor::CreateTextInfo( styledText, DEFAULT_LAYOUT_PARAMETERS, @@ -2341,9 +2352,9 @@ static void UtcDaliTextViewMergeWord02() MarkupProcessor::StyledTextArray styledText01; MarkupProcessor::StyledTextArray styledText02; MarkupProcessor::StyledTextArray styledText03; - MarkupProcessor::GetStyledTextArray( text01, styledText01 ); - MarkupProcessor::GetStyledTextArray( text02, styledText02 ); - MarkupProcessor::GetStyledTextArray( text03, styledText03 ); + MarkupProcessor::GetStyledTextArray( text01, styledText01, true ); + MarkupProcessor::GetStyledTextArray( text02, styledText02, true ); + MarkupProcessor::GetStyledTextArray( text03, styledText03, true ); TextViewProcessor::CreateTextInfo( styledText01, DEFAULT_LAYOUT_PARAMETERS, @@ -2521,9 +2532,9 @@ static void UtcDaliTextViewMergeGroup02() MarkupProcessor::StyledTextArray styledText01; MarkupProcessor::StyledTextArray styledText02; MarkupProcessor::StyledTextArray styledText03; - MarkupProcessor::GetStyledTextArray( text01, styledText01 ); - MarkupProcessor::GetStyledTextArray( text02, styledText02 ); - MarkupProcessor::GetStyledTextArray( text03, styledText03 ); + MarkupProcessor::GetStyledTextArray( text01, styledText01, true ); + MarkupProcessor::GetStyledTextArray( text02, styledText02, true ); + MarkupProcessor::GetStyledTextArray( text03, styledText03, true ); TextViewProcessor::CreateTextInfo( styledText01, DEFAULT_LAYOUT_PARAMETERS, @@ -2669,8 +2680,8 @@ static void UtcDaliTextViewMergeLine02() std::string text02( "hello world" ); MarkupProcessor::StyledTextArray styledText01; MarkupProcessor::StyledTextArray styledText02; - MarkupProcessor::GetStyledTextArray( text01, styledText01 ); - MarkupProcessor::GetStyledTextArray( text02, styledText02 ); + MarkupProcessor::GetStyledTextArray( text01, styledText01, true ); + MarkupProcessor::GetStyledTextArray( text02, styledText02, true ); TextViewProcessor::CreateTextInfo( styledText01, DEFAULT_LAYOUT_PARAMETERS, diff --git a/automated-tests/dali-test-suite/text-view/utc-Dali-MarkupProcessor.cpp b/automated-tests/dali-test-suite/text-view/utc-Dali-MarkupProcessor.cpp index 7e4e7e9..74116f7 100644 --- a/automated-tests/dali-test-suite/text-view/utc-Dali-MarkupProcessor.cpp +++ b/automated-tests/dali-test-suite/text-view/utc-Dali-MarkupProcessor.cpp @@ -39,7 +39,7 @@ bool TestMarkupString( const std::string& input, const std::string& expectedResu { Toolkit::MarkupProcessor::StyledTextArray styledTextArray; - GetStyledTextArray( input, styledTextArray ); + GetStyledTextArray( input, styledTextArray, true ); GetMarkupString( styledTextArray, result ); return expectedResult == result; @@ -121,48 +121,48 @@ static void UtcDaliMarkupProcessor() std::string markupString; Toolkit::MarkupProcessor::StyledTextArray styledTextArray; - GetStyledTextArray( text1, styledTextArray ); + GetStyledTextArray( text1, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result1, markupString, TEST_LOCATION ); - GetStyledTextArray( text2, styledTextArray ); + GetStyledTextArray( text2, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result2, markupString, TEST_LOCATION ); - GetStyledTextArray( text3, styledTextArray ); + GetStyledTextArray( text3, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result3, markupString, TEST_LOCATION ); - GetStyledTextArray( text4, styledTextArray ); + GetStyledTextArray( text4, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result4, markupString, TEST_LOCATION ); - GetStyledTextArray( text5, styledTextArray ); + GetStyledTextArray( text5, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result5, markupString, TEST_LOCATION ); - GetStyledTextArray( text6, styledTextArray ); + GetStyledTextArray( text6, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result6, markupString, TEST_LOCATION ); - GetStyledTextArray( text7, styledTextArray ); + GetStyledTextArray( text7, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result7, markupString, TEST_LOCATION ); - GetStyledTextArray( text8, styledTextArray ); + GetStyledTextArray( text8, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result8, markupString, TEST_LOCATION ); - GetStyledTextArray( text9, styledTextArray ); + GetStyledTextArray( text9, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result9, markupString, TEST_LOCATION ); - GetStyledTextArray( text10, styledTextArray ); + GetStyledTextArray( text10, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result10, markupString, TEST_LOCATION ); - GetStyledTextArray( text11, styledTextArray ); + GetStyledTextArray( text11, styledTextArray, true ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result11, markupString, TEST_LOCATION ); @@ -181,7 +181,7 @@ static void UtcDaliMarkupProcessorSetTextStyle01() std::string markupString; Toolkit::MarkupProcessor::StyledTextArray styledTextArray; - GetStyledTextArray( text1, styledTextArray ); + GetStyledTextArray( text1, styledTextArray, true ); TextStyle style; style.SetItalics( true ); @@ -198,13 +198,13 @@ static void UtcDaliMarkupProcessorSetTextStyle01() DALI_TEST_EQUALS( result1, markupString, TEST_LOCATION ); - GetStyledTextArray( text1, styledTextArray ); + GetStyledTextArray( text1, styledTextArray, true ); SetTextStyleToRange( styledTextArray, style, TextStyle::ALL, 0, text1.size() - 1 ); GetMarkupString( styledTextArray, markupString ); DALI_TEST_EQUALS( result1, markupString, TEST_LOCATION ); - GetStyledTextArray( text1, styledTextArray ); + GetStyledTextArray( text1, styledTextArray, true ); SetTextStyleToRange( styledTextArray, style, TextStyle::ALL, 10, 19 ); GetMarkupString( styledTextArray, markupString ); diff --git a/automated-tests/dali-test-suite/text-view/utc-Dali-TextView.cpp b/automated-tests/dali-test-suite/text-view/utc-Dali-TextView.cpp index 49b6e85..d5e8f3b 100644 --- a/automated-tests/dali-test-suite/text-view/utc-Dali-TextView.cpp +++ b/automated-tests/dali-test-suite/text-view/utc-Dali-TextView.cpp @@ -165,7 +165,7 @@ static void UtcDaliTextViewNew() DALI_TEST_EQUALS( view1.GetText(), text, TEST_LOCATION ); MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( text, styledText ); + MarkupProcessor::GetStyledTextArray( text, styledText, true ); TextView view2 = TextView::New( styledText ); @@ -264,7 +264,7 @@ static void UtcDaliTextViewSetAndGetText() DALI_TEST_EQUALS( view.GetText(), str, TEST_LOCATION ); MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( str, styledText ); + MarkupProcessor::GetStyledTextArray( str, styledText, true ); view.SetText( styledText ); DALI_TEST_EQUALS( view.GetText(), str, TEST_LOCATION ); @@ -369,7 +369,7 @@ static void UtcDaliTextViewSetAndGetEllipsizeText() Toolkit::MarkupProcessor::StyledTextArray styledTextArray; - GetStyledTextArray( std::string( "..." ), styledTextArray ); + GetStyledTextArray( std::string( "..." ), styledTextArray, true ); textView.SetEllipsizeText( styledTextArray ); @@ -603,7 +603,7 @@ static void UtcDaliTextViewInsertRemoveText() std::string text("Hello "); MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( text, styledText ); + MarkupProcessor::GetStyledTextArray( text, styledText, true ); TextView view = TextView::New( "world!" ); diff --git a/capi/dali-toolkit/public-api/controls/text-input/text-input.h b/capi/dali-toolkit/public-api/controls/text-input/text-input.h index 6905ecd..68cde3d 100644 --- a/capi/dali-toolkit/public-api/controls/text-input/text-input.h +++ b/capi/dali-toolkit/public-api/controls/text-input/text-input.h @@ -524,6 +524,21 @@ public: */ Vector2 GetScrollPosition() const; + /** + * @brief Sets whether markup processing should be carried out. + * + * @param[in] enable whether markup processing is carried out or not. + */ + void SetMarkupProcessingEnabled( bool enable ); + + /** + * @brief Returns whether markup processing is enabled or not + * + * @return true is markup processing is enabled + */ + bool IsMarkupProcessingEnabled() const; + + public: /* Signals */ /// @brief Input Signal. diff --git a/capi/dali-toolkit/public-api/controls/text-view/text-view.h b/capi/dali-toolkit/public-api/controls/text-view/text-view.h index 30ae3bc..1147c42 100644 --- a/capi/dali-toolkit/public-api/controls/text-view/text-view.h +++ b/capi/dali-toolkit/public-api/controls/text-view/text-view.h @@ -580,6 +580,20 @@ public: bool IsSnapshotModeEnabled() const; /** + * @brief Sets whether markup processing should be carried out. + * + * @param[in] enable whether markup processing is carried out or not. + */ + void SetMarkupProcessingEnabled( bool enable ); + + /** + * @brief Retrieves whether text-view is processing markup text + * + * @return \e true if text-view markup processing is enabled, otherwhise it returns \e false. + */ + bool IsMarkupProcessingEnabled() const; + + /** * @brief Enables or disables the text scroll. * * When scroll is enabled, snapshot mode will be enabled automatically. Equally, if scroll is disabled diff --git a/capi/dali-toolkit/public-api/markup-processor/markup-processor.h b/capi/dali-toolkit/public-api/markup-processor/markup-processor.h index 705a79e..51240db 100644 --- a/capi/dali-toolkit/public-api/markup-processor/markup-processor.h +++ b/capi/dali-toolkit/public-api/markup-processor/markup-processor.h @@ -126,8 +126,9 @@ typedef std::vector StyledTextArray; * It transform any pair CR+LF new line characters into a single LF new line character. * @param [in] markupString A string with style. * @param [out] styledTextArray A text array split in characters, each one with its style. + * @param [in] scanForMarkup If true will check to see string contains markup, else assume not */ -void GetStyledTextArray( const std::string& markupString, StyledTextArray& styledTextArray ); +void GetStyledTextArray( const std::string& markupString, StyledTextArray& styledTextArray, bool scanForMarkup ); /** * @brief Creates a plain string from a text array (thus stripping the style meta). diff --git a/dali-toolkit/internal/controls/text-input/text-input-impl.cpp b/dali-toolkit/internal/controls/text-input/text-input-impl.cpp index 2801042..69daef1 100644 --- a/dali-toolkit/internal/controls/text-input/text-input-impl.cpp +++ b/dali-toolkit/internal/controls/text-input/text-input-impl.cpp @@ -326,7 +326,8 @@ TextInput::TextInput() mSelectTextOnCommit( false ), mUnderlinedPriorToPreEdit ( false ), mCommitByKeyInput( false ), - mPlaceHolderSet( false ) + mPlaceHolderSet( false ), + mMarkUpEnabled( false ) { // Updates the line height accordingly with the input style. UpdateLineHeight(); @@ -364,7 +365,7 @@ std::string TextInput::GetMarkupText() const void TextInput::SetPlaceholderText( const std::string& placeHolderText ) { // Get the placeholder styled text array from the markup string. - MarkupProcessor::GetStyledTextArray( placeHolderText, mStyledPlaceHolderText ); + MarkupProcessor::GetStyledTextArray( placeHolderText, mStyledPlaceHolderText, IsMarkupProcessingEnabled() ); if( mStyledText.empty() ) { @@ -406,7 +407,7 @@ void TextInput::SetText(const std::string& initialText) { DALI_LOG_INFO(gLogFilter, Debug::General, "SetText string[%s]\n", initialText.c_str() ); - GetStyledTextArray( initialText, mStyledText ); + GetStyledTextArray( initialText, mStyledText, IsMarkupProcessingEnabled() ); if( mStyledText.empty() ) { @@ -4859,6 +4860,16 @@ bool TextInput::IsSnapshotModeEnabled() const return snapshotEnabled; } +void TextInput::SetMarkupProcessingEnabled( bool enable ) +{ + mMarkUpEnabled = enable; +} + +bool TextInput::IsMarkupProcessingEnabled() const +{ + return mMarkUpEnabled; +} + void TextInput::SetScrollEnabled( bool enable ) { if( mDisplayedTextView ) diff --git a/dali-toolkit/internal/controls/text-input/text-input-impl.h b/dali-toolkit/internal/controls/text-input/text-input-impl.h index 3f59538..e3a7608 100644 --- a/dali-toolkit/internal/controls/text-input/text-input-impl.h +++ b/dali-toolkit/internal/controls/text-input/text-input-impl.h @@ -1279,6 +1279,20 @@ public: // Public to allow internal testing. Vector2 GetScrollPosition() const; /** + * @brief Sets whether markup processing should be carried out. + * + * @param[in] enable whether markup processing is carried out or not. + */ + void SetMarkupProcessingEnabled( bool enable ); + + /** + * @brief Returns whether markup processing is enabled or not + * + * @return true is markup processing is enabled + */ + bool IsMarkupProcessingEnabled() const; + + /** * Insert or replaces the given text in the given position. It checks if the text exceeds the maximum allowed number of characters * and if it fits in the text-input's boundaries. * @@ -1427,6 +1441,7 @@ private: bool mCommitByKeyInput:1; ///< Set if a commit is done by key input rather than automatically (usually when a space bar or enter is pressed). bool mPlaceHolderSet:1; ///< Whether the place holder text is set. + bool mMarkUpEnabled:1; ///< enable to scan for mark-up Toolkit::TextInput::InputSignalV2 mInputStartedSignalV2; ///< Signal emitted when input starts Toolkit::TextInput::InputSignalV2 mInputFinishedSignalV2; ///< Signal emitted when input ends diff --git a/dali-toolkit/internal/controls/text-view/text-view-impl.cpp b/dali-toolkit/internal/controls/text-view/text-view-impl.cpp index deda3d1..8082ce8 100644 --- a/dali-toolkit/internal/controls/text-view/text-view-impl.cpp +++ b/dali-toolkit/internal/controls/text-view/text-view-impl.cpp @@ -136,7 +136,7 @@ void TextView::SetText( const std::string& text ) { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( text, styledText ); + MarkupProcessor::GetStyledTextArray( text, styledText, IsMarkupProcessingEnabled() ); // Calls SetText() with the styled text array. SetText( styledText ); @@ -172,7 +172,7 @@ void TextView::InsertTextAt( std::size_t position, const std::string& text ) { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( text, styledText ); + MarkupProcessor::GetStyledTextArray( text, styledText, IsMarkupProcessingEnabled() ); // Calls InsertTextAt() with the styled text array. InsertTextAt( position, styledText ); @@ -203,7 +203,7 @@ void TextView::ReplaceTextFromTo( const std::size_t position, const std::size_t { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( text, styledText ); + MarkupProcessor::GetStyledTextArray( text, styledText, IsMarkupProcessingEnabled() ); // Calls ReplaceTextFromTo() with the styled text array. ReplaceTextFromTo( position, numberOfCharacters, styledText ); @@ -536,7 +536,7 @@ void TextView::SetEllipsizeText( const std::string& ellipsizeText ) { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; - MarkupProcessor::GetStyledTextArray( ellipsizeText, styledText ); + MarkupProcessor::GetStyledTextArray( ellipsizeText, styledText, IsMarkupProcessingEnabled() ); SetEllipsizeText( styledText ); } @@ -738,6 +738,16 @@ bool TextView::IsSnapshotModeEnabled() const return mVisualParameters.mSnapshotModeEnabled; } +void TextView::SetMarkupProcessingEnabled( bool enable ) +{ + mMarkUpEnabled = enable; +} + +bool TextView::IsMarkupProcessingEnabled() const +{ + return mMarkUpEnabled; +} + void TextView::SetScrollEnabled( const bool enable ) { if( enable != mVisualParameters.mScrollEnabled ) @@ -842,11 +852,12 @@ TextView::LayoutParameters::LayoutParameters() mVerticalAlignment( Toolkit::Alignment::VerticalCenter ), mLineJustification( Toolkit::TextView::Left ), mLineHeightOffset( 0.f ), - mEllipsizeText() + mEllipsizeText(), + mMarkUpEnabled( false ) { // Sets ellipsize text MarkupProcessor::StyledTextArray styledEllipsize; - MarkupProcessor::GetStyledTextArray( std::string( "..." ), mEllipsizeText ); + MarkupProcessor::GetStyledTextArray( std::string( "..." ), mEllipsizeText, false ); } TextView::LayoutParameters::LayoutParameters( const Toolkit::TextView::MultilinePolicy multilinePolicy, @@ -855,7 +866,8 @@ TextView::LayoutParameters::LayoutParameters( const Toolkit::TextView::Multiline const Toolkit::Alignment::Type alignmentType, const Toolkit::TextView::LineJustification lineJustification, const float lineHeightOffset, - const std::string& ellipsizeText ) + const std::string& ellipsizeText, + const bool markUpEnabled ) : mMultilinePolicy( multilinePolicy ), mWidthExceedPolicy( widthExceedPolicy ), mHeightExceedPolicy( heightExceedPolicy ), @@ -863,7 +875,8 @@ TextView::LayoutParameters::LayoutParameters( const Toolkit::TextView::Multiline mVerticalAlignment(), mLineJustification( lineJustification ), mLineHeightOffset( lineHeightOffset ), - mEllipsizeText() + mEllipsizeText(), + mMarkUpEnabled( markUpEnabled ) { // Sets alignment Toolkit::Alignment::Type horizontalAlignment( ( alignmentType & Toolkit::Alignment::HorizontalLeft ? Toolkit::Alignment::HorizontalLeft : @@ -878,7 +891,7 @@ TextView::LayoutParameters::LayoutParameters( const Toolkit::TextView::Multiline // Sets ellipsize text MarkupProcessor::StyledTextArray styledEllipsize; - MarkupProcessor::GetStyledTextArray( ellipsizeText, mEllipsizeText ); + MarkupProcessor::GetStyledTextArray( ellipsizeText, mEllipsizeText, mMarkUpEnabled ); } TextView::LayoutParameters::LayoutParameters( const TextView::LayoutParameters& layoutParameters ) @@ -889,7 +902,8 @@ TextView::LayoutParameters::LayoutParameters( const TextView::LayoutParameters& mVerticalAlignment( layoutParameters.mVerticalAlignment ), mLineJustification( layoutParameters.mLineJustification ), mLineHeightOffset( layoutParameters.mLineHeightOffset ), - mEllipsizeText( layoutParameters.mEllipsizeText ) + mEllipsizeText( layoutParameters.mEllipsizeText ), + mMarkUpEnabled( layoutParameters.mMarkUpEnabled ) { } @@ -903,6 +917,7 @@ TextView::LayoutParameters& TextView::LayoutParameters::operator=( const TextVie mLineJustification = layoutParameters.mLineJustification; mLineHeightOffset = layoutParameters.mLineHeightOffset; mEllipsizeText = layoutParameters.mEllipsizeText; + mMarkUpEnabled = layoutParameters.mMarkUpEnabled; return *this; } @@ -990,7 +1005,8 @@ TextView::TextView() static_cast( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ), Toolkit::TextView::Left, PointSize( 0.f ), - std::string( "..." ) ), + std::string( "..." ), + false ), mVisualParameters(), mRelayoutData(), mRelayoutOperations( NO_RELAYOUT ), @@ -1002,7 +1018,8 @@ TextView::TextView() mRenderTask(), mPanGestureDetector(), mLockPreviousSnapshotMode( false ), - mPreviousSnapshotModeEnabled( false ) + mPreviousSnapshotModeEnabled( false ), + mMarkUpEnabled( false ) { TextViewProcessor::CreateWordTextInfo( mLayoutParameters.mEllipsizeText, mRelayoutData.mTextLayoutInfo.mEllipsizeLayoutInfo ); diff --git a/dali-toolkit/internal/controls/text-view/text-view-impl.h b/dali-toolkit/internal/controls/text-view/text-view-impl.h index 2d35bcc..7493fcc 100644 --- a/dali-toolkit/internal/controls/text-view/text-view-impl.h +++ b/dali-toolkit/internal/controls/text-view/text-view-impl.h @@ -278,6 +278,20 @@ public: bool IsSnapshotModeEnabled() const; /** + * @brief Sets whether markup processing should be carried out. + * + * @param[in] enable whether markup processing is carried out or not. + */ + void SetMarkupProcessingEnabled( bool enable ); + + /** + * @brief Returns whether markup processing is enabled or not + * + * @return true is markup processing is enabled + */ + bool IsMarkupProcessingEnabled() const; + + /** * @copydoc SetScrollEnabled() */ void SetScrollEnabled( bool enable ); @@ -555,7 +569,8 @@ public: Toolkit::Alignment::Type alignment, Toolkit::TextView::LineJustification lineJustification, float lineHeightOffset, - const std::string& ellipsizeText ); + const std::string& ellipsizeText, + const bool markUpEnabled ); /** * Copy constructor @@ -575,7 +590,8 @@ public: Toolkit::Alignment::Type mVerticalAlignment; ///< Stores the vertical alignment for the whole text. Toolkit::TextView::LineJustification mLineJustification; ///< Stores the line justification. float mLineHeightOffset; ///< Line height offset to be addded to the font line height (measured in PointSize). - MarkupProcessor::StyledTextArray mEllipsizeText; ///< Stores the ellipsize text. + MarkupProcessor::StyledTextArray mEllipsizeText; ///< Stores the ellipsize text + bool mMarkUpEnabled:1; ///< Is markup string scanning enabled }; /** @@ -689,6 +705,7 @@ private: bool mLockPreviousSnapshotMode; ///< Whether previous stored snapshot mode should be modified. bool mPreviousSnapshotModeEnabled:1; ///< Stores the previous snapshot mode value. + bool mMarkUpEnabled:1; ///< enable to scan for mark-up Toolkit::TextView::ScrolledSignalV2 mScrolledSignalV2; ///< Signal emitted when text is scrolled. diff --git a/dali-toolkit/public-api/controls/text-input/text-input.cpp b/dali-toolkit/public-api/controls/text-input/text-input.cpp index 2914a1b..ff15d35 100644 --- a/dali-toolkit/public-api/controls/text-input/text-input.cpp +++ b/dali-toolkit/public-api/controls/text-input/text-input.cpp @@ -353,6 +353,17 @@ TextInput::InputTextExceedBoundariesSignalV2& TextInput::InputTextExceedBoundari return GetImpl(*this).InputTextExceedBoundariesSignal(); } +void TextInput::SetMarkupProcessingEnabled( bool enable ) +{ + return GetImpl( *this ).SetMarkupProcessingEnabled( enable ); +} + +bool TextInput::IsMarkupProcessingEnabled() const +{ + return GetImpl( *this ).IsMarkupProcessingEnabled(); +} + + TextInput::TextInput( Dali::Internal::CustomActor* internal ) : Control( internal ) { diff --git a/dali-toolkit/public-api/controls/text-view/text-view.cpp b/dali-toolkit/public-api/controls/text-view/text-view.cpp index f03d94a..f785e10 100644 --- a/dali-toolkit/public-api/controls/text-view/text-view.cpp +++ b/dali-toolkit/public-api/controls/text-view/text-view.cpp @@ -366,6 +366,16 @@ TextView::ScrolledSignalV2& TextView::ScrolledSignal() return GetImpl( *this ).ScrolledSignal(); } +void TextView::SetMarkupProcessingEnabled( bool enable ) +{ + return GetImpl( *this ).SetMarkupProcessingEnabled( enable ); +} + +bool TextView::IsMarkupProcessingEnabled() const +{ + return GetImpl( *this ).IsMarkupProcessingEnabled(); +} + TextView::TextView( Internal::TextView& implementation ) : Control( implementation ) { diff --git a/dali-toolkit/public-api/markup-processor/markup-processor.cpp b/dali-toolkit/public-api/markup-processor/markup-processor.cpp index 41a070e..ed4cc57 100644 --- a/dali-toolkit/public-api/markup-processor/markup-processor.cpp +++ b/dali-toolkit/public-api/markup-processor/markup-processor.cpp @@ -542,10 +542,52 @@ bool IsTag( std::string::const_iterator& it, const std::string::const_iterator& } // namespace -void GetStyledTextArray( const std::string& markupString, StyledTextArray& styledTextArray ) +static inline bool HasMarkup( const std::string& markupString ) +{ + // Reset counters + unsigned int lessThanCount = 0; + unsigned int greaterThanCount = 0; + + // Check to see if any markup command surrounds are of equal number and not zero + for ( std::string::const_iterator it = markupString.begin(); it != markupString.end(); ++it ) + { + if ( *it == LESS_THAN ) + { + lessThanCount++; + } + else + { + if ( *it == GREATER_THAN ) + { + greaterThanCount++; + } + else + { + if ( *it == BACK_SLASH ) + { + return true; + } + } + } + } + if ( !lessThanCount || !greaterThanCount || lessThanCount != greaterThanCount ) + { + return false; + } + return true; +} + +void GetStyledTextArray( const std::string& markupString, StyledTextArray& styledTextArray, bool scanForMarkup ) { styledTextArray.clear(); + // Scan markup ( if necessary ) to see if the string contains any change in style from default? + if ( !scanForMarkup || !HasMarkup( markupString ) ) + { + styledTextArray.push_back( StyledText( Text( markupString ), TextStyle() ) ); + return; + } + TextStyle defaultStyle; std::stack styleStack;