aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coco
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2022-06-13 10:15:35 +0200
committerDavid Schulz <david.schulz@qt.io>2022-06-15 05:46:44 +0000
commit9b08363d82184b01a4e685cdb1c2d0ca636f6154 (patch)
tree3ad04f03c99b4ff27927dd2f15469fda35ace87c /src/plugins/coco
parent2b428d5de09659220b7b94d793fdce401ed9d2bf (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.cpp30
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