summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@nokia.com>2011-09-15 13:28:55 +0200
committerThomas Hartmann <Thomas.Hartmann@nokia.com>2011-09-19 16:20:03 +0200
commit04510ee264b065b5a640621848d1ba8b5a3d375e (patch)
treeddb63c8806a3de3a5e0cddce17b41d71b45fe7d3 /src/plugins/qmldesigner
parentc20bc6abd1336d31ebce0390606b958aff056f24 (diff)
downloadqt-creator-04510ee264b065b5a640621848d1ba8b5a3d375e.tar.gz
QmlDesigner.model: bugfix for Qt Quick 2.0
The item itself can have any version. we have to check for the version of QtQuick.Item. Change-Id: I57a992dd09491b7990318e208d98a9c4e0011e56 Reviewed-on: http://codereview.qt-project.org/4983 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Marco Bubke <marco.bubke@nokia.com>
Diffstat (limited to 'src/plugins/qmldesigner')
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/gradientlineqmladaptor.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/include/modelnode.h1
-rw-r--r--src/plugins/qmldesigner/designercore/model/modelnode.cpp24
3 files changed, 26 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/propertyeditor/gradientlineqmladaptor.cpp b/src/plugins/qmldesigner/components/propertyeditor/gradientlineqmladaptor.cpp
index 398289b5c8..cf64476e7f 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/gradientlineqmladaptor.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/gradientlineqmladaptor.cpp
@@ -131,7 +131,7 @@ void GradientLineQmlAdaptor::writeGradient()
modelNode.removeProperty(gradientName());
}
- ModelNode gradientNode = gradientNode= modelNode.view()->createModelNode("QtQuick.Gradient", modelNode.majorVersion(), 0);
+ ModelNode gradientNode= modelNode.view()->createModelNode("QtQuick.Gradient", modelNode.majorQtQuickVersion(), 0);
modelNode.nodeProperty(gradientName()).reparentHere(gradientNode);
RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction();
diff --git a/src/plugins/qmldesigner/designercore/include/modelnode.h b/src/plugins/qmldesigner/designercore/include/modelnode.h
index 8186534ad7..858706d853 100644
--- a/src/plugins/qmldesigner/designercore/include/modelnode.h
+++ b/src/plugins/qmldesigner/designercore/include/modelnode.h
@@ -103,6 +103,7 @@ public:
QString simplifiedTypeName() const;
int minorVersion() const;
int majorVersion() const;
+ int majorQtQuickVersion() const;
bool isValid() const;
bool isInHierarchy() const;
diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp
index 981f4e81f7..bd3a969189 100644
--- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp
@@ -35,6 +35,7 @@
#include <abstractview.h>
#include <model.h>
#include <metainfo.h>
+#include <nodemetainfo.h>
#include "internalnode_p.h"
#include <QHash>
#include <QTextStream>
@@ -239,6 +240,29 @@ int ModelNode::majorVersion() const
return m_internalNode->majorVersion();
}
+/*! \brief major number of the QtQuick version used
+\return major number of QtQuickVersion
+*/
+int ModelNode::majorQtQuickVersion() const
+{
+ if (!isValid()) {
+ Q_ASSERT_X(isValid(), Q_FUNC_INFO, "model node is invalid");
+ throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__);
+ }
+
+ if (metaInfo().isValid()) {
+ NodeMetaInfo superClass = metaInfo().directSuperClass();
+
+ while (superClass.isValid()) {
+ if (superClass.typeName() == "QtQuick.Item")
+ return superClass.majorVersion();
+ superClass = superClass.directSuperClass();
+ }
+ return 1; //default
+ }
+ return 1; //default
+}
+
/*! \return the short-hand type name of the node. */
QString ModelNode::simplifiedTypeName() const