From 150d29a8fddc942335084b501c6a45857bcee93d Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 19 Aug 2020 06:52:24 +0200 Subject: TextEditor: Fix remembering highlight definition Amends 6989c9bbeae1403b8c1733bdae784841369cb8ce Since the change above the filename is checked before the mimetype, so we have to save it in the same order. Fixes: QTCREATORBUG-24505 Change-Id: Ib974dc0f69ca56cfd6ee9e34bec238e62f800598 Reviewed-by: Eike Ziller --- src/plugins/texteditor/highlighter.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/plugins/texteditor/highlighter.cpp b/src/plugins/texteditor/highlighter.cpp index a81d66a3af..c0fb1a5bc1 100644 --- a/src/plugins/texteditor/highlighter.cpp +++ b/src/plugins/texteditor/highlighter.cpp @@ -186,21 +186,24 @@ void Highlighter::rememberDefinitionForDocument(const Highlighter::Definition &d const QString &path = document->filePath().toFileInfo().canonicalFilePath(); QSettings *settings = Core::ICore::settings(); settings->beginGroup(Constants::HIGHLIGHTER_SETTINGS_CATEGORY); - if (!mimeType.isEmpty()) { + const Definitions &fileNameDefinitions = definitionsForFileName(document->filePath()); + if (fileNameDefinitions.contains(definition)) { + if (!fileExtension.isEmpty()) { + const QString id(kDefinitionForExtension); + QMap map = settings->value(id).toMap(); + map.insert(fileExtension, definition.name()); + settings->setValue(id, map); + } else if (!path.isEmpty()) { + const QString id(kDefinitionForFilePath); + QMap map = settings->value(id).toMap(); + map.insert(document->filePath().toFileInfo().absoluteFilePath(), definition.name()); + settings->setValue(id, map); + } + } else if (!mimeType.isEmpty()) { const QString id(kDefinitionForMimeType); QMap map = settings->value(id).toMap(); map.insert(mimeType, definition.name()); settings->setValue(id, map); - } else if (!fileExtension.isEmpty()) { - const QString id(kDefinitionForExtension); - QMap map = settings->value(id).toMap(); - map.insert(fileExtension, definition.name()); - settings->setValue(id, map); - } else if (!path.isEmpty()) { - const QString id(kDefinitionForFilePath); - QMap map = settings->value(id).toMap(); - map.insert(document->filePath().toFileInfo().absoluteFilePath(), definition.name()); - settings->setValue(id, map); } settings->endGroup(); } -- cgit v1.2.3