diff options
Diffstat (limited to 'src')
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 |
