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