* Is not needed.
Change-Id: I19e208281bfe70dbf5abe7de37059b4d259ee0fb
Signed-off-by: Victor Cebollada <v.cebollada@samsung.com>
logicalModel->mBidirectionalParagraphInfo.Clear();
logicalModel->mCharacterDirections.Clear();
logicalModel->mBidirectionalLineInfo.Clear();
- logicalModel->mLogicalToVisualMap.Clear();
logicalModel->mVisualToLogicalMap.Clear();
visualModel->mGlyphs.Clear();
visualModel->mGlyphsToCharacters.Clear();
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 )
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 )
*( 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();
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 ) )
*
* @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 );
/**
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.
};
}
mLogicalModel->mBidirectionalLineInfo.Clear();
- mLogicalModel->mLogicalToVisualMap.Clear();
mLogicalModel->mVisualToLogicalMap.Clear();
}
}
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 );
// 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.