forked from qt-creator/qt-creator
Compare the char formats.
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user