TextModel - Remove the logical to visual conversion table. 99/67099/3
authorVictor Cebollada <v.cebollada@samsung.com>
Mon, 25 Apr 2016 07:38:52 +0000 (08:38 +0100)
committerVictor Cebollada <v.cebollada@samsung.com>
Mon, 25 Apr 2016 09:47:01 +0000 (10:47 +0100)
* Is not needed.

Change-Id: I19e208281bfe70dbf5abe7de37059b4d259ee0fb
Signed-off-by: Victor Cebollada <v.cebollada@samsung.com>
automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/toolkit-text-model.cpp
dali-toolkit/internal/text/logical-model-impl.cpp
dali-toolkit/internal/text/logical-model-impl.h
dali-toolkit/internal/text/text-controller-impl.cpp
dali-toolkit/internal/text/text-controller.cpp

index 4bba1f9..9f39bd2 100644 (file)
@@ -81,7 +81,6 @@ void ClearModelData( CharacterIndex characterIndex,
   logicalModel->mBidirectionalParagraphInfo.Clear();
   logicalModel->mCharacterDirections.Clear();
   logicalModel->mBidirectionalLineInfo.Clear();
-  logicalModel->mLogicalToVisualMap.Clear();
   logicalModel->mVisualToLogicalMap.Clear();
   visualModel->mGlyphs.Clear();
   visualModel->mGlyphsToCharacters.Clear();
@@ -323,9 +322,7 @@ void CreateTextModel( const std::string& text,
     layoutParameters.numberOfBidirectionalInfoRuns = bidirectionalLineInfo.Count();
 
     // Set the bidirectional info into the model.
-    logicalModel->SetVisualToLogicalMap( layoutParameters.lineBidirectionalInfoRunsBuffer,
-                                         layoutParameters.numberOfBidirectionalInfoRuns,
-                                         0u,
+    logicalModel->SetVisualToLogicalMap( 0u,
                                          numberOfCharacters );
 
     if( options.reorder )
index c61e004..b64ae2b 100644 (file)
@@ -78,21 +78,15 @@ CharacterDirection LogicalModel::GetCharacterDirection( CharacterIndex character
   return *( mCharacterDirections.Begin() + characterIndex );
 }
 
-void LogicalModel::SetVisualToLogicalMap( const BidirectionalLineInfoRun* const bidirectionalInfo,
-                                          Length numberOfRuns,
-                                          CharacterIndex startIndex,
+void LogicalModel::SetVisualToLogicalMap( CharacterIndex startIndex,
                                           Length numberOfCharacters )
 {
   mVisualToLogicalMap.Resize( numberOfCharacters );
-  mLogicalToVisualMap.Resize( numberOfCharacters );
-
-  const Length numberOfCharactersPlus = numberOfCharacters + 1u;
-  mVisualToLogicalCursorMap.Resize( numberOfCharactersPlus );
 
   CharacterIndex* modelVisualToLogicalMapBuffer = mVisualToLogicalMap.Begin();
-  CharacterIndex* modelLogicalToVisualMapBuffer = mLogicalToVisualMap.Begin();
 
-  CharacterIndex* modelVisualToLogicalCursorMap = mVisualToLogicalCursorMap.Begin();
+  const BidirectionalLineInfoRun* const bidirectionalInfo = mBidirectionalLineInfo.Begin();
+  const Length numberOfRuns = mBidirectionalLineInfo.Count();
 
   CharacterIndex lastIndex = startIndex;
   for( unsigned int bidiIndex = 0u; bidiIndex < numberOfRuns; ++bidiIndex )
@@ -129,13 +123,11 @@ void LogicalModel::SetVisualToLogicalMap( const BidirectionalLineInfoRun* const
     *( modelVisualToLogicalMapBuffer + lastIndex ) = lastIndex;
   }
 
-  // Sets the logical to visual conversion map.
-  for( CharacterIndex index = startIndex; index < numberOfCharacters; ++index )
-  {
-    *( modelLogicalToVisualMapBuffer + *( modelVisualToLogicalMapBuffer + index ) ) = index;
-  }
-
   // Sets the visual to logical conversion map for cursor positions.
+  const Length numberOfCharactersPlusOne = numberOfCharacters + 1u;
+  mVisualToLogicalCursorMap.Resize( numberOfCharactersPlusOne );
+
+  CharacterIndex* modelVisualToLogicalCursorMap = mVisualToLogicalCursorMap.Begin();
 
   const Length numberOfBidirectionalParagraphs = mBidirectionalParagraphInfo.Count();
   BidirectionalParagraphInfoRun* bidirectionalParagraphInfoBuffer = mBidirectionalParagraphInfo.Begin();
@@ -145,7 +137,7 @@ void LogicalModel::SetVisualToLogicalMap( const BidirectionalLineInfoRun* const
 
   Length bidirectionalParagraphIndex = 0u;
   bool isRightToLeftParagraph = false;
-  for( CharacterIndex index = startIndex; index < numberOfCharactersPlus; ++index )
+  for( CharacterIndex index = startIndex; index < numberOfCharactersPlusOne; ++index )
   {
     if( bidirectionalParagraph &&
         ( bidirectionalParagraph->characterRun.characterIndex == index ) )
index e41f0fa..089af8e 100644 (file)
@@ -95,14 +95,10 @@ public:
    *
    * @note If the number of runs is zero the bidirectional info buffer is cleared.
    *
-   * @param[in] bidirectionalInfo Pointer to a buffer with all the bidirectional info runs.
-   * @param[in] numberOfRuns The number of bidirectional info runs.
    * @param[in] startIndex Character index from where the conversion tables are set.
    * @param[in] numberOfCharacters The number of characters.
    */
-  void SetVisualToLogicalMap( const BidirectionalLineInfoRun* const bidirectionalInfo,
-                              Length numberOfRuns,
-                              CharacterIndex startIndex,
+  void SetVisualToLogicalMap( CharacterIndex startIndex,
                               Length numberOfCharacters );
 
   /**
@@ -194,7 +190,6 @@ public:
   Vector<BidirectionalParagraphInfoRun> mBidirectionalParagraphInfo;
   Vector<CharacterDirection>            mCharacterDirections;        ///< For each character, whether is right to left. ( @e flase is left to right, @e true right to left ).
   Vector<BidirectionalLineInfoRun>      mBidirectionalLineInfo;
-  Vector<CharacterIndex>                mLogicalToVisualMap;         ///< Bidirectional logical to visual conversion table.
   Vector<CharacterIndex>                mVisualToLogicalMap;         ///< Bidirectional visual to logical conversion table.
   Vector<CharacterIndex>                mVisualToLogicalCursorMap;   ///< Bidirectional visual to logical cursor conversion table.
 };
index c37c7be..56820ae 100644 (file)
@@ -389,7 +389,6 @@ void Controller::Impl::ClearFullModelData( OperationsMask operations )
       }
       mLogicalModel->mBidirectionalLineInfo.Clear();
 
-      mLogicalModel->mLogicalToVisualMap.Clear();
       mLogicalModel->mVisualToLogicalMap.Clear();
     }
   }
@@ -501,11 +500,6 @@ void Controller::Impl::ClearCharacterModelData( CharacterIndex startIndex, Chara
       mLogicalModel->mBidirectionalLineInfo.Erase( bidirectionalLineInfoBuffer + startRemoveIndex,
                                                    bidirectionalLineInfoBuffer + endRemoveIndex );
 
-      // Clear the logical to visual and the visual to logical conversion tables.
-      CharacterIndex* logicalToVisualMapBuffer = mLogicalModel->mLogicalToVisualMap.Begin();
-      mLogicalModel->mLogicalToVisualMap.Erase( logicalToVisualMapBuffer + startIndex,
-                                                logicalToVisualMapBuffer + endIndexPlusOne );
-
       CharacterIndex* visualToLogicalMapBuffer = mLogicalModel->mVisualToLogicalMap.Begin();
       mLogicalModel->mVisualToLogicalMap.Erase( visualToLogicalMapBuffer + startIndex,
                                                 visualToLogicalMapBuffer + endIndexPlusOne );
index c92aab8..37110dc 100644 (file)
@@ -1531,9 +1531,7 @@ bool Controller::DoRelayout( const Size& size,
           //       It's better to refactor this. Store this table per line and don't update the indices.
           //       For the cursor position probably is better to use the function instead creating a table.
           // Set the bidirectional info into the model.
-          mImpl->mLogicalModel->SetVisualToLogicalMap( layoutParameters.lineBidirectionalInfoRunsBuffer,
-                                                       layoutParameters.numberOfBidirectionalInfoRuns,
-                                                       0u,
+          mImpl->mLogicalModel->SetVisualToLogicalMap( 0u,
                                                        mImpl->mLogicalModel->mText.Count() );
 
           // Re-layout the text. Reorder those lines with right to left characters.