From 443f9d1619c86774699322bbcb873d4cce1805ec Mon Sep 17 00:00:00 2001 From: Vikas Pachdha Date: Wed, 15 Jul 2020 11:08:05 +0200 Subject: [PATCH] AssetExporter: Add display name to the exported json This shall be used for layer names Task-number: QDS-1556 Change-Id: I3ffce208d830f291de48105ec9cf92e76692f8bd Reviewed-by: Tim Jenssen --- .../assetexportpluginconstants.h | 2 ++ .../parsers/modelitemnodeparser.cpp | 20 ++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/assetexporterplugin/assetexportpluginconstants.h b/src/plugins/qmldesigner/assetexporterplugin/assetexportpluginconstants.h index 063a4a6e8c3..5f09b748603 100644 --- a/src/plugins/qmldesigner/assetexporterplugin/assetexportpluginconstants.h +++ b/src/plugins/qmldesigner/assetexporterplugin/assetexportpluginconstants.h @@ -45,6 +45,8 @@ const char DocumentNameTag[] = "name"; // Layer data tags const char ArtboardListTag[] = "artboards"; +const char NameTag[] = "name"; + const char XPosTag[] = "x"; const char YPosTag[] = "y"; const char WidthTag[] = "width"; diff --git a/src/plugins/qmldesigner/assetexporterplugin/parsers/modelitemnodeparser.cpp b/src/plugins/qmldesigner/assetexporterplugin/parsers/modelitemnodeparser.cpp index c8439c9ac16..43963aa8b26 100644 --- a/src/plugins/qmldesigner/assetexporterplugin/parsers/modelitemnodeparser.cpp +++ b/src/plugins/qmldesigner/assetexporterplugin/parsers/modelitemnodeparser.cpp @@ -28,6 +28,17 @@ #include "qmlitemnode.h" +namespace { +static QString capitalize(const QString &str) +{ + if (str.isEmpty()) + return {}; + QString tmp = str; + tmp[0] = QChar(str[0]).toUpper().toLatin1(); + return tmp; +} +} + namespace QmlDesigner { using namespace Constants; ItemNodeParser::ItemNodeParser(const QByteArrayList &lineage, @@ -48,6 +59,13 @@ QJsonObject QmlDesigner::ItemNodeParser::json(QmlDesigner::Component &component) const QmlObjectNode &qmlObjectNode = objectNode(); QJsonObject jsonObject; + const QString qmlId = qmlObjectNode.id(); + QString name = m_node.simplifiedTypeName(); + if (!qmlId.isEmpty()) + name.append("_" + capitalize(qmlId)); + + jsonObject.insert(NameTag, name); + // Position relative to parent QmlItemNode itemNode = qmlObjectNode.toQmlItemNode(); QPointF pos = itemNode.instancePosition(); @@ -60,7 +78,7 @@ QJsonObject QmlDesigner::ItemNodeParser::json(QmlDesigner::Component &component) jsonObject.insert(HeightTag, size.height()); QJsonObject metadata; - metadata.insert(QmlIdTag, qmlObjectNode.id()); + metadata.insert(QmlIdTag, qmlId); metadata.insert(UuidTag, uuid()); metadata.insert(ExportTypeTag, ExportTypeChild); metadata.insert(TypeNameTag, QString::fromLatin1(m_node.type()));