forked from qt-creator/qt-creator
QmlDesigner: Fix alias property
QmlDocumentParser was using the wrong constructor. The property alias constructor is now explicit. Task-number: QDS-15387 Change-Id: I753cbc259b21129865db54926f77a07391224b77 Reviewed-by: Marco Bubke <marco.bubke@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Marco Bubke
parent
ee011dc19c
commit
8839b73420
@@ -848,15 +848,15 @@ public:
|
|||||||
explicit PropertyDeclaration(::Utils::SmallStringView name,
|
explicit PropertyDeclaration(::Utils::SmallStringView name,
|
||||||
ImportedTypeName typeName,
|
ImportedTypeName typeName,
|
||||||
PropertyDeclarationTraits traits,
|
PropertyDeclarationTraits traits,
|
||||||
|
PropertyKind kind,
|
||||||
::Utils::SmallStringView aliasPropertyName,
|
::Utils::SmallStringView aliasPropertyName,
|
||||||
::Utils::SmallStringView aliasPropertyNameTail = {})
|
::Utils::SmallStringView aliasPropertyNameTail = {})
|
||||||
: name{name}
|
: name{name}
|
||||||
, typeName{std::move(typeName)}
|
, typeName{std::move(typeName)}
|
||||||
, aliasPropertyName{aliasPropertyName}
|
, aliasPropertyName{aliasPropertyName}
|
||||||
, aliasPropertyNameTail{aliasPropertyNameTail}
|
, aliasPropertyNameTail{aliasPropertyNameTail}
|
||||||
|
|
||||||
, traits{traits}
|
, traits{traits}
|
||||||
, kind{PropertyKind::Property}
|
, kind{kind}
|
||||||
{}
|
{}
|
||||||
|
|
||||||
explicit PropertyDeclaration(::Utils::SmallStringView name,
|
explicit PropertyDeclaration(::Utils::SmallStringView name,
|
||||||
|
@@ -240,6 +240,7 @@ void addPropertyDeclarations(Storage::Synchronization::Type &type,
|
|||||||
type.propertyDeclarations.emplace_back(Utils::SmallString{propertyDeclaration.name},
|
type.propertyDeclarations.emplace_back(Utils::SmallString{propertyDeclaration.name},
|
||||||
std::move(importedTypeName),
|
std::move(importedTypeName),
|
||||||
traits,
|
traits,
|
||||||
|
Synchronization::PropertyKind::Alias,
|
||||||
aliasPropertyName,
|
aliasPropertyName,
|
||||||
aliasPropertyNameTail);
|
aliasPropertyNameTail);
|
||||||
}
|
}
|
||||||
|
@@ -923,13 +923,28 @@ std::ostream &operator<<(std::ostream &out, const Type &type)
|
|||||||
<< ",\n\t\t\tdefault: " << type.defaultPropertyName << "\n\t\t\t)";
|
<< ",\n\t\t\tdefault: " << type.defaultPropertyName << "\n\t\t\t)";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::ostream &operator<<(std::ostream &out, PropertyKind kind)
|
||||||
|
|
||||||
|
{
|
||||||
|
switch (kind) {
|
||||||
|
case PropertyKind::Property:
|
||||||
|
out << "Property";
|
||||||
|
break;
|
||||||
|
case PropertyKind::Alias:
|
||||||
|
out << "Alias";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
std::ostream &operator<<(std::ostream &out, const PropertyDeclaration &propertyDeclaration)
|
std::ostream &operator<<(std::ostream &out, const PropertyDeclaration &propertyDeclaration)
|
||||||
{
|
{
|
||||||
using Utils::operator<<;
|
using Utils::operator<<;
|
||||||
return out << "(\"" << propertyDeclaration.name << "\", " << propertyDeclaration.typeName
|
return out << "(\"" << propertyDeclaration.name << "\", " << propertyDeclaration.typeName
|
||||||
<< ", " << propertyDeclaration.typeId << ", " << propertyDeclaration.traits << ", "
|
<< ", " << propertyDeclaration.typeId << ", " << propertyDeclaration.traits << ", "
|
||||||
<< propertyDeclaration.propertyTypeId << ", \""
|
<< propertyDeclaration.propertyTypeId << ", \""
|
||||||
<< propertyDeclaration.aliasPropertyName << "\")";
|
<< propertyDeclaration.aliasPropertyName << "\", " << propertyDeclaration.kind << ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ostream &operator<<(std::ostream &out, const FunctionDeclaration &functionDeclaration)
|
std::ostream &operator<<(std::ostream &out, const FunctionDeclaration &functionDeclaration)
|
||||||
|
@@ -50,8 +50,8 @@ MATCHER_P4(IsAliasPropertyDeclaration,
|
|||||||
traits,
|
traits,
|
||||||
aliasPropertyName,
|
aliasPropertyName,
|
||||||
std::string(negation ? "isn't " : "is ")
|
std::string(negation ? "isn't " : "is ")
|
||||||
+ PrintToString(
|
+ PrintToString(Synchronization::PropertyDeclaration{
|
||||||
Synchronization::PropertyDeclaration{name, typeName, traits, aliasPropertyName}))
|
name, typeName, traits, Synchronization::PropertyKind::Alias, aliasPropertyName, {}}))
|
||||||
{
|
{
|
||||||
const Synchronization::PropertyDeclaration &propertyDeclaration = arg;
|
const Synchronization::PropertyDeclaration &propertyDeclaration = arg;
|
||||||
|
|
||||||
@@ -59,7 +59,8 @@ MATCHER_P4(IsAliasPropertyDeclaration,
|
|||||||
&& Synchronization::ImportedTypeName{typeName} == propertyDeclaration.typeName
|
&& Synchronization::ImportedTypeName{typeName} == propertyDeclaration.typeName
|
||||||
&& propertyDeclaration.traits == traits
|
&& propertyDeclaration.traits == traits
|
||||||
&& propertyDeclaration.aliasPropertyName == aliasPropertyName
|
&& propertyDeclaration.aliasPropertyName == aliasPropertyName
|
||||||
&& propertyDeclaration.aliasPropertyNameTail.empty();
|
&& propertyDeclaration.aliasPropertyNameTail.empty()
|
||||||
|
&& propertyDeclaration.kind == Synchronization::PropertyKind::Alias;
|
||||||
}
|
}
|
||||||
|
|
||||||
MATCHER_P5(IsAliasPropertyDeclaration,
|
MATCHER_P5(IsAliasPropertyDeclaration,
|
||||||
@@ -69,8 +70,12 @@ MATCHER_P5(IsAliasPropertyDeclaration,
|
|||||||
aliasPropertyName,
|
aliasPropertyName,
|
||||||
aliasPropertyNameTail,
|
aliasPropertyNameTail,
|
||||||
std::string(negation ? "isn't " : "is ")
|
std::string(negation ? "isn't " : "is ")
|
||||||
+ PrintToString(
|
+ PrintToString(Synchronization::PropertyDeclaration{name,
|
||||||
Synchronization::PropertyDeclaration{name, typeName, traits, aliasPropertyName}))
|
typeName,
|
||||||
|
traits,
|
||||||
|
Synchronization::PropertyKind::Alias,
|
||||||
|
aliasPropertyName,
|
||||||
|
aliasPropertyNameTail}))
|
||||||
{
|
{
|
||||||
const Synchronization::PropertyDeclaration &propertyDeclaration = arg;
|
const Synchronization::PropertyDeclaration &propertyDeclaration = arg;
|
||||||
|
|
||||||
@@ -78,7 +83,8 @@ MATCHER_P5(IsAliasPropertyDeclaration,
|
|||||||
&& Synchronization::ImportedTypeName{typeName} == propertyDeclaration.typeName
|
&& Synchronization::ImportedTypeName{typeName} == propertyDeclaration.typeName
|
||||||
&& propertyDeclaration.traits == traits
|
&& propertyDeclaration.traits == traits
|
||||||
&& propertyDeclaration.aliasPropertyName == aliasPropertyName
|
&& propertyDeclaration.aliasPropertyName == aliasPropertyName
|
||||||
&& propertyDeclaration.aliasPropertyNameTail == aliasPropertyNameTail;
|
&& propertyDeclaration.aliasPropertyNameTail == aliasPropertyNameTail
|
||||||
|
&& propertyDeclaration.kind == Synchronization::PropertyKind::Alias;
|
||||||
}
|
}
|
||||||
|
|
||||||
MATCHER_P2(IsFunctionDeclaration,
|
MATCHER_P2(IsFunctionDeclaration,
|
||||||
|
Reference in New Issue
Block a user