Merge remote-tracking branch 'origin/qds/dev'

Conflicts: src/libs/utils/filepath.cpp
  src/plugins/qmldesigner/qmldesignerexternaldependencies.cpp
  src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp
  tests/unit/unittest/CMakeLists.txt

Change-Id: I017a6075db41a5233487ac855ffe23de2b2bb0ee
This commit is contained in:
Tim Jenssen
2023-03-30 13:34:12 +02:00
858 changed files with 30485 additions and 12280 deletions

View File

@@ -10,6 +10,7 @@
#include "qmlprojectmanagertr.h"
#include "qmlprojectnodes.h"
#include <coreplugin/coreconstants.h>
#include <coreplugin/documentmanager.h>
#include <coreplugin/editormanager/documentmodel.h>
#include <coreplugin/editormanager/editormanager.h>
@@ -17,6 +18,7 @@
#include <coreplugin/icontext.h>
#include <coreplugin/icore.h>
#include <coreplugin/messagemanager.h>
#include <coreplugin/modemanager.h>
#include <projectexplorer/deploymentdata.h>
#include <projectexplorer/devicesupport/idevice.h>
@@ -75,15 +77,20 @@ static bool allowOnlySingleProject()
return !settings->value(qdsAllowMultipleProjects, false).toBool();
}
Utils::FilePaths QmlProject::getUiQmlFilesForFolder(const Utils::FilePath &folder)
Utils::FilePaths QmlProject::collectUiQmlFilesForFolder(const Utils::FilePath &folder) const
{
const Utils::FilePaths uiFiles = files([&](const ProjectExplorer::Node *node) {
return node->filePath().completeSuffix() == "ui.qml"
&& node->filePath().parentDir() == folder;
&& node->filePath().parentDir() == folder;
});
return uiFiles;
}
FilePaths QmlProject::collectQmlFiles() const
{
return files([](const Node *node) { return node->filePath().suffix() == "qml"; });
}
QmlProject::QmlProject(const Utils::FilePath &fileName)
: Project(QString::fromLatin1(Constants::QMLPROJECT_MIMETYPE), fileName)
{
@@ -125,10 +132,13 @@ QmlProject::QmlProject(const Utils::FilePath &fileName)
Utils::Id());
});
} else {
Utils::FilePaths uiFiles = getUiQmlFilesForFolder(projectDirectory()
/ "content");
Utils::FilePaths uiFiles = collectUiQmlFilesForFolder(
projectDirectory().pathAppended("content"));
if (uiFiles.isEmpty())
uiFiles = getUiQmlFilesForFolder(projectDirectory());
uiFiles = collectUiQmlFilesForFolder(projectDirectory());
if (uiFiles.isEmpty())
uiFiles = collectQmlFiles();
if (!uiFiles.isEmpty()) {
Utils::FilePath currentFile;
@@ -139,6 +149,8 @@ QmlProject::QmlProject(const Utils::FilePath &fileName)
QTimer::singleShot(1000, [uiFiles]() {
Core::EditorManager::openEditor(uiFiles.first(),
Utils::Id());
Core::ModeManager::activateMode(
Core::Constants::MODE_DESIGN);
});
}
}
@@ -346,12 +358,22 @@ FilePath QmlBuildSystem::mainUiFile() const
FilePath QmlBuildSystem::mainFilePath() const
{
return projectDirectory().resolvePath(mainFile());
const auto mainFileString = mainFile();
if (mainFileString.isEmpty())
return {};
return projectDirectory().resolvePath(mainFileString);
}
FilePath QmlBuildSystem::mainUiFilePath() const
{
return projectDirectory().resolvePath(mainUiFile());
const auto mainUiFileString = mainUiFile();
if (mainUiFileString.isEmpty())
return {};
return projectDirectory().resolvePath(mainUiFileString);
}
bool QmlBuildSystem::setMainFileInProjectFile(const FilePath &newMainFilePath)