1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

Merge pull request #4239

ezavod (1):
      fix: iterate all blocks
This commit is contained in:
Diadlo 2017-03-12 14:53:46 +03:00
commit d1ec8cc989
No known key found for this signature in database
GPG Key ID: 5AF9F2E29107C727

View File

@ -337,32 +337,39 @@ QString Text::extractSanitizedText(int from, int to) const
return "";
QString txt;
QTextBlock block = doc->firstBlock();
for (QTextBlock::Iterator itr = block.begin(); itr != block.end(); ++itr) {
int pos =
itr.fragment()
.position(); // fragment position -> position of the first character in the fragment
QTextBlock begin = doc->findBlock(from);
QTextBlock end = doc->findBlock(to);
for (QTextBlock block = begin; block != end.next() && block.isValid(); block = block.next()) {
for (QTextBlock::Iterator itr = block.begin(); itr != block.end(); ++itr) {
int pos =
itr.fragment()
.position(); // fragment position -> position of the first character in the fragment
if (itr.fragment().charFormat().isImageFormat()) {
QTextImageFormat imgFmt = itr.fragment().charFormat().toImageFormat();
QString key = imgFmt.name(); // img key (eg. key::D for :D)
QString rune = key.mid(4);
if (itr.fragment().charFormat().isImageFormat()) {
QTextImageFormat imgFmt = itr.fragment().charFormat().toImageFormat();
QString key = imgFmt.name(); // img key (eg. key::D for :D)
QString rune = key.mid(4);
if (pos >= from && pos < to) {
txt += rune;
++pos;
}
} else {
for (QChar c : itr.fragment().text()) {
if (pos >= from && pos < to)
txt += c;
if (pos >= from && pos < to) {
txt += rune;
++pos;
}
} else {
for (QChar c : itr.fragment().text()) {
if (pos >= from && pos < to)
txt += c;
++pos;
++pos;
}
}
}
txt += '\n';
}
txt.chop(1);
return txt;
}