diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index 34d7ac95f9e9d7dbdfd70d40ac9ddcebc3e5ef44..caf472a12f52eea53ab462331e20dc972e7dd141 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -2026,11 +2026,14 @@ bool ASTObjectValue::getSourceLocation(QString *fileName, int *line, int *column void ASTObjectValue::processMembers(MemberProcessor *processor) const { - foreach (ASTPropertyReference *ref, _properties) + foreach (ASTPropertyReference *ref, _properties) { processor->processProperty(ref->ast()->name->asString(), ref); + // ### Should get a different value? + processor->processGeneratedSlot(ref->onChangedSlotName(), ref); + } foreach (ASTSignalReference *ref, _signals) { - // ### These two should get different values? processor->processSignal(ref->ast()->name->asString(), ref); + // ### Should get a different value? processor->processGeneratedSlot(ref->slotName(), ref); } @@ -2125,6 +2128,11 @@ const Value *QmlPrototypeReference::value(Context *context) const ASTPropertyReference::ASTPropertyReference(UiPublicMember *ast, const QmlJS::Document *doc, Engine *engine) : Reference(engine), _ast(ast), _doc(doc) { + const QString propertyName = ast->name->asString(); + _onChangedSlotName = QLatin1String("on"); + _onChangedSlotName += propertyName.at(0).toUpper(); + _onChangedSlotName += propertyName.midRef(1); + _onChangedSlotName += QLatin1String("Changed"); } ASTPropertyReference::~ASTPropertyReference() diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h index 0df1d9cdb229adfc0426f96e76e9858528e75f2d..8f0fa51532f06290c42a25f1a0f97f73a53b27c7 100644 --- a/src/libs/qmljs/qmljsinterpreter.h +++ b/src/libs/qmljs/qmljsinterpreter.h @@ -685,12 +685,14 @@ class QMLJS_EXPORT ASTPropertyReference: public Reference { AST::UiPublicMember *_ast; const Document *_doc; + QString _onChangedSlotName; public: ASTPropertyReference(AST::UiPublicMember *ast, const Document *doc, Engine *engine); virtual ~ASTPropertyReference(); AST::UiPublicMember *ast() const { return _ast; } + QString onChangedSlotName() const { return _onChangedSlotName; } virtual bool getSourceLocation(QString *fileName, int *line, int *column) const; virtual const Value *value(Context *context) const;