From 4960b2ac2a0e554cb7a0f3ffb08e3fd29e58e092 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Mon, 17 Feb 2020 13:51:33 +0100 Subject: [PATCH] Android: Use FilePath::fromUserInput for user input ... or when reading non-Qt config files. FilePath::fromString would make FilePath keep native dir delimiters, which would cause wrong negatives for example in FilePath::isChildOf(). This change here fixes that AndroidToolChain:::isValid incorrectly returned true. Change-Id: I28b321fe3c4064f61b78dc7fc36b8af3d18b806c Reviewed-by: Assam Boudjelthia Reviewed-by: hjk --- src/plugins/android/androidsettingswidget.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp index d34f3c4ab9c..bd7b1add50f 100644 --- a/src/plugins/android/androidsettingswidget.cpp +++ b/src/plugins/android/androidsettingswidget.cpp @@ -538,7 +538,7 @@ Utils::FilePath AndroidSettingsWidget::findJdkInCommonPaths() { QString jdkFromEnvVar = QString::fromLocal8Bit(getenv("JAVA_HOME")); if (!jdkFromEnvVar.isEmpty()) - return Utils::FilePath::fromString(jdkFromEnvVar); + return Utils::FilePath::fromUserInput(jdkFromEnvVar); if (Utils::HostOsInfo::isWindowsHost()) { QString jdkRegisteryPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\JDK\\"; @@ -549,7 +549,7 @@ Utils::FilePath AndroidSettingsWidget::findJdkInCommonPaths() for (const QString &version : jdkVersions) { jdkSettings.beginGroup(version); - jdkHome = Utils::FilePath::fromString(jdkSettings.value("JavaHome").toString()); + jdkHome = Utils::FilePath::fromUserInput(jdkSettings.value("JavaHome").toString()); jdkSettings.endGroup(); if (version.startsWith("1.8")) return jdkHome; @@ -583,7 +583,7 @@ Utils::FilePath AndroidSettingsWidget::findJdkInCommonPaths() void AndroidSettingsWidget::validateNdk() { - auto ndkPath = Utils::FilePath::fromString(m_ui->ndkListComboBox->currentText()); + auto ndkPath = Utils::FilePath::fromUserInput(m_ui->ndkListComboBox->currentText()); m_androidConfig.setNdkLocation(ndkPath); auto summaryWidget = static_cast(m_ui->androidDetailsWidget->widget()); @@ -612,7 +612,7 @@ void AndroidSettingsWidget::onSdkPathChanged() void AndroidSettingsWidget::validateSdk() { - auto sdkPath = Utils::FilePath::fromString(m_ui->SDKLocationPathChooser->rawPath()); + auto sdkPath = Utils::FilePath::fromUserInput(m_ui->SDKLocationPathChooser->rawPath()); m_androidConfig.setSdkLocation(sdkPath); auto summaryWidget = static_cast(m_ui->androidDetailsWidget->widget());