forked from qt-creator/qt-creator
QmlDesigner: Fix project file getter/setter issues
Task-number: QDS-9781 Change-Id: I2df8cca1c4e5cd10563621b849fb54b29c0d155d (cherry picked from commit d5847e9e115a1b4a0bf36cea652724fdaeda28c3) Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Tim Jenssen
parent
f4dbbaabc6
commit
cadca7212e
@@ -135,7 +135,7 @@ QString jsonToQmlProject(const QJsonObject &rootObject)
|
|||||||
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["qtQuick"].toString().startsWith("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());
|
||||||
@@ -217,6 +217,7 @@ QJsonObject qmlProjectTojson(const Utils::FilePath &projectFile)
|
|||||||
for (const QString &propName : rootNode->propertyNames()) {
|
for (const QString &propName : rootNode->propertyNames()) {
|
||||||
QJsonObject *currentObj = &rootObject;
|
QJsonObject *currentObj = &rootObject;
|
||||||
QString objKey = propName;
|
QString objKey = propName;
|
||||||
|
QJsonValue value = rootNode->property(propName).value.toJsonValue();
|
||||||
|
|
||||||
if (propName.contains("language", Qt::CaseInsensitive)) {
|
if (propName.contains("language", Qt::CaseInsensitive)) {
|
||||||
currentObj = &languageObject;
|
currentObj = &languageObject;
|
||||||
@@ -240,11 +241,12 @@ QJsonObject qmlProjectTojson(const Utils::FilePath &projectFile)
|
|||||||
currentObj = &mcuObject;
|
currentObj = &mcuObject;
|
||||||
objKey = "mcuEnabled";
|
objKey = "mcuEnabled";
|
||||||
} else if (propName.contains("qt6project", Qt::CaseInsensitive)) {
|
} else if (propName.contains("qt6project", Qt::CaseInsensitive)) {
|
||||||
// we are skipping these ones in the new json format
|
currentObj = &versionObject;
|
||||||
continue;
|
objKey = "qt";
|
||||||
|
value = rootNode->property(propName).value.toBool() ? "6" : "5";
|
||||||
}
|
}
|
||||||
|
|
||||||
currentObj->insert(objKey, rootNode->property(propName).value.toJsonValue());
|
currentObj->insert(objKey, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// add missing non-object props if any
|
// add missing non-object props if any
|
||||||
@@ -252,6 +254,10 @@ QJsonObject qmlProjectTojson(const Utils::FilePath &projectFile)
|
|||||||
runConfigObject.insert("fileSelectors", QJsonArray{});
|
runConfigObject.insert("fileSelectors", QJsonArray{});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!versionObject.contains("qt")) {
|
||||||
|
versionObject.insert("qt", "5");
|
||||||
|
}
|
||||||
|
|
||||||
// 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)) {
|
||||||
|
@@ -131,9 +131,40 @@ QJsonObject QmlProjectItem::project() const
|
|||||||
return m_project;
|
return m_project;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QmlProjectItem::isQt6Project() const
|
QString QmlProjectItem::versionQt() const
|
||||||
{
|
{
|
||||||
return m_project["versions"].toObject()["qtQuick"].toString().startsWith("6.");
|
return m_project["versions"].toObject()["qt"].toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QmlProjectItem::setVersionQt(const QString &version)
|
||||||
|
{
|
||||||
|
QJsonObject targetObj = m_project["versions"].toObject();
|
||||||
|
targetObj["qt"] = version;
|
||||||
|
insertAndUpdateProjectFile("versions", targetObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString QmlProjectItem::versionQtQuick() const
|
||||||
|
{
|
||||||
|
return m_project["versions"].toObject()["qtQuick"].toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QmlProjectItem::setVersionQtQuick(const QString &version)
|
||||||
|
{
|
||||||
|
QJsonObject targetObj = m_project["versions"].toObject();
|
||||||
|
targetObj["qtQuick"] = version;
|
||||||
|
insertAndUpdateProjectFile("versions", targetObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString QmlProjectItem::versionDesignStudio() const
|
||||||
|
{
|
||||||
|
return m_project["versions"].toObject()["designStudio"].toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QmlProjectItem::setVersionDesignStudio(const QString &version)
|
||||||
|
{
|
||||||
|
QJsonObject targetObj = m_project["versions"].toObject();
|
||||||
|
targetObj["designStudio"] = version;
|
||||||
|
insertAndUpdateProjectFile("versions", targetObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList QmlProjectItem::importPaths() const
|
QStringList QmlProjectItem::importPaths() const
|
||||||
|
@@ -29,7 +29,16 @@ public:
|
|||||||
explicit QmlProjectItem(const Utils::FilePath &filePath);
|
explicit QmlProjectItem(const Utils::FilePath &filePath);
|
||||||
|
|
||||||
bool isQt4McuProject() const;
|
bool isQt4McuProject() const;
|
||||||
bool isQt6Project() const;
|
|
||||||
|
|
||||||
|
QString versionQt() const;
|
||||||
|
void setVersionQt(const QString &version);
|
||||||
|
|
||||||
|
QString versionQtQuick() const;
|
||||||
|
void setVersionQtQuick(const QString &version);
|
||||||
|
|
||||||
|
QString versionDesignStudio() const;
|
||||||
|
void setVersionDesignStudio(const QString &version);
|
||||||
|
|
||||||
Utils::FilePath sourceDirectory() const;
|
Utils::FilePath sourceDirectory() const;
|
||||||
QString targetDirectory() const;
|
QString targetDirectory() const;
|
||||||
|
@@ -484,7 +484,7 @@ bool QmlBuildSystem::qtForMCUs() const
|
|||||||
|
|
||||||
bool QmlBuildSystem::qt6Project() const
|
bool QmlBuildSystem::qt6Project() const
|
||||||
{
|
{
|
||||||
return m_projectItem->isQt6Project();
|
return m_projectItem->versionQt() == "6";
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::EnvironmentItems QmlBuildSystem::environment() const
|
Utils::EnvironmentItems QmlBuildSystem::environment() const
|
||||||
@@ -547,4 +547,19 @@ Utils::FilePaths QmlBuildSystem::files() const
|
|||||||
return m_projectItem->files();
|
return m_projectItem->files();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString QmlBuildSystem::versionQt() const
|
||||||
|
{
|
||||||
|
return m_projectItem->versionQt();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString QmlBuildSystem::versionQtQuick() const
|
||||||
|
{
|
||||||
|
return m_projectItem->versionQtQuick();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString QmlBuildSystem::versionDesignStudio() const
|
||||||
|
{
|
||||||
|
return m_projectItem->versionDesignStudio();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace QmlProjectManager
|
} // namespace QmlProjectManager
|
||||||
|
@@ -81,6 +81,10 @@ public:
|
|||||||
QStringList importPaths() const;
|
QStringList importPaths() const;
|
||||||
Utils::FilePaths files() const;
|
Utils::FilePaths files() const;
|
||||||
|
|
||||||
|
QString versionQt() const;
|
||||||
|
QString versionQtQuick() const;
|
||||||
|
QString versionDesignStudio() const;
|
||||||
|
|
||||||
bool addFiles(const QStringList &filePaths);
|
bool addFiles(const QStringList &filePaths);
|
||||||
void refreshProjectFile();
|
void refreshProjectFile();
|
||||||
|
|
||||||
|
@@ -171,6 +171,7 @@
|
|||||||
},
|
},
|
||||||
"versions": {
|
"versions": {
|
||||||
"designStudio": "4.0",
|
"designStudio": "4.0",
|
||||||
|
"qt": "6",
|
||||||
"qtQuick": "6.2"
|
"qtQuick": "6.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -12,7 +12,7 @@ Project {
|
|||||||
|
|
||||||
qdsVersion: "3.9"
|
qdsVersion: "3.9"
|
||||||
quickVersion: ""
|
quickVersion: ""
|
||||||
qt6Project: false
|
qt6Project: true
|
||||||
qtForMCUs: true
|
qtForMCUs: true
|
||||||
|
|
||||||
multilanguageSupport: true
|
multilanguageSupport: true
|
||||||
|
@@ -168,6 +168,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"versions": {
|
"versions": {
|
||||||
"designStudio": "3.9"
|
"designStudio": "3.9",
|
||||||
|
"qt": "6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -12,7 +12,7 @@ Project {
|
|||||||
|
|
||||||
qdsVersion: "3.0"
|
qdsVersion: "3.0"
|
||||||
quickVersion: ""
|
quickVersion: ""
|
||||||
qt6Project: false
|
qt6Project: true
|
||||||
qtForMCUs: true
|
qtForMCUs: true
|
||||||
|
|
||||||
multilanguageSupport: true
|
multilanguageSupport: true
|
||||||
|
@@ -155,6 +155,7 @@
|
|||||||
"shaderTool": {
|
"shaderTool": {
|
||||||
},
|
},
|
||||||
"versions": {
|
"versions": {
|
||||||
"designStudio": "3.0"
|
"designStudio": "3.0",
|
||||||
|
"qt": "6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -12,7 +12,7 @@ Project {
|
|||||||
|
|
||||||
qdsVersion: ""
|
qdsVersion: ""
|
||||||
quickVersion: ""
|
quickVersion: ""
|
||||||
qt6Project: false
|
qt6Project: true
|
||||||
qtForMCUs: true
|
qtForMCUs: true
|
||||||
|
|
||||||
multilanguageSupport: false
|
multilanguageSupport: false
|
||||||
|
@@ -109,5 +109,6 @@
|
|||||||
"shaderTool": {
|
"shaderTool": {
|
||||||
},
|
},
|
||||||
"versions": {
|
"versions": {
|
||||||
|
"qt": "6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -86,5 +86,6 @@
|
|||||||
"shaderTool": {
|
"shaderTool": {
|
||||||
},
|
},
|
||||||
"versions": {
|
"versions": {
|
||||||
|
"qt": "5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,10 +34,22 @@ TEST(QmlProjectProjectItemGetterTests, GetMcuProject)
|
|||||||
ASSERT_EQ(dataSet.projectItem2.isQt4McuProject(), false);
|
ASSERT_EQ(dataSet.projectItem2.isQt4McuProject(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(QmlProjectProjectItemGetterTests, GetQt6Project)
|
TEST(QmlProjectProjectItemGetterTests, GetQtVersion)
|
||||||
{
|
{
|
||||||
ASSERT_EQ(dataSet.projectItem1.isQt6Project(), true);
|
ASSERT_EQ(dataSet.projectItem1.versionQt(), "6");
|
||||||
ASSERT_EQ(dataSet.projectItem2.isQt6Project(), false);
|
ASSERT_EQ(dataSet.projectItem2.versionQt(), "5");
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(QmlProjectProjectItemGetterTests, GetQtQuickVersion)
|
||||||
|
{
|
||||||
|
ASSERT_EQ(dataSet.projectItem1.versionQtQuick(), "6.2");
|
||||||
|
ASSERT_EQ(dataSet.projectItem2.versionQtQuick(), QString());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(QmlProjectProjectItemGetterTests, GetDesignStudioVersion)
|
||||||
|
{
|
||||||
|
ASSERT_EQ(dataSet.projectItem1.versionDesignStudio(), "3.9");
|
||||||
|
ASSERT_EQ(dataSet.projectItem2.versionDesignStudio(), QString());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(QmlProjectProjectItemGetterTests, GetSourceDirectory)
|
TEST(QmlProjectProjectItemGetterTests, GetSourceDirectory)
|
||||||
|
@@ -114,6 +114,24 @@ TEST(QmlProjectProjectItemSetterTests, SetForceFreeType)
|
|||||||
testerTemplate<bool>(&QmlProjectItem::setForceFreeType, &QmlProjectItem::forceFreeType, false);
|
testerTemplate<bool>(&QmlProjectItem::setForceFreeType, &QmlProjectItem::forceFreeType, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(QmlProjectProjectItemSetterTests, SetQtVersion)
|
||||||
|
{
|
||||||
|
testerTemplate<QString>(&QmlProjectItem::setVersionQt, &QmlProjectItem::versionQt, "6");
|
||||||
|
testerTemplate<QString>(&QmlProjectItem::setVersionQt, &QmlProjectItem::versionQt, "5.3");
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(QmlProjectProjectItemSetterTests, SetQtQuickVersion)
|
||||||
|
{
|
||||||
|
testerTemplate<QString>(&QmlProjectItem::setVersionQtQuick, &QmlProjectItem::versionQtQuick, "6");
|
||||||
|
testerTemplate<QString>(&QmlProjectItem::setVersionQtQuick, &QmlProjectItem::versionQtQuick, "5.3");
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(QmlProjectProjectItemSetterTests, SetDesignStudio)
|
||||||
|
{
|
||||||
|
testerTemplate<QString>(&QmlProjectItem::setVersionDesignStudio, &QmlProjectItem::versionDesignStudio, "6");
|
||||||
|
testerTemplate<QString>(&QmlProjectItem::setVersionDesignStudio, &QmlProjectItem::versionDesignStudio, "5.3");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
TEST(QmlProjectProjectItemSetterTests, SetEnvironment)
|
TEST(QmlProjectProjectItemSetterTests, SetEnvironment)
|
||||||
{
|
{
|
||||||
@@ -129,13 +147,6 @@ TEST(QmlProjectProjectItemSetterTests, SetEnvironment)
|
|||||||
// ASSERT_EQ(dataSet.projectItem2.isQt4McuProject(), false);
|
// ASSERT_EQ(dataSet.projectItem2.isQt4McuProject(), false);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
// not available as of now
|
|
||||||
//TEST(QmlProjectProjectItemSetterTests, SetQt6Project)
|
|
||||||
//{
|
|
||||||
// ASSERT_EQ(dataSet.projectItem1.isQt6Project(), true);
|
|
||||||
// ASSERT_EQ(dataSet.projectItem2.isQt6Project(), false);
|
|
||||||
//}
|
|
||||||
|
|
||||||
// not available as of now
|
// not available as of now
|
||||||
//TEST(QmlProjectProjectItemSetterTests, SetSourceDirectory)
|
//TEST(QmlProjectProjectItemSetterTests, SetSourceDirectory)
|
||||||
//{
|
//{
|
||||||
|
Reference in New Issue
Block a user