From 4b863d554e8a9a9eb1a1708b0bf78b86c28c6b1f Mon Sep 17 00:00:00 2001 From: Thomas Hartmann <Thomas.Hartmann@nokia.com> Date: Wed, 21 Jul 2010 12:57:11 +0200 Subject: [PATCH] QmlJS.propertyReader: check for bindings in gradients --- src/libs/qmljs/qmljspropertyreader.cpp | 6 +++++- src/libs/qmljs/qmljspropertyreader.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libs/qmljs/qmljspropertyreader.cpp b/src/libs/qmljs/qmljspropertyreader.cpp index 47dd633f782..ac820093811 100644 --- a/src/libs/qmljs/qmljspropertyreader.cpp +++ b/src/libs/qmljs/qmljspropertyreader.cpp @@ -239,11 +239,13 @@ PropertyReader::PropertyReader(Document::Ptr doc, AST::UiObjectInitializer *ast) } } -QLinearGradient PropertyReader::parseGradient(const QString &propertyName) const +QLinearGradient PropertyReader::parseGradient(const QString &propertyName, bool *isBound) const { if (!m_doc) return QLinearGradient(); + *isBound = false; + for (UiObjectMemberList *members = m_ast->members; members; members = members->next) { UiObjectMember *member = members->member; @@ -265,6 +267,8 @@ QLinearGradient PropertyReader::parseGradient(const QString &propertyName) const if (localParser.hasProperty("color") && localParser.hasProperty("position")) { QColor color = localParser.readProperty("color").value<QColor>(); qreal position = localParser.readProperty("position").toReal(); + if (localParser.isBindingOrEnum("color") || localParser.isBindingOrEnum("position")) + *isBound = true; stops.append( QPair<qreal, QColor>(position, color)); } } diff --git a/src/libs/qmljs/qmljspropertyreader.h b/src/libs/qmljs/qmljspropertyreader.h index be7fa4937f7..39ff52c6fb5 100644 --- a/src/libs/qmljs/qmljspropertyreader.h +++ b/src/libs/qmljs/qmljspropertyreader.h @@ -62,7 +62,7 @@ public: return QVariant(); } - QLinearGradient parseGradient(const QString &propertyName) const; + QLinearGradient parseGradient(const QString &propertyName, bool *isBound) const; QStringList properties() const { return m_properties.keys(); } -- GitLab