forked from qt-creator/qt-creator
QmlDesigner: Move majorQtQuickVersion from ModelNode to AbstractView
It has nothing to do with a ModelNode Change-Id: I5fd6afd42be8db9e6ac17de9df8777c8f286a9c2 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
@@ -128,7 +128,7 @@ void GradientLineQmlAdaptor::writeGradient()
|
|||||||
modelNode.removeProperty(gradientName().toUtf8());
|
modelNode.removeProperty(gradientName().toUtf8());
|
||||||
}
|
}
|
||||||
|
|
||||||
ModelNode gradientNode= modelNode.view()->createModelNode("QtQuick.Gradient", modelNode.majorQtQuickVersion(), 0);
|
ModelNode gradientNode= modelNode.view()->createModelNode("QtQuick.Gradient", modelNode.view()->majorQtQuickVersion(), 0);
|
||||||
modelNode.nodeProperty(gradientName().toUtf8()).reparentHere(gradientNode);
|
modelNode.nodeProperty(gradientName().toUtf8()).reparentHere(gradientNode);
|
||||||
|
|
||||||
RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction();
|
RewriterTransaction transaction = m_itemNode.modelNode().view()->beginRewriterTransaction();
|
||||||
@@ -137,7 +137,7 @@ void GradientLineQmlAdaptor::writeGradient()
|
|||||||
gradientNode.setId(oldId);
|
gradientNode.setId(oldId);
|
||||||
|
|
||||||
for (int i = 0;i < stops.size(); i++) {
|
for (int i = 0;i < stops.size(); i++) {
|
||||||
ModelNode gradientStopNode = modelNode.view()->createModelNode("QtQuick.GradientStop", modelNode.majorQtQuickVersion(), 0);
|
ModelNode gradientStopNode = modelNode.view()->createModelNode("QtQuick.GradientStop", modelNode.view()->majorQtQuickVersion(), 0);
|
||||||
gradientStopNode.variantProperty("position").setValue(roundReal(stops.at(i).first));
|
gradientStopNode.variantProperty("position").setValue(roundReal(stops.at(i).first));
|
||||||
gradientStopNode.variantProperty("color").setValue(normalizeColor(stops.at(i).second));
|
gradientStopNode.variantProperty("color").setValue(normalizeColor(stops.at(i).second));
|
||||||
gradientNode.nodeListProperty("stops").reparentHere(gradientStopNode);
|
gradientNode.nodeListProperty("stops").reparentHere(gradientStopNode);
|
||||||
|
@@ -237,6 +237,8 @@ public:
|
|||||||
void setAcutalStateNode(const ModelNode &node);
|
void setAcutalStateNode(const ModelNode &node);
|
||||||
ModelNode actualStateNode() const;
|
ModelNode actualStateNode() const;
|
||||||
|
|
||||||
|
int majorQtQuickVersion() const;
|
||||||
|
|
||||||
void resetView();
|
void resetView();
|
||||||
|
|
||||||
virtual bool hasWidget() const;
|
virtual bool hasWidget() const;
|
||||||
|
@@ -100,7 +100,6 @@ public:
|
|||||||
TypeName simplifiedTypeName() const;
|
TypeName simplifiedTypeName() const;
|
||||||
int minorVersion() const;
|
int minorVersion() const;
|
||||||
int majorVersion() const;
|
int majorVersion() const;
|
||||||
int majorQtQuickVersion() const;
|
|
||||||
|
|
||||||
bool isValid() const;
|
bool isValid() const;
|
||||||
bool isInHierarchy() const;
|
bool isInHierarchy() const;
|
||||||
|
@@ -528,4 +528,43 @@ ModelNode AbstractView::actualStateNode() const
|
|||||||
return ModelNode();
|
return ModelNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int getMajorVersionFromImport(const Model *model)
|
||||||
|
{
|
||||||
|
foreach (const Import &import, model->imports()) {
|
||||||
|
if (import.isLibraryImport() && import.url() == QLatin1String("QtQuick")) {
|
||||||
|
const QString versionString = import.version();
|
||||||
|
if (versionString.contains(QLatin1String("."))) {
|
||||||
|
const QString majorVersionString = versionString.split(QLatin1String(".")).first();
|
||||||
|
return majorVersionString.toInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int getMajorVersionFromNode(const ModelNode &modelNode)
|
||||||
|
{
|
||||||
|
if (modelNode.metaInfo().isValid()) {
|
||||||
|
if (modelNode.type() == "QtQuick.QtObject" || modelNode.type() == "QtQuick.Item")
|
||||||
|
return modelNode.majorVersion();
|
||||||
|
|
||||||
|
foreach (const NodeMetaInfo &superClass, modelNode.metaInfo().superClasses()) {
|
||||||
|
if (modelNode.type() == "QtQuick.QtObject" || modelNode.type() == "QtQuick.Item")
|
||||||
|
return superClass.majorVersion();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1; //default
|
||||||
|
}
|
||||||
|
|
||||||
|
int AbstractView::majorQtQuickVersion() const
|
||||||
|
{
|
||||||
|
int majorVersionFromImport = getMajorVersionFromImport(model());
|
||||||
|
if (majorVersionFromImport >= 0)
|
||||||
|
return majorVersionFromImport;
|
||||||
|
|
||||||
|
return getMajorVersionFromNode(rootModelNode());
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
@@ -232,54 +232,6 @@ int ModelNode::majorVersion() const
|
|||||||
return m_internalNode->majorVersion();
|
return m_internalNode->majorVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
int getMajorVersionFromImport(Model *model)
|
|
||||||
{
|
|
||||||
foreach (const Import &import, model->imports()) {
|
|
||||||
if (import.isLibraryImport() && import.url() == QLatin1String("QtQuick")) {
|
|
||||||
const QString versionString = import.version();
|
|
||||||
if (versionString.contains(QLatin1String("."))) {
|
|
||||||
const QString majorVersionString = versionString.split(QLatin1String(".")).first();
|
|
||||||
return majorVersionString.toInt();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int getMajorVersionFromNode(const ModelNode &modelNode)
|
|
||||||
{
|
|
||||||
if (modelNode.metaInfo().isValid()) {
|
|
||||||
if (modelNode.type() == "QtQuick.QtObject" || modelNode.type() == "QtQuick.Item")
|
|
||||||
return modelNode.majorVersion();
|
|
||||||
|
|
||||||
foreach (const NodeMetaInfo &superClass, modelNode.metaInfo().superClasses()) {
|
|
||||||
if (modelNode.type() == "QtQuick.QtObject" || modelNode.type() == "QtQuick.Item")
|
|
||||||
return superClass.majorVersion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1; //default
|
|
||||||
}
|
|
||||||
|
|
||||||
/*! \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__);
|
|
||||||
}
|
|
||||||
|
|
||||||
int majorVersionFromImport = getMajorVersionFromImport(model());
|
|
||||||
if (majorVersionFromImport >= 0)
|
|
||||||
return majorVersionFromImport;
|
|
||||||
|
|
||||||
return getMajorVersionFromNode(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*! \return the short-hand type name of the node. */
|
/*! \return the short-hand type name of the node. */
|
||||||
TypeName ModelNode::simplifiedTypeName() const
|
TypeName ModelNode::simplifiedTypeName() const
|
||||||
{
|
{
|
||||||
|
@@ -288,9 +288,9 @@ bool QmlModelView::hasInstanceForModelNode(const ModelNode &modelNode)
|
|||||||
ModelNode QmlModelView::createQmlState(const QmlDesigner::PropertyListType &propertyList)
|
ModelNode QmlModelView::createQmlState(const QmlDesigner::PropertyListType &propertyList)
|
||||||
{
|
{
|
||||||
|
|
||||||
QTC_CHECK(rootModelNode().majorQtQuickVersion() < 3);
|
QTC_CHECK(majorQtQuickVersion() < 3);
|
||||||
|
|
||||||
if (rootModelNode().majorQtQuickVersion() > 1)
|
if (majorQtQuickVersion() > 1)
|
||||||
return createModelNode("QtQuick.State", 2, 0, propertyList);
|
return createModelNode("QtQuick.State", 2, 0, propertyList);
|
||||||
else
|
else
|
||||||
return createModelNode("QtQuick.State", 1, 0, propertyList);
|
return createModelNode("QtQuick.State", 1, 0, propertyList);
|
||||||
|
@@ -179,7 +179,7 @@ void QmlModelState::addChangeSetIfNotExists(const ModelNode &node)
|
|||||||
return; //changeSet already there
|
return; //changeSet already there
|
||||||
|
|
||||||
ModelNode newChangeSet;
|
ModelNode newChangeSet;
|
||||||
if (qmlModelView()->rootModelNode().majorQtQuickVersion() > 1)
|
if (qmlModelView()->majorQtQuickVersion() > 1)
|
||||||
newChangeSet = modelNode().view()->createModelNode("QtQuick.PropertyChanges", 2, 0);
|
newChangeSet = modelNode().view()->createModelNode("QtQuick.PropertyChanges", 2, 0);
|
||||||
else
|
else
|
||||||
newChangeSet = modelNode().view()->createModelNode("QtQuick.PropertyChanges", 1, 0);
|
newChangeSet = modelNode().view()->createModelNode("QtQuick.PropertyChanges", 1, 0);
|
||||||
|
Reference in New Issue
Block a user