Compare the char formats.

This commit is contained in:
Roberto Raggi
2010-08-03 18:58:47 +02:00
parent 7028b951f2
commit 7ff7878ca4

View File

@@ -687,6 +687,21 @@ QTextBlock SyntaxHighlighter::currentBlock() const
return d->currentBlock;
}
static bool isSimilarCharFormat(const QTextCharFormat &format, const QTextCharFormat &other)
{
if (format.foreground() != other.foreground())
return false;
else if (format.background() != other.background())
return false;
else if (format.underlineStyle() != other.underlineStyle())
return false;
else if (format.underlineColor() != other.underlineColor())
return false;
else if (format.font() != other.font())
return false;
return true;
}
void SyntaxHighlighter::setExtraAdditionalFormats(const QTextBlock& block,
const QList<QTextLayout::FormatRange> &formats)
{
@@ -712,7 +727,8 @@ void SyntaxHighlighter::setExtraAdditionalFormats(const QTextBlock& block,
if (it->format.property(QTextFormat::UserProperty).toBool()) {
if (skip < formats.size()
&& it->start == formats.at(skip).start
&& it->length == formats.at(skip).length) {
&& it->length == formats.at(skip).length
&& isSimilarCharFormat(it->format, formats.at(skip).format)) {
++skip;
++it;
} else {