diff options
| author | Chris Loer <chris.loer@gmail.com> | 2016-12-14 10:18:37 -0800 |
|---|---|---|
| committer | Chris Loer <chris.loer@gmail.com> | 2017-01-05 10:22:53 -0800 |
| commit | f68449aeb8a4d874c15958edfcb02bc1ad7015a2 (patch) | |
| tree | 552bb306ea0dbbe4c97bff1d3915d06748cda9ad /platform/qt | |
| parent | f55a6e2b7a648b61eca8da2cb4916d96ecc25ef4 (diff) | |
| download | qtlocation-mapboxgl-f68449aeb8a4d874c15958edfcb02bc1ad7015a2.tar.gz | |
Cleaning up line breaking code.
* Don't include trailing spacing (as opposed to whitespace) in lineLength
* Modify BiDi interface to require initial bidi layout and linebreaking to happen in one call.
* Code style changes suggested by @kkaefer
Diffstat (limited to 'platform/qt')
| -rw-r--r-- | platform/qt/src/bidi.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/platform/qt/src/bidi.cpp b/platform/qt/src/bidi.cpp index 184d1daf9a..efb6932252 100644 --- a/platform/qt/src/bidi.cpp +++ b/platform/qt/src/bidi.cpp @@ -16,15 +16,12 @@ std::u16string applyArabicShaping(const std::u16string& input) { return utf16string.toStdU16String(); } -ProcessedBiDiText::ProcessedBiDiText(BiDi& p_bidi) : bidi(p_bidi) { -} - -void ProcessedBiDiText::mergeParagraphLineBreaks(std::set<int32_t>& lineBreakPoints) { +void BiDi::mergeParagraphLineBreaks(std::set<int32_t>& lineBreakPoints) { lineBreakPoints.insert(bidi.impl->string.length()); } std::vector<std::u16string> -ProcessedBiDiText::applyLineBreaking(std::set<int32_t> lineBreakPoints) { +BiDi::applyLineBreaking(std::set<int32_t> lineBreakPoints) { mergeParagraphLineBreaks(lineBreakPoints); std::vector<std::u16string> transformedLines; @@ -44,9 +41,9 @@ BiDi::BiDi() : impl(std::make_unique<BiDiImpl>()) BiDi::~BiDi() { } -ProcessedBiDiText BiDi::processText(const std::u16string& input) { +std::vector<std::u16string> BiDi::processText(const std::u16string& input, std::set<int32_t> lineBreakPoints) { impl->string = QString::fromStdU16String(input); - return ProcessedBiDiText(*this); + return applyLineBreaking(lineBreakPoints); } std::u16string BiDi::getLine(int32_t start, int32_t end) { |
