From 20c387f63630b49d9383af9fadbf16c5aaadeaa6 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 20 May 2020 18:44:45 +0200 Subject: [PATCH] QmlPreview: Don't use MainFileAspect if it doesn't exist We only need to choose the main file if we're dealing with a qmlproject. Fixes: QTCREATORBUG-24056 Change-Id: I5b5dfa29a46fa07de7ee570fa033d978e72dfdb5 Reviewed-by: Alessandro Portale Reviewed-by: hjk --- .../qmlpreview/qmlpreviewruncontrol.cpp | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp b/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp index 9f22796689e..c513a580f31 100644 --- a/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp +++ b/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp @@ -134,21 +134,22 @@ LocalQmlPreviewSupport::LocalQmlPreviewSupport(ProjectExplorer::RunControl *runC const auto currentTarget = runControl->target(); const auto *qmlBuildSystem = qobject_cast(currentTarget->buildSystem()); - const auto aspect = runControl->aspect(); - const QString mainScript = aspect->mainScript(); - const QString currentFile = aspect->currentFile(); + if (const auto aspect = runControl->aspect()) { + const QString mainScript = aspect->mainScript(); + const QString currentFile = aspect->currentFile(); - const QString mainScriptFromProject = qmlBuildSystem->targetFile( - Utils::FilePath::fromString(mainScript)).toString(); + const QString mainScriptFromProject = qmlBuildSystem->targetFile( + Utils::FilePath::fromString(mainScript)).toString(); - const QString currentFileFromProject = qmlBuildSystem->targetFile( - Utils::FilePath::fromString(currentFile)).toString(); + const QString currentFileFromProject = qmlBuildSystem->targetFile( + Utils::FilePath::fromString(currentFile)).toString(); - if (!currentFile.isEmpty() && qmlProjectRunConfigurationArguments.last().contains(mainScriptFromProject)) { - qmlProjectRunConfigurationArguments.removeLast(); - auto commandLine = Utils::CommandLine(runnable.commandLine().executable(), qmlProjectRunConfigurationArguments); - commandLine.addArg(currentFile); - runnable.setCommandLine(commandLine); + if (!currentFile.isEmpty() && qmlProjectRunConfigurationArguments.last().contains(mainScriptFromProject)) { + qmlProjectRunConfigurationArguments.removeLast(); + auto commandLine = Utils::CommandLine(runnable.commandLine().executable(), qmlProjectRunConfigurationArguments); + commandLine.addArg(currentFile); + runnable.setCommandLine(commandLine); + } } Utils::QtcProcess::addArg(&runnable.commandLineArguments,