diff options
author | David Schulz <david.schulz@qt.io> | 2022-06-13 10:15:35 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2022-06-15 05:46:44 +0000 |
commit | 9b08363d82184b01a4e685cdb1c2d0ca636f6154 (patch) | |
tree | 3ad04f03c99b4ff27927dd2f15469fda35ace87c /src/plugins/coco | |
parent | 2b428d5de09659220b7b94d793fdce401ed9d2bf (diff) |
Coco: update annotation color on font settings change
Change-Id: I7812fccb047d696701d477ae85697facdb1c0361
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/coco')
-rw-r--r-- | src/plugins/coco/cocolanguageclient.cpp | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/src/plugins/coco/cocolanguageclient.cpp b/src/plugins/coco/cocolanguageclient.cpp index e360b6952f6..4006a14550c 100644 --- a/src/plugins/coco/cocolanguageclient.cpp +++ b/src/plugins/coco/cocolanguageclient.cpp @@ -154,15 +154,11 @@ class CocoTextMark : public TextEditor::TextMark public: CocoTextMark(const FilePath &fileName, const CocoDiagnostic &diag, const Id &clientId) : TextEditor::TextMark(fileName, diag.range().start().line() + 1, clientId) + , m_severity(diag.cocoSeverity()) { setLineAnnotation(diag.message()); setToolTip(diag.message()); - if (optional<CocoDiagnosticSeverity> severity = diag.cocoSeverity()) { - - const TextEditor::TextStyle style = styleForSeverity(*severity); - m_annotationColor = - TextEditor::TextEditorSettings::fontSettings().formatFor(style).foreground(); - } + updateAnnotationColor(); } QColor annotationColor() const override @@ -171,6 +167,16 @@ public: : TextEditor::TextMark::annotationColor(); } + void updateAnnotationColor() + { + if (m_severity) { + const TextEditor::TextStyle style = styleForSeverity(*m_severity); + m_annotationColor = + TextEditor::TextEditorSettings::fontSettings().formatFor(style).foreground(); + } + } + + optional<CocoDiagnosticSeverity> m_severity; QColor m_annotationColor; }; @@ -180,10 +186,22 @@ public: CocoDiagnosticManager(Client *client) : DiagnosticManager(client) { + connect(TextEditor::TextEditorSettings::instance(), + &TextEditor::TextEditorSettings::fontSettingsChanged, + this, + &CocoDiagnosticManager::fontSettingsChanged); setExtraSelectionsId("CocoExtraSelections"); } private: + void fontSettingsChanged(const TextEditor::FontSettings &fontSettings) + { + forAllMarks([](TextEditor::TextMark *mark){ + static_cast<CocoTextMark *>(mark)->updateAnnotationColor(); + mark->updateMarker(); + }); + } + TextEditor::TextMark *createTextMark(const FilePath &filePath, const Diagnostic &diagnostic, bool /*isProjectFile*/) const override |