QmlDesigner: Add a Text component when dropping a font to Form Editor

When dragging a font from the file system and dropping it on the Form
Editor, create a Text component.

Fixes: QDS-5272
Change-Id: I3ec9420f870732afac7d09688f1e459881d4aad3
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
Mahmoud Badri
2021-10-25 21:36:33 +03:00
parent 74454a3531
commit 01164e737d

View File

@@ -599,12 +599,20 @@ void FormEditorWidget::dropEvent(QDropEvent *dropEvent)
->viewManager().designerActionManager(); ->viewManager().designerActionManager();
QHash<QString, QStringList> addedAssets = actionManager.handleExternalAssetsDrop(dropEvent->mimeData()); QHash<QString, QStringList> addedAssets = actionManager.handleExternalAssetsDrop(dropEvent->mimeData());
// add image assets to Form Editor // Create Image components for added image assets
const QStringList addedImages = addedAssets.value(ComponentCoreConstants::addImagesDisplayString); const QStringList addedImages = addedAssets.value(ComponentCoreConstants::addImagesDisplayString);
for (const QString &imgPath : addedImages) { for (const QString &imgPath : addedImages) {
QmlItemNode::createQmlItemNodeFromImage(m_formEditorView, imgPath, {}, QmlItemNode::createQmlItemNodeFromImage(m_formEditorView, imgPath, {},
m_formEditorView->scene()->rootFormEditorItem()->qmlItemNode()); m_formEditorView->scene()->rootFormEditorItem()->qmlItemNode());
} }
// Create Text components for added font assets
const QStringList addedFonts = addedAssets.value(ComponentCoreConstants::addFontsDisplayString);
for (const QString &fontPath : addedFonts) {
QString fontFamily = QFileInfo(fontPath).baseName();
QmlItemNode::createQmlItemNodeFromFont(m_formEditorView, fontFamily, rootItemRect().center(),
m_formEditorView->scene()->rootFormEditorItem()->qmlItemNode());
}
} }
} // namespace QmlDesigner } // namespace QmlDesigner