forked from qt-creator/qt-creator
QmlDesigner: Refactor QmlItemNode::createQmlItemNodeFromImage
Change-Id: I1fa0eb94d36ae48bb131da2ceca75e19a4175a4d Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
@@ -171,15 +171,7 @@ QmlItemNode QmlItemNode::createQmlItemNode(AbstractView *view, const ItemLibrary
|
|||||||
return newQmlItemNode;
|
return newQmlItemNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QString &imageName, const QPointF &position, QmlItemNode parentQmlItemNode)
|
static void checkImageImport(AbstractView *view)
|
||||||
{
|
|
||||||
if (!parentQmlItemNode.isValid() && QmlItemNode::isValidQmlItemNode(view->rootModelNode()))
|
|
||||||
parentQmlItemNode = QmlItemNode(view->rootModelNode());
|
|
||||||
else
|
|
||||||
return QmlItemNode();
|
|
||||||
|
|
||||||
QmlItemNode newQmlItemNode;
|
|
||||||
RewriterTransaction transaction = view->beginRewriterTransaction();
|
|
||||||
{
|
{
|
||||||
const QString newImportUrl = QLatin1String("QtQuick");
|
const QString newImportUrl = QLatin1String("QtQuick");
|
||||||
const QString newImportVersion = QLatin1String("1.1");
|
const QString newImportVersion = QLatin1String("1.1");
|
||||||
@@ -196,7 +188,21 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QS
|
|||||||
|
|
||||||
if (!view->model()->hasImport(newImport, true, true))
|
if (!view->model()->hasImport(newImport, true, true))
|
||||||
view->model()->changeImports(QList<Import>() << newImport, QList<Import>());
|
view->model()->changeImports(QList<Import>() << newImport, QList<Import>());
|
||||||
|
}
|
||||||
|
|
||||||
|
QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QString &imageName, const QPointF &position, QmlItemNode parentQmlItemNode)
|
||||||
|
{
|
||||||
|
QmlItemNode newQmlItemNode;
|
||||||
|
if (!parentQmlItemNode.isValid())
|
||||||
|
parentQmlItemNode = QmlItemNode(view->rootModelNode());
|
||||||
|
|
||||||
|
if (parentQmlItemNode.isValid()) {
|
||||||
|
RewriterTransaction transaction = view->beginRewriterTransaction();
|
||||||
|
|
||||||
|
checkImageImport(view);
|
||||||
|
|
||||||
|
if (view->model()->hasNodeMetaInfo("QtQuick.Image")) {
|
||||||
|
NodeMetaInfo metaInfo = view->model()->metaInfo("QtQuick.Image");
|
||||||
QList<QPair<PropertyName, QVariant> > propertyPairList;
|
QList<QPair<PropertyName, QVariant> > propertyPairList;
|
||||||
propertyPairList.append(qMakePair(PropertyName("x"), QVariant(qRound(position.x()))));
|
propertyPairList.append(qMakePair(PropertyName("x"), QVariant(qRound(position.x()))));
|
||||||
propertyPairList.append(qMakePair(PropertyName("y"), QVariant(qRound(position.y()))));
|
propertyPairList.append(qMakePair(PropertyName("y"), QVariant(qRound(position.y()))));
|
||||||
@@ -207,18 +213,11 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QS
|
|||||||
if (QFileInfo(view->model()->fileUrl().toLocalFile()).exists()) {
|
if (QFileInfo(view->model()->fileUrl().toLocalFile()).exists()) {
|
||||||
QDir fileDir(QFileInfo(view->model()->fileUrl().toLocalFile()).absolutePath());
|
QDir fileDir(QFileInfo(view->model()->fileUrl().toLocalFile()).absolutePath());
|
||||||
relativeImageName = fileDir.relativeFilePath(imageName);
|
relativeImageName = fileDir.relativeFilePath(imageName);
|
||||||
}
|
|
||||||
|
|
||||||
propertyPairList.append(qMakePair(PropertyName("source"), QVariant(relativeImageName)));
|
propertyPairList.append(qMakePair(PropertyName("source"), QVariant(relativeImageName)));
|
||||||
NodeMetaInfo metaInfo = view->model()->metaInfo("QtQuick.Image");
|
|
||||||
if (metaInfo.isValid()) {
|
|
||||||
int minorVersion = metaInfo.minorVersion();
|
|
||||||
int majorVersion = metaInfo.majorVersion();
|
|
||||||
newQmlItemNode = QmlItemNode(view->createModelNode("QtQuick.Image", majorVersion, minorVersion, propertyPairList));
|
|
||||||
parentQmlItemNode.nodeAbstractProperty("data").reparentHere(newQmlItemNode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_ASSERT(newQmlItemNode.isValid());
|
newQmlItemNode = QmlItemNode(view->createModelNode("QtQuick.Image", metaInfo.majorVersion(), metaInfo.minorVersion(), propertyPairList));
|
||||||
|
parentQmlItemNode.defaultNodeAbstractProperty().reparentHere(newQmlItemNode);
|
||||||
|
|
||||||
newQmlItemNode.setId(view->generateNewId("image"));
|
newQmlItemNode.setId(view->generateNewId("image"));
|
||||||
|
|
||||||
@@ -229,8 +228,9 @@ QmlItemNode QmlItemNode::createQmlItemNodeFromImage(AbstractView *view, const QS
|
|||||||
|
|
||||||
Q_ASSERT(newQmlItemNode.isValid());
|
Q_ASSERT(newQmlItemNode.isValid());
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_ASSERT(newQmlItemNode.isValid());
|
Q_ASSERT(newQmlItemNode.isValid());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return newQmlItemNode;
|
return newQmlItemNode;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user