qmllint: Complain about "target" when complaining about PropertyChanges
You should remove the binding on the target property, too, after rephrasing the binding. Pick-to: 6.7 6.6 6.5 Fixes: QTBUG-113695 Change-Id: I917f506c932605ae5851ae09f4383af59a3cae1e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
This commit is contained in:
parent
14b93596a7
commit
7bc52d660c
|
@ -750,11 +750,13 @@ void PropertyChangesValidatorPass::run(const QQmlSA::Element &element)
|
|||
return;
|
||||
|
||||
QString targetId = u"<id>"_s;
|
||||
const QString targetBinding = sourceCode(target.value().sourceLocation());
|
||||
const auto targetLocation = target.value().sourceLocation();
|
||||
const QString targetBinding = sourceCode(targetLocation);
|
||||
const QQmlSA::Element targetElement = resolveIdToElement(targetBinding, element);
|
||||
if (!targetElement.isNull())
|
||||
targetId = targetBinding;
|
||||
|
||||
bool hadCustomParsedBindings = false;
|
||||
for (auto it = bindings.constBegin(); it != bindings.constEnd(); ++it) {
|
||||
const auto &propertyName = it.key();
|
||||
const auto &propertyBinding = it.value();
|
||||
|
@ -773,11 +775,18 @@ void PropertyChangesValidatorPass::run(const QQmlSA::Element &element)
|
|||
if (binding.length() > 16)
|
||||
binding = binding.left(13) + "..."_L1;
|
||||
|
||||
hadCustomParsedBindings = true;
|
||||
emitWarning("Property \"%1\" is custom-parsed in PropertyChanges. "
|
||||
"You should phrase this binding as \"%2.%1: %3\""_L1.arg(propertyName, targetId,
|
||||
binding),
|
||||
quickPropertyChangesParsed, bindingLocation);
|
||||
}
|
||||
|
||||
if (hadCustomParsedBindings && !targetElement.isNull()) {
|
||||
emitWarning("You should remove any bindings on the \"target\" property and avoid "
|
||||
"custom-parsed bindings in PropertyChanges.",
|
||||
quickPropertyChangesParsed, targetLocation);
|
||||
}
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
@ -2058,6 +2058,11 @@ void TestQmllint::quickPlugin()
|
|||
"You should phrase this binding as \"foo.myColor: Qt.rgba(0.5, ...\""_s,
|
||||
12, 30
|
||||
},
|
||||
Message {
|
||||
u"You should remove any bindings on the \"target\" property and avoid "
|
||||
"custom-parsed bindings in PropertyChanges."_s,
|
||||
11, 29
|
||||
},
|
||||
Message {
|
||||
u"Unknown property \"notThere\" in PropertyChanges."_s,
|
||||
13, 31
|
||||
|
|
Loading…
Reference in New Issue