From 2e384d9c125864b6893464e445041591dd56d9aa Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Mon, 24 Apr 2023 16:31:22 +0200 Subject: [PATCH 1/2] Utils: Fix line ending conversion in FileReader FilePath::fileContents always uses "binary" mode when reading files. FileReader::fetch previously used QFile with QIODevice::Text mode to read (local) files, which converts \r\n to \n. This patch re-introduces the conversion. Fixes: QTCREATORBUG-29040 Change-Id: I0a16b056bea456512e6526497b725c73b0a1bd11 Reviewed-by: Christian Kandeler --- src/libs/utils/fileutils.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp index 69c31729149..1f6d89c43ae 100644 --- a/src/libs/utils/fileutils.cpp +++ b/src/libs/utils/fileutils.cpp @@ -62,6 +62,10 @@ bool FileReader::fetch(const FilePath &filePath, QIODevice::OpenMode mode) return false; } m_data = *contents; + + if (mode & QIODevice::Text) + m_data = m_data.replace("\r\n", "\n"); + return true; } From fa5c352668b497e626fe74c50e33250404d06960 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 25 Apr 2023 13:03:06 +0200 Subject: [PATCH 2/2] CMakePM: Fix boolean cacheVariables parsing Fixes: QTCREATORBUG-29078 Change-Id: I652343d6d688e36b6d5ecc23e91243b4cecbb87d Reviewed-by: Alessandro Portale --- .../cmakeprojectmanager/presetsparser.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/presetsparser.cpp b/src/plugins/cmakeprojectmanager/presetsparser.cpp index eed174e2b42..ad4ab07fcb5 100644 --- a/src/plugins/cmakeprojectmanager/presetsparser.cpp +++ b/src/plugins/cmakeprojectmanager/presetsparser.cpp @@ -215,12 +215,24 @@ bool parseConfigurePresets(const QJsonValue &jsonValue, item.key = cacheKey.toUtf8(); item.type = CMakeConfigItem::typeStringToType( cacheVariableObj.value("type").toString().toUtf8()); - item.value = cacheVariableObj.value("type").toString().toUtf8(); + item.value = cacheVariableObj.value("value").toString().toUtf8(); preset.cacheVariables.value() << item; } else { - preset.cacheVariables.value() - << CMakeConfigItem(cacheKey.toUtf8(), cacheValue.toString().toUtf8()); + if (cacheValue.isBool()) { + preset.cacheVariables.value() + << CMakeConfigItem(cacheKey.toUtf8(), + CMakeConfigItem::BOOL, + cacheValue.toBool() ? "ON" : "OFF"); + } else if (CMakeConfigItem::toBool(cacheValue.toString()).has_value()) { + preset.cacheVariables.value() + << CMakeConfigItem(cacheKey.toUtf8(), + CMakeConfigItem::BOOL, + cacheValue.toString().toUtf8()); + } else { + preset.cacheVariables.value() + << CMakeConfigItem(cacheKey.toUtf8(), cacheValue.toString().toUtf8()); + } } }