diff options
author | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-09-15 13:28:55 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-09-19 16:20:03 +0200 |
commit | 04510ee264b065b5a640621848d1ba8b5a3d375e (patch) | |
tree | ddb63c8806a3de3a5e0cddce17b41d71b45fe7d3 /src/plugins/qmldesigner | |
parent | c20bc6abd1336d31ebce0390606b958aff056f24 (diff) | |
download | qt-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')
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 |