mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
fix: iterate all blocks
refactor: block iteration loop refactor: replaced checks with chop()
This commit is contained in:
parent
aabf34ebad
commit
7a5c5a86fd
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user