forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/8.0'
Conflicts: src/plugins/qmldesigner/qmldesignerprojectmanager.cpp Change-Id: I5106bb632c2a3a144287097137be45b0894b9ee4
This commit is contained in:
@@ -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}"
|
||||
|
||||
Reference in New Issue
Block a user