QmlDesigner: Crash Fix

We have to add the import outside of the transaction
to update the metainfo before we add nodes.

Change-Id: Ie6efe9f90027a27a75c037fe41c4214720f4fbaa
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Thomas Hartmann
2019-03-21 17:55:05 +01:00
parent c9fec22e1e
commit 55a7e75360

View File

@@ -151,6 +151,9 @@ void GradientModel::addGradient()
if (!color.isValid()) if (!color.isValid())
color = QColor(Qt::white); color = QColor(Qt::white);
if (m_gradientTypeName != "Gradient")
ensureShapesImport();
QmlDesigner::RewriterTransaction transaction = view()->beginRewriterTransaction(QByteArrayLiteral("GradientModel::addGradient")); QmlDesigner::RewriterTransaction transaction = view()->beginRewriterTransaction(QByteArrayLiteral("GradientModel::addGradient"));
QmlDesigner::ModelNode gradientNode = createGradientNode(); QmlDesigner::ModelNode gradientNode = createGradientNode();
@@ -446,7 +449,6 @@ QmlDesigner::ModelNode GradientModel::createGradientNode()
fullTypeName.prepend("QtQuick."); fullTypeName.prepend("QtQuick.");
} else { } else {
fullTypeName.prepend("QtQuick.Shapes."); fullTypeName.prepend("QtQuick.Shapes.");
ensureShapesImport();
} }
auto metaInfo = model()->metaInfo(fullTypeName); auto metaInfo = model()->metaInfo(fullTypeName);