forked from qt-creator/qt-creator
ModelNode: Set type id when node type changes
Fixes: QDS-14946 Change-Id: If5c98db8b2e677a1fd5ad24671bfedda1348a968 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
@@ -104,7 +104,7 @@ public:
|
|||||||
|
|
||||||
NodeAbstractProperty parentProperty() const;
|
NodeAbstractProperty parentProperty() const;
|
||||||
void setParentProperty(NodeAbstractProperty parent);
|
void setParentProperty(NodeAbstractProperty parent);
|
||||||
void changeType(const TypeName &typeName, int majorVersion, int minorVersion);
|
void changeType(const TypeName &typeName, int majorVersion = -1, int minorVersion = -1);
|
||||||
void setParentProperty(const ModelNode &newParentNode, const PropertyName &propertyName);
|
void setParentProperty(const ModelNode &newParentNode, const PropertyName &propertyName);
|
||||||
bool hasParentProperty() const;
|
bool hasParentProperty() const;
|
||||||
|
|
||||||
|
@@ -303,6 +303,7 @@ void ModelPrivate::changeNodeType(const InternalNodePointer &node, const TypeNam
|
|||||||
node->typeName = typeName;
|
node->typeName = typeName;
|
||||||
node->majorVersion = majorVersion;
|
node->majorVersion = majorVersion;
|
||||||
node->minorVersion = minorVersion;
|
node->minorVersion = minorVersion;
|
||||||
|
setTypeId(node.get(), typeName);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
notifyNodeTypeChanged(node, typeName, majorVersion, minorVersion);
|
notifyNodeTypeChanged(node, typeName, majorVersion, minorVersion);
|
||||||
|
@@ -1066,6 +1066,18 @@ TEST_F(Model_Node, create_qualified_model_node_has_meta_info)
|
|||||||
ASSERT_THAT(node.metaInfo(), model.qtQmlModelsListModelMetaInfo());
|
ASSERT_THAT(node.metaInfo(), model.qtQmlModelsListModelMetaInfo());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(Model_Node, change_node_type_changes_meta_info)
|
||||||
|
{
|
||||||
|
projectStorageMock.createImportedTypeNameId(filePathId,
|
||||||
|
"QtObject",
|
||||||
|
model.qmlQtObjectMetaInfo().id());
|
||||||
|
auto node = model.createModelNode("Item");
|
||||||
|
|
||||||
|
node.changeType("QtObject");
|
||||||
|
|
||||||
|
ASSERT_THAT(node.metaInfo(), model.qmlQtObjectMetaInfo());
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(Model_Node, change_root_node_type_changes_meta_info)
|
TEST_F(Model_Node, change_root_node_type_changes_meta_info)
|
||||||
{
|
{
|
||||||
projectStorageMock.createImportedTypeNameId(filePathId,
|
projectStorageMock.createImportedTypeNameId(filePathId,
|
||||||
|
Reference in New Issue
Block a user