diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index 62af8cb96a4..91155fa9b4a 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -98,7 +98,7 @@ QPointer s_viewWindow = nullptr; QPointer s_viewWidget = nullptr; static StudioWelcomePlugin *s_pluginInstance = nullptr; -static Utils::FilePath getMainUiFile() +static Utils::FilePath getMainUiFileWithFallback() { auto project = ProjectExplorer::SessionManager::startupProject(); if (!project) @@ -109,7 +109,18 @@ static Utils::FilePath getMainUiFile() auto qmlBuildSystem = qobject_cast( project->activeTarget()->buildSystem()); - return qmlBuildSystem->mainUiFilePath(); + + auto mainUiFile = qmlBuildSystem->mainUiFilePath(); + if (mainUiFile.exists()) + return mainUiFile; + + const Utils::FilePaths uiFiles = project->files([&](const ProjectExplorer::Node *node) { + return node->filePath().completeSuffix() == "ui.qml"; + }); + if (!uiFiles.isEmpty()) + return uiFiles.first(); + + return {}; } std::unique_ptr makeUserFeedbackSettings() @@ -243,7 +254,7 @@ public: const ProjectExplorerPlugin::OpenProjectResult result = ProjectExplorer::ProjectExplorerPlugin::openProject(projectFile); if (!result && !result.alreadyOpen().isEmpty()) { - const auto mainUiFile = getMainUiFile(); + const auto mainUiFile = getMainUiFileWithFallback(); if (mainUiFile.exists()) Core::EditorManager::openEditor(mainUiFile, Utils::Id()); };