forked from qt-creator/qt-creator
QmlProject: Absolute files paths are ignored
This patch fixes issues with adding files to the project by providing the absolute paths in the .qmlproject file. - If a directory is given without an explicit file list, then that directory wil be searched recursively. - If explicit file list given without a directory, then each file will be added to the project separately. - If both provided, then each file wil be prefixed with given directory, and added project separately. Task-number: QDS-10636 Change-Id: Ia13964ce2b3f6364d1def1aa71e20ec29f6f3542 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
This commit is contained in:
@@ -7,25 +7,6 @@
|
|||||||
|
|
||||||
namespace QmlProjectManager::Converters {
|
namespace QmlProjectManager::Converters {
|
||||||
|
|
||||||
using PropsPair = QPair<QString, QStringList>;
|
|
||||||
struct FileProps
|
|
||||||
{
|
|
||||||
const PropsPair image{"image",
|
|
||||||
QStringList{"*.jpeg", "*.jpg", "*.png", "*.svg", "*.hdr", ".ktx"}};
|
|
||||||
const PropsPair qml{"qml", QStringList{"*.qml"}};
|
|
||||||
const PropsPair qmlDir{"qmldir", QStringList{"qmldir"}};
|
|
||||||
const PropsPair javaScr{"javaScript", QStringList{"*.js", "*.ts"}};
|
|
||||||
const PropsPair video{"video", QStringList{"*.mp4"}};
|
|
||||||
const PropsPair sound{"sound", QStringList{"*.mp3", "*.wav"}};
|
|
||||||
const PropsPair font{"font", QStringList{"*.ttf", "*.otf"}};
|
|
||||||
const PropsPair config{"config", QStringList{"*.conf"}};
|
|
||||||
const PropsPair styling{"styling", QStringList{"*.css"}};
|
|
||||||
const PropsPair mesh{"meshes", QStringList{"*.mesh"}};
|
|
||||||
const PropsPair
|
|
||||||
shader{"shader",
|
|
||||||
QStringList{"*.glsl", "*.glslv", "*.glslf", "*.vsh", "*.fsh", "*.vert", "*.frag"}};
|
|
||||||
};
|
|
||||||
|
|
||||||
QString jsonToQmlProject(const QJsonObject &rootObject)
|
QString jsonToQmlProject(const QJsonObject &rootObject)
|
||||||
{
|
{
|
||||||
QString qmlProjectString;
|
QString qmlProjectString;
|
||||||
@@ -37,7 +18,7 @@ QString jsonToQmlProject(const QJsonObject &rootObject)
|
|||||||
QJsonObject versionConfig = rootObject["versions"].toObject();
|
QJsonObject versionConfig = rootObject["versions"].toObject();
|
||||||
QJsonObject environmentConfig = rootObject["environment"].toObject();
|
QJsonObject environmentConfig = rootObject["environment"].toObject();
|
||||||
QJsonObject deploymentConfig = rootObject["deployment"].toObject();
|
QJsonObject deploymentConfig = rootObject["deployment"].toObject();
|
||||||
QJsonObject filesConfig = rootObject["fileGroups"].toObject();
|
QJsonArray filesConfig = rootObject["fileGroups"].toArray();
|
||||||
|
|
||||||
int indentationLevel = 0;
|
int indentationLevel = 0;
|
||||||
|
|
||||||
@@ -82,42 +63,22 @@ QString jsonToQmlProject(const QJsonObject &rootObject)
|
|||||||
ts << QString(" ").repeated(indentationLevel * 4) << "}" << Qt::endl;
|
ts << QString(" ").repeated(indentationLevel * 4) << "}" << Qt::endl;
|
||||||
};
|
};
|
||||||
|
|
||||||
auto appendDirectories =
|
auto appendFileGroup =
|
||||||
[&startObject, &endObject, &appendString, &filesConfig](const QString &jsonKey,
|
[&startObject, &endObject, &appendString, &appendArray](const QJsonObject &fileGroup,
|
||||||
const QString &qmlKey) {
|
const QString &qmlKey) {
|
||||||
QJsonValue dirsObj = filesConfig[jsonKey].toObject()["directories"];
|
startObject(qmlKey);
|
||||||
QStringList dirs = dirsObj.toVariant().toStringList();
|
appendString("directory", fileGroup["directory"].toString());
|
||||||
foreach (const QString &directory, dirs) {
|
appendString("filter", fileGroup["filters"].toVariant().toStringList().join(";"));
|
||||||
startObject(qmlKey);
|
appendArray("files", fileGroup["files"].toVariant().toStringList());
|
||||||
appendString("directory", directory);
|
endObject();
|
||||||
endObject();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
auto appendFiles = [&startObject,
|
auto appendQmlFileGroup =
|
||||||
&endObject,
|
[&startObject, &endObject, &appendString](const QJsonObject &fileGroup) {
|
||||||
&appendString,
|
startObject("QmlFiles");
|
||||||
&appendArray,
|
appendString("directory", fileGroup["directory"].toString());
|
||||||
&filesConfig](const QString &jsonKey, const QString &qmlKey) {
|
|
||||||
QJsonValue dirsObj = filesConfig[jsonKey].toObject()["directories"];
|
|
||||||
QJsonValue filesObj = filesConfig[jsonKey].toObject()["files"];
|
|
||||||
QJsonValue filtersObj = filesConfig[jsonKey].toObject()["filters"];
|
|
||||||
|
|
||||||
foreach (const QString &directory, dirsObj.toVariant().toStringList()) {
|
|
||||||
startObject(qmlKey);
|
|
||||||
appendString("directory", directory);
|
|
||||||
appendString("filters", filtersObj.toVariant().toStringList().join(";"));
|
|
||||||
|
|
||||||
if (!filesObj.toArray().isEmpty()) {
|
|
||||||
QStringList fileList;
|
|
||||||
foreach (const QJsonValue &file, filesObj.toArray()) {
|
|
||||||
fileList.append(file.toObject()["name"].toString());
|
|
||||||
}
|
|
||||||
appendArray("files", fileList);
|
|
||||||
}
|
|
||||||
endObject();
|
endObject();
|
||||||
}
|
};
|
||||||
};
|
|
||||||
|
|
||||||
// start creating the file content
|
// start creating the file content
|
||||||
appendComment("prop: json-converted");
|
appendComment("prop: json-converted");
|
||||||
@@ -127,54 +88,46 @@ QString jsonToQmlProject(const QJsonObject &rootObject)
|
|||||||
{
|
{
|
||||||
startObject("Project");
|
startObject("Project");
|
||||||
|
|
||||||
{ // append non-object props
|
// append non-object props
|
||||||
appendString("mainFile", runConfig["mainFile"].toString());
|
appendString("mainFile", runConfig["mainFile"].toString());
|
||||||
appendString("mainUiFile", runConfig["mainUiFile"].toString());
|
appendString("mainUiFile", runConfig["mainUiFile"].toString());
|
||||||
appendString("targetDirectory", deploymentConfig["targetDirectory"].toString());
|
appendString("targetDirectory", deploymentConfig["targetDirectory"].toString());
|
||||||
appendBool("widgetApp", runConfig["widgetApp"].toBool());
|
appendBool("widgetApp", runConfig["widgetApp"].toBool());
|
||||||
appendArray("importPaths", rootObject["importPaths"].toVariant().toStringList());
|
appendArray("importPaths", rootObject["importPaths"].toVariant().toStringList());
|
||||||
appendBreak();
|
appendBreak();
|
||||||
appendString("qdsVersion", versionConfig["designStudio"].toString());
|
appendString("qdsVersion", versionConfig["designStudio"].toString());
|
||||||
appendString("quickVersion", versionConfig["qtQuick"].toString());
|
appendString("quickVersion", versionConfig["qtQuick"].toString());
|
||||||
appendBool("qt6Project", versionConfig["qt"].toString() == "6");
|
appendBool("qt6Project", versionConfig["qt"].toString() == "6");
|
||||||
appendBool("qtForMCUs", !(rootObject["mcuConfig"].toObject().isEmpty()));
|
appendBool("qtForMCUs", !(rootObject["mcuConfig"].toObject().isEmpty()));
|
||||||
appendBreak();
|
appendBreak();
|
||||||
appendBool("multilanguageSupport", languageConfig["multiLanguageSupport"].toBool());
|
appendBool("multilanguageSupport", languageConfig["multiLanguageSupport"].toBool());
|
||||||
appendString("primaryLanguage", languageConfig["primaryLanguage"].toString());
|
appendString("primaryLanguage", languageConfig["primaryLanguage"].toString());
|
||||||
appendArray("supportedLanguages",
|
appendArray("supportedLanguages",
|
||||||
languageConfig["supportedLanguages"].toVariant().toStringList());
|
languageConfig["supportedLanguages"].toVariant().toStringList());
|
||||||
}
|
|
||||||
|
|
||||||
{ // append Environment object
|
// append Environment object
|
||||||
startObject("Environment");
|
startObject("Environment");
|
||||||
foreach (const QString &key, environmentConfig.keys()) {
|
foreach (const QString &key, environmentConfig.keys()) {
|
||||||
appendItem(key, environmentConfig[key].toString(), true);
|
appendItem(key, environmentConfig[key].toString(), true);
|
||||||
}
|
}
|
||||||
|
endObject();
|
||||||
|
|
||||||
|
// append ShaderTool object
|
||||||
|
if (!shaderConfig["args"].toVariant().toStringList().isEmpty()) {
|
||||||
|
startObject("ShaderTool");
|
||||||
|
appendString("args",
|
||||||
|
shaderConfig["args"].toVariant().toStringList().join(" ").replace("\"",
|
||||||
|
"\\\""));
|
||||||
|
appendArray("files", shaderConfig["files"].toVariant().toStringList());
|
||||||
endObject();
|
endObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
{ // append ShaderTool object
|
// append files objects
|
||||||
if (!shaderConfig["args"].toVariant().toStringList().isEmpty()) {
|
for (const QJsonValue &fileGroup : filesConfig) {
|
||||||
startObject("ShaderTool");
|
if (fileGroup["filters"].toArray().contains("*.qml"))
|
||||||
appendString("args",
|
appendQmlFileGroup(fileGroup.toObject());
|
||||||
shaderConfig["args"].toVariant().toStringList().join(" ").replace(
|
else
|
||||||
"\"", "\\\""));
|
appendFileGroup(fileGroup.toObject(), "Files");
|
||||||
appendArray("files", shaderConfig["files"].toVariant().toStringList());
|
|
||||||
endObject();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // append files objects
|
|
||||||
appendDirectories("qml", "QmlFiles");
|
|
||||||
appendDirectories("javaScript", "JavaScriptFiles");
|
|
||||||
appendDirectories("image", "ImageFiles");
|
|
||||||
appendFiles("config", "Files");
|
|
||||||
appendFiles("font", "Files");
|
|
||||||
appendFiles("meshes", "Files");
|
|
||||||
appendFiles("qmldir", "Files");
|
|
||||||
appendFiles("shader", "Files");
|
|
||||||
appendFiles("sound", "Files");
|
|
||||||
appendFiles("video", "Files");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
endObject(); // Closing 'Project'
|
endObject(); // Closing 'Project'
|
||||||
@@ -210,7 +163,7 @@ QJsonObject qmlProjectTojson(const Utils::FilePath &projectFile)
|
|||||||
auto toCamelCase = [](const QString &s) { return QString(s).replace(0, 1, s[0].toLower()); };
|
auto toCamelCase = [](const QString &s) { return QString(s).replace(0, 1, s[0].toLower()); };
|
||||||
|
|
||||||
QJsonObject rootObject; // root object
|
QJsonObject rootObject; // root object
|
||||||
QJsonObject fileGroupsObject;
|
QJsonArray fileGroupsObject;
|
||||||
QJsonObject languageObject;
|
QJsonObject languageObject;
|
||||||
QJsonObject versionObject;
|
QJsonObject versionObject;
|
||||||
QJsonObject runConfigObject;
|
QJsonObject runConfigObject;
|
||||||
@@ -270,82 +223,51 @@ QJsonObject qmlProjectTojson(const Utils::FilePath &projectFile)
|
|||||||
// convert the the object props
|
// convert the the object props
|
||||||
for (const QmlJS::SimpleReaderNode::Ptr &childNode : rootNode->children()) {
|
for (const QmlJS::SimpleReaderNode::Ptr &childNode : rootNode->children()) {
|
||||||
if (childNode->name().contains("files", Qt::CaseInsensitive)) {
|
if (childNode->name().contains("files", Qt::CaseInsensitive)) {
|
||||||
PropsPair propsPair;
|
|
||||||
FileProps fileProps;
|
|
||||||
const QString childNodeName = childNode->name().toLower().remove("qds.");
|
const QString childNodeName = childNode->name().toLower().remove("qds.");
|
||||||
const QmlJS::SimpleReaderNode::Property childNodeFilter = childNode->property("filter");
|
QJsonArray childNodeFiles = childNode->property("files").value.toJsonArray();
|
||||||
const QmlJS::SimpleReaderNode::Property childNodeDirectory = childNode->property(
|
QString childNodeDirectory = childNode->property("directory").value.toString();
|
||||||
"directory");
|
QStringList filters = childNode->property("filter").value.toString().split(";");
|
||||||
const QmlJS::SimpleReaderNode::Property childNodeFiles = childNode->property("files");
|
filters.removeAll("");
|
||||||
const QString childNodeFilterValue = childNodeFilter.value.toString();
|
QJsonArray childNodeFilters = QJsonArray::fromStringList(filters);
|
||||||
|
|
||||||
if (childNodeName == "qmlfiles" || childNodeFilterValue.contains("*.qml")) {
|
// files have priority over filters
|
||||||
propsPair = fileProps.qml;
|
// if explicit files are given, then filters will be ignored
|
||||||
} else if (childNodeName == "javascriptfiles") {
|
// and all files are prefixed such as "directory/<filename>".
|
||||||
propsPair = fileProps.javaScr;
|
// if directory is empty, then the files are prefixed with the project directory
|
||||||
} else if (childNodeName == "imagefiles") {
|
if (childNodeFiles.empty()) {
|
||||||
propsPair = fileProps.image;
|
auto inserter = [&childNodeFilters](const QStringList &filterSource) {
|
||||||
} else {
|
std::for_each(filterSource.begin(),
|
||||||
if (childNodeFilter.isValid()) {
|
filterSource.end(),
|
||||||
if (childNodeFilterValue.contains(".conf"))
|
[&childNodeFilters](const auto &value) {
|
||||||
propsPair = fileProps.config;
|
childNodeFilters << value;
|
||||||
else if (childNodeFilterValue.contains(".ttf"))
|
});
|
||||||
propsPair = fileProps.font;
|
};
|
||||||
else if (childNodeFilterValue.contains("qmldir"))
|
|
||||||
propsPair = fileProps.qmlDir;
|
// Those 3 file groups are the special ones
|
||||||
else if (childNodeFilterValue.contains(".wav"))
|
// that have a default set of filters. After the first
|
||||||
propsPair = fileProps.sound;
|
// conversion (QmlProject -> JSON) they are converted to
|
||||||
else if (childNodeFilterValue.contains(".mp4"))
|
// the generic file group format ('Files' or 'QDS.Files')
|
||||||
propsPair = fileProps.video;
|
if (childNodeName == "qmlfiles") {
|
||||||
else if (childNodeFilterValue.contains(".mesh"))
|
inserter({QStringLiteral("*.qml")});
|
||||||
propsPair = fileProps.mesh;
|
} else if (childNodeName == "javascriptfiles") {
|
||||||
else if (childNodeFilterValue.contains(".glsl"))
|
inserter({QStringLiteral("*.js"), QStringLiteral("*.ts")});
|
||||||
propsPair = fileProps.shader;
|
} else if (childNodeName == "imagefiles") {
|
||||||
else if (childNodeFilterValue.contains(".css"))
|
inserter({QStringLiteral("*.jpeg"),
|
||||||
propsPair = fileProps.styling;
|
QStringLiteral("*.jpg"),
|
||||||
|
QStringLiteral("*.png"),
|
||||||
|
QStringLiteral("*.svg"),
|
||||||
|
QStringLiteral("*.hdr"),
|
||||||
|
QStringLiteral(".ktx")});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// get all objects we'll work on
|
// create the file group object
|
||||||
QJsonObject targetObject = fileGroupsObject[propsPair.first].toObject();
|
QJsonObject targetObject;
|
||||||
QJsonArray directories = targetObject["directories"].toArray();
|
targetObject.insert("directory", childNodeDirectory);
|
||||||
QJsonArray filters = targetObject["filters"].toArray();
|
targetObject.insert("filters", childNodeFilters);
|
||||||
QJsonArray files = targetObject["files"].toArray();
|
targetObject.insert("files", childNodeFiles);
|
||||||
|
|
||||||
// populate & update filters
|
fileGroupsObject.append(targetObject);
|
||||||
if (filters.isEmpty()) {
|
|
||||||
filters = QJsonArray::fromStringList(
|
|
||||||
propsPair.second); // populate the filters with the predefined ones
|
|
||||||
}
|
|
||||||
|
|
||||||
if (childNodeFilter.isValid()) { // append filters from qmlproject (merge)
|
|
||||||
const QStringList filtersFromProjectFile = childNodeFilterValue.split(";");
|
|
||||||
for (const QString &filter : filtersFromProjectFile) {
|
|
||||||
if (!filters.contains(QJsonValue(filter))) {
|
|
||||||
filters.append(QJsonValue(filter));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// populate & update directories
|
|
||||||
if (childNodeDirectory.isValid()) {
|
|
||||||
directories.append(childNodeDirectory.value.toJsonValue());
|
|
||||||
}
|
|
||||||
if (directories.isEmpty())
|
|
||||||
directories.append(".");
|
|
||||||
|
|
||||||
// populate & update files
|
|
||||||
if (childNodeFiles.isValid()) {
|
|
||||||
foreach (const QJsonValue &file, childNodeFiles.value.toJsonArray()) {
|
|
||||||
files.append(QJsonObject{{"name", file.toString()}});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// put everything back into the root object
|
|
||||||
targetObject.insert("directories", directories);
|
|
||||||
targetObject.insert("filters", filters);
|
|
||||||
targetObject.insert("files", files);
|
|
||||||
fileGroupsObject.insert(propsPair.first, targetObject);
|
|
||||||
} else if (childNode->name().contains("shadertool", Qt::CaseInsensitive)) {
|
} else if (childNode->name().contains("shadertool", Qt::CaseInsensitive)) {
|
||||||
QStringList quotedArgs
|
QStringList quotedArgs
|
||||||
= childNode->property("args").value.toString().split('\"', Qt::SkipEmptyParts);
|
= childNode->property("args").value.toString().split('\"', Qt::SkipEmptyParts);
|
||||||
|
|||||||
@@ -65,20 +65,16 @@ bool QmlProjectItem::initProjectObject()
|
|||||||
void QmlProjectItem::setupFileFilters()
|
void QmlProjectItem::setupFileFilters()
|
||||||
{
|
{
|
||||||
auto setupFileFilterItem = [this](const QJsonObject &fileGroup) {
|
auto setupFileFilterItem = [this](const QJsonObject &fileGroup) {
|
||||||
for (const QString &directory : fileGroup["directories"].toVariant().toStringList()) {
|
// first we need to add all directories as a 'resource' path for the project and set them as
|
||||||
|
// recursive.
|
||||||
|
// if there're any files with the explicit absolute paths, we need to add them afterwards.
|
||||||
|
for (const QString &directory : fileGroup["directory"].toVariant().toStringList()) {
|
||||||
std::unique_ptr<FileFilterItem> fileFilterItem{new FileFilterItem};
|
std::unique_ptr<FileFilterItem> fileFilterItem{new FileFilterItem};
|
||||||
|
|
||||||
QStringList filesArr;
|
|
||||||
for (const QJsonValue &file : fileGroup["files"].toArray()) {
|
|
||||||
filesArr.append(file["name"].toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
fileFilterItem->setDirectory(directory);
|
fileFilterItem->setDirectory(directory);
|
||||||
fileFilterItem->setFilters(fileGroup["filters"].toVariant().toStringList());
|
fileFilterItem->setFilters(fileGroup["filters"].toVariant().toStringList());
|
||||||
fileFilterItem->setRecursive(fileGroup["recursive"].toBool(true));
|
fileFilterItem->setRecursive(true);
|
||||||
fileFilterItem->setPathsProperty(fileGroup["directories"].toVariant().toStringList());
|
|
||||||
fileFilterItem->setPathsProperty(filesArr);
|
|
||||||
fileFilterItem->setDefaultDirectory(m_projectFile.parentDir().toString());
|
fileFilterItem->setDefaultDirectory(m_projectFile.parentDir().toString());
|
||||||
|
|
||||||
#ifndef TESTS_ENABLED_QMLPROJECTITEM
|
#ifndef TESTS_ENABLED_QMLPROJECTITEM
|
||||||
connect(fileFilterItem.get(),
|
connect(fileFilterItem.get(),
|
||||||
&FileFilterItem::filesChanged,
|
&FileFilterItem::filesChanged,
|
||||||
@@ -87,11 +83,38 @@ void QmlProjectItem::setupFileFilters()
|
|||||||
#endif
|
#endif
|
||||||
m_content.push_back(std::move(fileFilterItem));
|
m_content.push_back(std::move(fileFilterItem));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// here we begin to add files with the explicit absolute paths
|
||||||
|
QJsonArray files = fileGroup["files"].toArray();
|
||||||
|
if (files.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
QStringList filesArr;
|
||||||
|
std::transform(files.begin(),
|
||||||
|
files.end(),
|
||||||
|
std::back_inserter(filesArr),
|
||||||
|
[](const QJsonValue &value) { return value.toString(); });
|
||||||
|
|
||||||
|
const QString directory = fileGroup["directory"].toString() == ""
|
||||||
|
? m_projectFile.parentDir().toString()
|
||||||
|
: fileGroup["directory"].toString();
|
||||||
|
Utils::FilePath groupDir = Utils::FilePath::fromString(directory);
|
||||||
|
std::unique_ptr<FileFilterItem> fileFilterItem{new FileFilterItem};
|
||||||
|
fileFilterItem->setRecursive(false);
|
||||||
|
fileFilterItem->setPathsProperty(filesArr);
|
||||||
|
fileFilterItem->setDefaultDirectory(m_projectFile.parentDir().toString());
|
||||||
|
fileFilterItem->setDirectory(groupDir.toString());
|
||||||
|
#ifndef TESTS_ENABLED_QMLPROJECTITEM
|
||||||
|
connect(fileFilterItem.get(),
|
||||||
|
&FileFilterItem::filesChanged,
|
||||||
|
this,
|
||||||
|
&QmlProjectItem::qmlFilesChanged);
|
||||||
|
#endif
|
||||||
|
m_content.push_back(std::move(fileFilterItem));
|
||||||
};
|
};
|
||||||
|
|
||||||
QJsonObject fileGroups = m_project["fileGroups"].toObject();
|
for (const QJsonValue &fileGroup : m_project["fileGroups"].toArray()) {
|
||||||
for (const QString &groupName : fileGroups.keys()) {
|
setupFileFilterItem(fileGroup.toObject());
|
||||||
setupFileFilterItem(fileGroups[groupName].toObject());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,59 +40,79 @@ Project {
|
|||||||
directory: "imports"
|
directory: "imports"
|
||||||
}
|
}
|
||||||
|
|
||||||
QmlFiles {
|
Files {
|
||||||
directory: "asset_imports"
|
|
||||||
}
|
|
||||||
|
|
||||||
JavaScriptFiles {
|
|
||||||
directory: "content"
|
directory: "content"
|
||||||
}
|
filter: "*.js;*.ts"
|
||||||
|
files: [ ]
|
||||||
JavaScriptFiles {
|
|
||||||
directory: "imports"
|
|
||||||
}
|
|
||||||
|
|
||||||
ImageFiles {
|
|
||||||
directory: "content"
|
|
||||||
}
|
|
||||||
|
|
||||||
ImageFiles {
|
|
||||||
directory: "asset_imports"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
directory: "."
|
directory: "imports"
|
||||||
filters: "*.conf"
|
filter: "*.js;*.ts"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: "content"
|
||||||
|
filter: "*.jpeg;*.jpg;*.png;*.svg;*.hdr;.ktx"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: "asset_imports"
|
||||||
|
filter: "*.jpeg;*.jpg;*.png;*.svg;*.hdr;.ktx"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: ""
|
||||||
files: [ "qtquickcontrols2.conf" ]
|
files: [ "qtquickcontrols2.conf" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.conf"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
directory: "."
|
directory: "."
|
||||||
filters: "*.ttf;*.otf;*.ctf"
|
filter: "qmldir"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.ttf;*.otf;*.ctf"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.wav;*.mp3"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.mp4"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.glsl;*.glslv;*.glslf;*.vsh;*.fsh;*.vert;*.frag;*.trag"
|
||||||
|
files: [ ]
|
||||||
}
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
directory: "asset_imports"
|
directory: "asset_imports"
|
||||||
filters: "*.mesh"
|
filter: "*.mesh"
|
||||||
|
files: [ ]
|
||||||
}
|
}
|
||||||
|
|
||||||
Files {
|
QmlFiles {
|
||||||
directory: "."
|
directory: "asset_imports"
|
||||||
filters: "qmldir"
|
|
||||||
}
|
|
||||||
|
|
||||||
Files {
|
|
||||||
directory: "."
|
|
||||||
filters: "*.glsl;*.glslv;*.glslf;*.vsh;*.fsh;*.vert;*.frag;*.trag"
|
|
||||||
}
|
|
||||||
|
|
||||||
Files {
|
|
||||||
directory: "."
|
|
||||||
filters: "*.mp3;*.wav"
|
|
||||||
}
|
|
||||||
|
|
||||||
Files {
|
|
||||||
directory: "."
|
|
||||||
filters: "*.mp4"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,10 +30,13 @@ Project {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
filter: "*.conf"
|
|
||||||
files: ["qtquickcontrols2.conf"]
|
files: ["qtquickcontrols2.conf"]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
filter: "*.conf"
|
||||||
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
filter: "qmldir"
|
filter: "qmldir"
|
||||||
directory: "."
|
directory: "."
|
||||||
|
|||||||
@@ -9,37 +9,43 @@
|
|||||||
"QT_LOGGING_RULES": "qt.qml.connections=false",
|
"QT_LOGGING_RULES": "qt.qml.connections=false",
|
||||||
"QT_QUICK_CONTROLS_CONF": "qtquickcontrols2.conf"
|
"QT_QUICK_CONTROLS_CONF": "qtquickcontrols2.conf"
|
||||||
},
|
},
|
||||||
"fileGroups": {
|
"fileGroups": [
|
||||||
"config": {
|
{
|
||||||
"directories": [
|
"directory": "content",
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
|
||||||
{
|
|
||||||
"name": "qtquickcontrols2.conf"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"filters": [
|
|
||||||
"*.conf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"directories": [
|
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.ttf",
|
"*.qml"
|
||||||
"*.otf",
|
|
||||||
"*.ctf"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"image": {
|
{
|
||||||
"directories": [
|
"directory": "imports",
|
||||||
"content",
|
"files": [
|
||||||
"asset_imports"
|
|
||||||
],
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.qml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "content",
|
||||||
|
"files": [
|
||||||
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.js",
|
||||||
|
"*.ts"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "imports",
|
||||||
|
"files": [
|
||||||
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.js",
|
||||||
|
"*.ts"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "content",
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
@@ -51,54 +57,72 @@
|
|||||||
".ktx"
|
".ktx"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"javaScript": {
|
{
|
||||||
"directories": [
|
"directory": "asset_imports",
|
||||||
"content",
|
|
||||||
"imports"
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.js",
|
"*.jpeg",
|
||||||
"*.ts"
|
"*.jpg",
|
||||||
|
"*.png",
|
||||||
|
"*.svg",
|
||||||
|
"*.hdr",
|
||||||
|
".ktx"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"meshes": {
|
{
|
||||||
"directories": [
|
"directory": "",
|
||||||
"asset_imports"
|
"files": [
|
||||||
|
"qtquickcontrols2.conf"
|
||||||
],
|
],
|
||||||
|
"filters": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "",
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.mesh"
|
"*.conf"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"qml": {
|
{
|
||||||
"directories": [
|
"directory": ".",
|
||||||
"content",
|
|
||||||
"imports",
|
|
||||||
"asset_imports"
|
|
||||||
],
|
|
||||||
"files": [
|
|
||||||
],
|
|
||||||
"filters": [
|
|
||||||
"*.qml"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"qmldir": {
|
|
||||||
"directories": [
|
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"qmldir"
|
"qmldir"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"shader": {
|
{
|
||||||
"directories": [
|
"directory": "",
|
||||||
"."
|
"files": [
|
||||||
],
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.ttf",
|
||||||
|
"*.otf",
|
||||||
|
"*.ctf"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "",
|
||||||
|
"files": [
|
||||||
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.wav",
|
||||||
|
"*.mp3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "",
|
||||||
|
"files": [
|
||||||
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.mp4"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "",
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
@@ -112,28 +136,23 @@
|
|||||||
"*.trag"
|
"*.trag"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"sound": {
|
{
|
||||||
"directories": [
|
"directory": "asset_imports",
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.mp3",
|
"*.mesh"
|
||||||
"*.wav"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"video": {
|
{
|
||||||
"directories": [
|
"directory": "asset_imports",
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.mp4"
|
"*.qml"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
],
|
||||||
"fileVersion": 1,
|
"fileVersion": 1,
|
||||||
"importPaths": [
|
"importPaths": [
|
||||||
"imports",
|
"imports",
|
||||||
|
|||||||
@@ -28,22 +28,33 @@ Project {
|
|||||||
directory: "."
|
directory: "."
|
||||||
}
|
}
|
||||||
|
|
||||||
JavaScriptFiles {
|
Files {
|
||||||
directory: "."
|
|
||||||
}
|
|
||||||
|
|
||||||
ImageFiles {
|
|
||||||
directory: "."
|
directory: "."
|
||||||
|
filter: "*.js;*.ts"
|
||||||
|
files: [ ]
|
||||||
}
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
directory: "."
|
directory: "."
|
||||||
filters: "*.conf"
|
filter: "*.jpeg;*.jpg;*.png;*.svg;*.hdr;.ktx"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: ""
|
||||||
files: [ "qtquickcontrols2.conf" ]
|
files: [ "qtquickcontrols2.conf" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.conf"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
directory: "."
|
directory: "."
|
||||||
filters: "qmldir"
|
filter: "qmldir"
|
||||||
|
files: [ ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,13 @@ Project {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
filter: "*.conf"
|
|
||||||
files: ["qtquickcontrols2.conf"]
|
files: ["qtquickcontrols2.conf"]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
filter: "*.conf"
|
||||||
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
filter: "qmldir"
|
filter: "qmldir"
|
||||||
directory: "."
|
directory: "."
|
||||||
|
|||||||
@@ -6,24 +6,26 @@
|
|||||||
"QT_AUTO_SCREEN_SCALE_FACTOR": "1",
|
"QT_AUTO_SCREEN_SCALE_FACTOR": "1",
|
||||||
"QT_QUICK_CONTROLS_CONF": "qtquickcontrols2.conf"
|
"QT_QUICK_CONTROLS_CONF": "qtquickcontrols2.conf"
|
||||||
},
|
},
|
||||||
"fileGroups": {
|
"fileGroups": [
|
||||||
"config": {
|
{
|
||||||
"directories": [
|
"directory": ".",
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
{
|
|
||||||
"name": "qtquickcontrols2.conf"
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.conf"
|
"*.qml"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"image": {
|
{
|
||||||
"directories": [
|
"directory": ".",
|
||||||
"."
|
"files": [
|
||||||
],
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.js",
|
||||||
|
"*.ts"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": ".",
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
@@ -35,38 +37,31 @@
|
|||||||
".ktx"
|
".ktx"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"javaScript": {
|
{
|
||||||
"directories": [
|
"directory": "",
|
||||||
"."
|
"files": [
|
||||||
|
"qtquickcontrols2.conf"
|
||||||
],
|
],
|
||||||
|
"filters": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "",
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.js",
|
"*.conf"
|
||||||
"*.ts"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"qml": {
|
{
|
||||||
"directories": [
|
"directory": ".",
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
|
||||||
],
|
|
||||||
"filters": [
|
|
||||||
"*.qml"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"qmldir": {
|
|
||||||
"directories": [
|
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"qmldir"
|
"qmldir"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
],
|
||||||
"fileVersion": 1,
|
"fileVersion": 1,
|
||||||
"importPaths": [
|
"importPaths": [
|
||||||
"imports"
|
"imports"
|
||||||
|
|||||||
@@ -40,59 +40,79 @@ Project {
|
|||||||
directory: "imports"
|
directory: "imports"
|
||||||
}
|
}
|
||||||
|
|
||||||
QmlFiles {
|
Files {
|
||||||
directory: "asset_imports"
|
|
||||||
}
|
|
||||||
|
|
||||||
JavaScriptFiles {
|
|
||||||
directory: "content"
|
directory: "content"
|
||||||
}
|
filter: "*.js;*.ts"
|
||||||
|
files: [ ]
|
||||||
JavaScriptFiles {
|
|
||||||
directory: "imports"
|
|
||||||
}
|
|
||||||
|
|
||||||
ImageFiles {
|
|
||||||
directory: "content"
|
|
||||||
}
|
|
||||||
|
|
||||||
ImageFiles {
|
|
||||||
directory: "asset_imports"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
directory: "."
|
directory: "imports"
|
||||||
filters: "*.conf"
|
filter: "*.js;*.ts"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: "content"
|
||||||
|
filter: "*.jpeg;*.jpg;*.png;*.svg;*.hdr;.ktx"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: "asset_imports"
|
||||||
|
filter: "*.jpeg;*.jpg;*.png;*.svg;*.hdr;.ktx"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: ""
|
||||||
files: [ "qtquickcontrols2.conf" ]
|
files: [ "qtquickcontrols2.conf" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.conf"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
directory: "."
|
directory: "."
|
||||||
filters: "*.ttf;*.otf;*.ctf"
|
filter: "qmldir"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.ttf;*.otf;*.ctf"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.wav;*.mp3"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.mp4"
|
||||||
|
files: [ ]
|
||||||
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
directory: ""
|
||||||
|
filter: "*.glsl;*.glslv;*.glslf;*.vsh;*.fsh;*.vert;*.frag;*.trag"
|
||||||
|
files: [ ]
|
||||||
}
|
}
|
||||||
|
|
||||||
Files {
|
Files {
|
||||||
directory: "asset_imports"
|
directory: "asset_imports"
|
||||||
filters: "*.mesh"
|
filter: "*.mesh"
|
||||||
|
files: [ ]
|
||||||
}
|
}
|
||||||
|
|
||||||
Files {
|
QmlFiles {
|
||||||
directory: "."
|
directory: "asset_imports"
|
||||||
filters: "qmldir"
|
|
||||||
}
|
|
||||||
|
|
||||||
Files {
|
|
||||||
directory: "."
|
|
||||||
filters: "*.glsl;*.glslv;*.glslf;*.vsh;*.fsh;*.vert;*.frag;*.trag"
|
|
||||||
}
|
|
||||||
|
|
||||||
Files {
|
|
||||||
directory: "."
|
|
||||||
filters: "*.mp3;*.wav"
|
|
||||||
}
|
|
||||||
|
|
||||||
Files {
|
|
||||||
directory: "."
|
|
||||||
filters: "*.mp4"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,10 +30,13 @@ Project {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDS.Files {
|
QDS.Files {
|
||||||
filter: "*.conf"
|
|
||||||
files: ["qtquickcontrols2.conf"]
|
files: ["qtquickcontrols2.conf"]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDS.Files {
|
||||||
|
filter: "*.conf"
|
||||||
|
}
|
||||||
|
|
||||||
QDS.Files {
|
QDS.Files {
|
||||||
filter: "qmldir"
|
filter: "qmldir"
|
||||||
directory: "."
|
directory: "."
|
||||||
|
|||||||
@@ -9,37 +9,43 @@
|
|||||||
"QT_LOGGING_RULES": "qt.qml.connections=false",
|
"QT_LOGGING_RULES": "qt.qml.connections=false",
|
||||||
"QT_QUICK_CONTROLS_CONF": "qtquickcontrols2.conf"
|
"QT_QUICK_CONTROLS_CONF": "qtquickcontrols2.conf"
|
||||||
},
|
},
|
||||||
"fileGroups": {
|
"fileGroups": [
|
||||||
"config": {
|
{
|
||||||
"directories": [
|
"directory": "content",
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
|
||||||
{
|
|
||||||
"name": "qtquickcontrols2.conf"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"filters": [
|
|
||||||
"*.conf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"directories": [
|
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.ttf",
|
"*.qml"
|
||||||
"*.otf",
|
|
||||||
"*.ctf"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"image": {
|
{
|
||||||
"directories": [
|
"directory": "imports",
|
||||||
"content",
|
"files": [
|
||||||
"asset_imports"
|
|
||||||
],
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.qml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "content",
|
||||||
|
"files": [
|
||||||
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.js",
|
||||||
|
"*.ts"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "imports",
|
||||||
|
"files": [
|
||||||
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.js",
|
||||||
|
"*.ts"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "content",
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
@@ -51,54 +57,72 @@
|
|||||||
".ktx"
|
".ktx"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"javaScript": {
|
{
|
||||||
"directories": [
|
"directory": "asset_imports",
|
||||||
"content",
|
|
||||||
"imports"
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.js",
|
"*.jpeg",
|
||||||
"*.ts"
|
"*.jpg",
|
||||||
|
"*.png",
|
||||||
|
"*.svg",
|
||||||
|
"*.hdr",
|
||||||
|
".ktx"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"meshes": {
|
{
|
||||||
"directories": [
|
"directory": "",
|
||||||
"asset_imports"
|
"files": [
|
||||||
|
"qtquickcontrols2.conf"
|
||||||
],
|
],
|
||||||
|
"filters": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "",
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.mesh"
|
"*.conf"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"qml": {
|
{
|
||||||
"directories": [
|
"directory": ".",
|
||||||
"content",
|
|
||||||
"imports",
|
|
||||||
"asset_imports"
|
|
||||||
],
|
|
||||||
"files": [
|
|
||||||
],
|
|
||||||
"filters": [
|
|
||||||
"*.qml"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"qmldir": {
|
|
||||||
"directories": [
|
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"qmldir"
|
"qmldir"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"shader": {
|
{
|
||||||
"directories": [
|
"directory": "",
|
||||||
"."
|
"files": [
|
||||||
],
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.ttf",
|
||||||
|
"*.otf",
|
||||||
|
"*.ctf"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "",
|
||||||
|
"files": [
|
||||||
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.wav",
|
||||||
|
"*.mp3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "",
|
||||||
|
"files": [
|
||||||
|
],
|
||||||
|
"filters": [
|
||||||
|
"*.mp4"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"directory": "",
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
@@ -112,28 +136,23 @@
|
|||||||
"*.trag"
|
"*.trag"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"sound": {
|
{
|
||||||
"directories": [
|
"directory": "asset_imports",
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.mp3",
|
"*.mesh"
|
||||||
"*.wav"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"video": {
|
{
|
||||||
"directories": [
|
"directory": "asset_imports",
|
||||||
"."
|
|
||||||
],
|
|
||||||
"files": [
|
"files": [
|
||||||
],
|
],
|
||||||
"filters": [
|
"filters": [
|
||||||
"*.mp4"
|
"*.qml"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
],
|
||||||
"fileVersion": 1,
|
"fileVersion": 1,
|
||||||
"importPaths": [
|
"importPaths": [
|
||||||
"imports",
|
"imports",
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
// Copyright (C) 2023 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
// clazy:excludeall=non-pod-global-static
|
||||||
|
|
||||||
#include "../utils/google-using-declarations.h"
|
#include "../utils/google-using-declarations.h"
|
||||||
#include "../utils/googletest.h" // IWYU pragma: keep
|
#include "../utils/googletest.h" // IWYU pragma: keep
|
||||||
|
|
||||||
@@ -44,15 +46,14 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static inline std::unique_ptr<const QmlProjectManager::QmlProjectItem> projectItemEmpty;
|
inline static std::unique_ptr<const QmlProjectManager::QmlProjectItem> projectItemEmpty;
|
||||||
static inline std::unique_ptr<const QmlProjectManager::QmlProjectItem> projectItemWithQdsPrefix;
|
inline static std::unique_ptr<const QmlProjectManager::QmlProjectItem> projectItemWithQdsPrefix;
|
||||||
static inline std::unique_ptr<const QmlProjectManager::QmlProjectItem>
|
inline static std::unique_ptr<const QmlProjectManager::QmlProjectItem> projectItemWithoutQdsPrefix;
|
||||||
projectItemWithoutQdsPrefix;
|
|
||||||
std::unique_ptr<QmlProjectManager::QmlProjectItem> projectItemSetters = std::make_unique<
|
std::unique_ptr<QmlProjectManager::QmlProjectItem> projectItemSetters = std::make_unique<
|
||||||
QmlProjectManager::QmlProjectItem>(Utils::FilePath::fromString(
|
QmlProjectManager::QmlProjectItem>(Utils::FilePath::fromString(
|
||||||
localTestDataDir + "/getter-setter/empty.qmlproject"),
|
localTestDataDir + "/getter-setter/empty.qmlproject"),
|
||||||
true);
|
true);
|
||||||
static inline std::unique_ptr<const QmlProjectManager::QmlProjectItem> projectItemFileFilters;
|
inline static std::unique_ptr<const QmlProjectManager::QmlProjectItem> projectItemFileFilters;
|
||||||
};
|
};
|
||||||
|
|
||||||
auto createAbsoluteFilePaths(const QStringList &fileList)
|
auto createAbsoluteFilePaths(const QStringList &fileList)
|
||||||
|
|||||||
Reference in New Issue
Block a user