forked from qt-creator/qt-creator
Avoid accessing global font settings from syntax highlighters
Change-Id: Ic015f7449351166ec41a7745355ddc63504f6442 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -569,7 +569,7 @@ void Highlighter::applyFormat(int offset,
|
||||
// think this approach would fit better. If there are other ideas...
|
||||
QBrush bg = format.background();
|
||||
if (bg.style() == Qt::NoBrush)
|
||||
bg = TextEditorSettings::fontSettings().toTextCharFormat(C_TEXT).background();
|
||||
bg = fontSettings().toTextCharFormat(C_TEXT).background();
|
||||
if (itemData->color().isValid() && isReadableOn(bg.color(), itemData->color()))
|
||||
format.setForeground(itemData->color());
|
||||
if (itemData->isItalicSpecified())
|
||||
|
||||
@@ -66,6 +66,7 @@ public:
|
||||
void applyFormatChanges(int from, int charsRemoved, int charsAdded);
|
||||
void updateFormats(const FontSettings &fontSettings);
|
||||
|
||||
FontSettings fontSettings;
|
||||
QVector<QTextCharFormat> formatChanges;
|
||||
QTextBlock currentBlock;
|
||||
bool rehighlightPending = false;
|
||||
@@ -765,6 +766,12 @@ void SyntaxHighlighter::setFontSettings(const FontSettings &fontSettings)
|
||||
Q_D(SyntaxHighlighter);
|
||||
d->updateFormats(fontSettings);
|
||||
}
|
||||
|
||||
FontSettings SyntaxHighlighter::fontSettings() const
|
||||
{
|
||||
Q_D(const SyntaxHighlighter);
|
||||
return d->fontSettings;
|
||||
}
|
||||
/*!
|
||||
The syntax highlighter is not anymore reacting to the text document if \a noAutmatic is
|
||||
\c true.
|
||||
@@ -836,6 +843,7 @@ void SyntaxHighlighter::highlightBlock(const QString &text)
|
||||
|
||||
void SyntaxHighlighterPrivate::updateFormats(const FontSettings &fontSettings)
|
||||
{
|
||||
this->fontSettings = fontSettings;
|
||||
// C_TEXT is handled by text editor's foreground and background color,
|
||||
// so use empty format for that
|
||||
for (const auto &pair : qAsConst(formatCategories)) {
|
||||
|
||||
@@ -69,6 +69,7 @@ public:
|
||||
|
||||
// Don't call in constructors of derived classes
|
||||
virtual void setFontSettings(const TextEditor::FontSettings &fontSettings);
|
||||
TextEditor::FontSettings fontSettings() const;
|
||||
|
||||
void setNoAutomaticHighlighting(bool noAutomatic);
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
|
||||
void BaseAnnotationHighlighterPrivate::updateOtherFormats()
|
||||
{
|
||||
m_background = TextEditor::TextEditorSettings::fontSettings()
|
||||
m_background = q->fontSettings()
|
||||
.toTextCharFormat(TextEditor::C_TEXT)
|
||||
.brushProperty(QTextFormat::BackgroundBrush)
|
||||
.color();
|
||||
|
||||
Reference in New Issue
Block a user