From f4a45884ca722e346d16eae3a6b10213ba2cf487 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 6 Feb 2019 10:43:34 +0100 Subject: [PATCH] TextEditor: add convenient definition for document function Change-Id: I8bbaec71a4682e36d3919924932b410e2e9d74a9 Reviewed-by: Christian Stenger --- src/plugins/texteditor/highlighter.cpp | 12 ++++++++++++ src/plugins/texteditor/highlighter.h | 2 ++ src/plugins/texteditor/texteditor.cpp | 13 ++++--------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/plugins/texteditor/highlighter.cpp b/src/plugins/texteditor/highlighter.cpp index 170ec12bc8b..2471fd17a14 100644 --- a/src/plugins/texteditor/highlighter.cpp +++ b/src/plugins/texteditor/highlighter.cpp @@ -32,6 +32,7 @@ #include #include +#include #include #include @@ -99,6 +100,17 @@ Highlighter::Highlighter() &categoryForTextStyle); } +KSyntaxHighlighting::Definition Highlighter::definitionForDocument(const TextDocument *document) +{ + const Utils::MimeType mimeType = Utils::mimeTypeForName(document->mimeType()); + KSyntaxHighlighting::Definition definition; + if (mimeType.isValid()) + definition = Highlighter::definitionForMimeType(mimeType.name()); + if (!definition.isValid()) + definition = Highlighter::definitionForFileName(document->filePath().fileName()); + return definition; +} + KSyntaxHighlighting::Definition Highlighter::definitionForMimeType(const QString &mimeType) { return highlightRepository()->definitionForMimeType(mimeType); diff --git a/src/plugins/texteditor/highlighter.h b/src/plugins/texteditor/highlighter.h index 90ab31332ac..f29da279e31 100644 --- a/src/plugins/texteditor/highlighter.h +++ b/src/plugins/texteditor/highlighter.h @@ -34,12 +34,14 @@ namespace TextEditor { class FontSettings; +class TextDocument; class Highlighter : public SyntaxHighlighter, public KSyntaxHighlighting::AbstractHighlighter { public: Highlighter(); + static KSyntaxHighlighting::Definition definitionForDocument(const TextDocument *document); static KSyntaxHighlighting::Definition definitionForMimeType(const QString &mimeType); static KSyntaxHighlighting::Definition definitionForFileName(const QString &fileName); diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 7a301e38998..8e5aaacbad3 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -8499,14 +8499,8 @@ void TextEditorWidget::configureGenericHighlighter() setCodeFoldingSupported(false); - const QString type = textDocument()->mimeType(); - const MimeType mimeType = Utils::mimeTypeForName(type); - const QString fileName = textDocument()->filePath().fileName(); - KSyntaxHighlighting::Definition definition; - if (mimeType.isValid()) - definition = Highlighter::definitionForMimeType(mimeType.name()); - if (!definition.isValid()) - definition = Highlighter::definitionForFileName(fileName); + const KSyntaxHighlighting::Definition definition = + Highlighter::definitionForDocument(textDocument()); if (definition.isValid()) { highlighter->setDefinition(definition); @@ -8518,7 +8512,8 @@ void TextEditorWidget::configureGenericHighlighter() } d->updateSyntaxInfoBar(!definition.isValid() - && !TextEditorSettings::highlighterSettings().isIgnoredFilePattern(fileName)); + && !TextEditorSettings::highlighterSettings().isIgnoredFilePattern( + textDocument()->filePath().fileName())); textDocument()->setFontSettings(TextEditorSettings::fontSettings()); }