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...
|
// think this approach would fit better. If there are other ideas...
|
||||||
QBrush bg = format.background();
|
QBrush bg = format.background();
|
||||||
if (bg.style() == Qt::NoBrush)
|
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()))
|
if (itemData->color().isValid() && isReadableOn(bg.color(), itemData->color()))
|
||||||
format.setForeground(itemData->color());
|
format.setForeground(itemData->color());
|
||||||
if (itemData->isItalicSpecified())
|
if (itemData->isItalicSpecified())
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ public:
|
|||||||
void applyFormatChanges(int from, int charsRemoved, int charsAdded);
|
void applyFormatChanges(int from, int charsRemoved, int charsAdded);
|
||||||
void updateFormats(const FontSettings &fontSettings);
|
void updateFormats(const FontSettings &fontSettings);
|
||||||
|
|
||||||
|
FontSettings fontSettings;
|
||||||
QVector<QTextCharFormat> formatChanges;
|
QVector<QTextCharFormat> formatChanges;
|
||||||
QTextBlock currentBlock;
|
QTextBlock currentBlock;
|
||||||
bool rehighlightPending = false;
|
bool rehighlightPending = false;
|
||||||
@@ -765,6 +766,12 @@ void SyntaxHighlighter::setFontSettings(const FontSettings &fontSettings)
|
|||||||
Q_D(SyntaxHighlighter);
|
Q_D(SyntaxHighlighter);
|
||||||
d->updateFormats(fontSettings);
|
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
|
The syntax highlighter is not anymore reacting to the text document if \a noAutmatic is
|
||||||
\c true.
|
\c true.
|
||||||
@@ -836,6 +843,7 @@ void SyntaxHighlighter::highlightBlock(const QString &text)
|
|||||||
|
|
||||||
void SyntaxHighlighterPrivate::updateFormats(const FontSettings &fontSettings)
|
void SyntaxHighlighterPrivate::updateFormats(const FontSettings &fontSettings)
|
||||||
{
|
{
|
||||||
|
this->fontSettings = fontSettings;
|
||||||
// C_TEXT is handled by text editor's foreground and background color,
|
// C_TEXT is handled by text editor's foreground and background color,
|
||||||
// so use empty format for that
|
// so use empty format for that
|
||||||
for (const auto &pair : qAsConst(formatCategories)) {
|
for (const auto &pair : qAsConst(formatCategories)) {
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ public:
|
|||||||
|
|
||||||
// Don't call in constructors of derived classes
|
// Don't call in constructors of derived classes
|
||||||
virtual void setFontSettings(const TextEditor::FontSettings &fontSettings);
|
virtual void setFontSettings(const TextEditor::FontSettings &fontSettings);
|
||||||
|
TextEditor::FontSettings fontSettings() const;
|
||||||
|
|
||||||
void setNoAutomaticHighlighting(bool noAutomatic);
|
void setNoAutomaticHighlighting(bool noAutomatic);
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ public:
|
|||||||
|
|
||||||
void BaseAnnotationHighlighterPrivate::updateOtherFormats()
|
void BaseAnnotationHighlighterPrivate::updateOtherFormats()
|
||||||
{
|
{
|
||||||
m_background = TextEditor::TextEditorSettings::fontSettings()
|
m_background = q->fontSettings()
|
||||||
.toTextCharFormat(TextEditor::C_TEXT)
|
.toTextCharFormat(TextEditor::C_TEXT)
|
||||||
.brushProperty(QTextFormat::BackgroundBrush)
|
.brushProperty(QTextFormat::BackgroundBrush)
|
||||||
.color();
|
.color();
|
||||||
|
|||||||
Reference in New Issue
Block a user