Merge remote-tracking branch 'origin/8.0'

Conflicts:
	src/plugins/qmldesigner/qmldesignerprojectmanager.cpp

Change-Id: I5106bb632c2a3a144287097137be45b0894b9ee4
This commit is contained in:
Eike Ziller
2022-07-04 08:29:53 +02:00
272 changed files with 3873 additions and 1333 deletions
@@ -4,7 +4,7 @@ if(APPLE)
elseif(UNIX)
set(plugin_output_name "libtest")
else()
set(plugin_output_name "testd")
set(plugin_output_name "test$<$<CONFIG:Debug>:d>")
endif()
file(RELATIVE_PATH TEST_PLUGIN_PATH ${QtCreator_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
@@ -1152,6 +1152,102 @@ void tst_TestCore::testRewriterTransactionAddingAfterReparenting()
}
}
void tst_TestCore::testRewriterReparentToNewNode()
{
const QLatin1String qmlString("\n"
"import QtQuick 2.0\n"
"\n"
"Item {\n"
" Item {}\n"
" Item {}\n"
" Item {}\n"
" Item {}\n"
"}\n");
QPlainTextEdit textEdit;
textEdit.setPlainText(qmlString);
NotIndentingTextEditModifier modifier(&textEdit);
QScopedPointer<Model> model(Model::create("QtQuick.Rectangle"));
QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView(0, RewriterView::Amend));
testRewriterView->setTextModifier(&modifier);
model->attachView(testRewriterView.data());
QVERIFY(testRewriterView->errors().isEmpty());
ModelNode rootModelNode = testRewriterView->rootModelNode();
QVERIFY(rootModelNode.isValid());
const QList<ModelNode> children = rootModelNode.directSubModelNodes();
ModelNode rectangle = testRewriterView->createModelNode("QtQuick.Rectangle");
rootModelNode.nodeListProperty("data").reparentHere(rectangle);
rectangle.setIdWithoutRefactoring("newParent");
QVERIFY(rectangle.isValid());
for (const ModelNode &child : children)
rectangle.nodeListProperty("data").reparentHere(child);
{
RewriterTransaction transaction = testRewriterView->beginRewriterTransaction("TEST");
ModelNode rectangle = testRewriterView->createModelNode("QtQuick.Rectangle");
rootModelNode.nodeListProperty("data").reparentHere(rectangle);
rectangle.setIdWithoutRefactoring("newParent2");
for (const ModelNode &child : children)
rectangle.nodeListProperty("data").reparentHere(child);
}
QCOMPARE(testRewriterView->allModelNodes().count(), 7);
const QLatin1String expectedOutcome("\nimport QtQuick 2.0\n\n"
"Item {\n\n"
" Rectangle {\n"
" id: newParent\n"
" }\n\n"
" Rectangle {\n"
" id: newParent2\n"
" Item {\n"
" }\n\n"
" Item {\n"
" }\n\n"
" Item {\n"
" }\n\n"
" Item {\n"
" }\n"
" }\n}\n");
QCOMPARE(textEdit.toPlainText(), expectedOutcome);
rectangle.destroy();
QCOMPARE(testRewriterView->allModelNodes().count(), 6);
{
RewriterTransaction transaction = testRewriterView->beginRewriterTransaction("TEST");
ModelNode newChild = testRewriterView->createModelNode("QtQuick.Rectangle");
rootModelNode.nodeListProperty("data").reparentHere(newChild);
newChild.setIdWithoutRefactoring("newChild");
ModelNode newParent = testRewriterView->createModelNode("QtQuick.Rectangle");
rootModelNode.nodeListProperty("data").reparentHere(newParent);
newParent.setIdWithoutRefactoring("newParent3");
for (const ModelNode &child : children)
newParent.nodeListProperty("data").reparentHere(child);
newParent.nodeListProperty("data").reparentHere(newChild);
}
QCOMPARE(testRewriterView->allModelNodes().count(), 8);
}
void tst_TestCore::testRewriterForGradientMagic()
{
const QLatin1String qmlString("\n"
@@ -144,6 +144,7 @@ private slots:
void testRewriterChangeImports();
void testRewriterUnicodeChars();
void testRewriterTransactionAddingAfterReparenting();
void testRewriterReparentToNewNode();
//
// unit tests QmlModelNodeFacade/QmlModelState
@@ -8,7 +8,6 @@ add_qtc_test(tst_qml_wizard
DEPENDS Core Utils StudioWelcome ProjectExplorer QmlDesigner Googletest
DEFINES
QT_CREATOR
QMLDESIGNER_TEST
IDE_PLUGIN_PATH="${PROJECT_BINARY_DIR}/${IDE_PLUGIN_PATH}"
IDE_DATA_PATH="${PROJECT_BINARY_DIR}/${IDE_DATA_PATH}"
TESTSRCDIR="${CMAKE_CURRENT_SOURCE_DIR}"