diff options
author | Chris Loer <chris.loer@gmail.com> | 2017-01-05 08:47:02 -0800 |
---|---|---|
committer | Chris Loer <chris.loer@gmail.com> | 2017-01-05 10:22:53 -0800 |
commit | 12a9932ebcbefd6da74de8c4b3d1e07bb0016e2b (patch) | |
tree | 66f40c182319c36d249d414e6def26476557f905 /platform/qt/src/bidi.cpp | |
parent | 35ccb01dbdf95595591c7b2bf3c4a0882a1b9be7 (diff) | |
download | qtlocation-mapboxgl-12a9932ebcbefd6da74de8c4b3d1e07bb0016e2b.tar.gz |
Port raggedness-minimizing line breaking from gl-js.
Diffstat (limited to 'platform/qt/src/bidi.cpp')
-rw-r--r-- | platform/qt/src/bidi.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/platform/qt/src/bidi.cpp b/platform/qt/src/bidi.cpp index efb6932252..0eaeb3f2f4 100644 --- a/platform/qt/src/bidi.cpp +++ b/platform/qt/src/bidi.cpp @@ -16,17 +16,17 @@ std::u16string applyArabicShaping(const std::u16string& input) { return utf16string.toStdU16String(); } -void BiDi::mergeParagraphLineBreaks(std::set<int32_t>& lineBreakPoints) { - lineBreakPoints.insert(bidi.impl->string.length()); +void BiDi::mergeParagraphLineBreaks(std::set<std::size_t>& lineBreakPoints) { + lineBreakPoints.insert(static_cast<std::size_t>(bidi.impl->string.length())); } std::vector<std::u16string> -BiDi::applyLineBreaking(std::set<int32_t> lineBreakPoints) { +BiDi::applyLineBreaking(std::set<std::size_t> lineBreakPoints) { mergeParagraphLineBreaks(lineBreakPoints); std::vector<std::u16string> transformedLines; - int32_t start = 0; - for (int32_t lineBreakPoint : lineBreakPoints) { + std::size_t start = 0; + for (std::size_t lineBreakPoint : lineBreakPoints) { transformedLines.push_back(bidi.getLine(start, lineBreakPoint)); start = lineBreakPoint; } @@ -38,16 +38,15 @@ BiDi::BiDi() : impl(std::make_unique<BiDiImpl>()) { } -BiDi::~BiDi() { -} +BiDi::~BiDi() = default; -std::vector<std::u16string> BiDi::processText(const std::u16string& input, std::set<int32_t> lineBreakPoints) { +std::vector<std::u16string> BiDi::processText(const std::u16string& input, std::set<std::size_t> lineBreakPoints) { impl->string = QString::fromStdU16String(input); return applyLineBreaking(lineBreakPoints); } -std::u16string BiDi::getLine(int32_t start, int32_t end) { - return impl->string.mid(start, end - start).toStdU16String(); +std::u16string BiDi::getLine(std::size_t start, std::size_t end) { + return impl->string.mid(static_cast<int32_t>(start), static_cast<int32_t>(end - start)).toStdU16String(); } } // end namespace mbgl |