diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2021-01-22 17:51:46 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2021-02-05 09:34:04 +0000 |
commit | 99a3ddbd23c838d6cf5d197f117535a79eff4c18 (patch) | |
tree | 7c101f744ec694a52ba0cf875f00767f8cc92411 /src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp | |
parent | f15fef7ee1927c5c259809fa4fc3836bba741a24 (diff) |
QmlDesigner: Move 3D asset import to puppet
Moved 3D asset import to puppet to ensure import always uses the
correct version of the QtQuick3D.
Fixes: QDS-3154
Change-Id: I630a833e7231383b87bf8b7214d3545d12de15ab
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp')
-rw-r--r-- | src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp index af2a34de7c..e49ffbb9bf 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp @@ -71,10 +71,13 @@ static const int rowHeight = 26; } ItemLibraryAssetImportDialog::ItemLibraryAssetImportDialog(const QStringList &importFiles, - const QString &defaulTargetDirectory, QWidget *parent) : - QDialog(parent), - ui(new Ui::ItemLibraryAssetImportDialog), - m_importer(this) + const QString &defaulTargetDirectory, + const QVariantMap &supportedExts, + const QVariantMap &supportedOpts, + QWidget *parent) : + QDialog(parent) + , ui(new Ui::ItemLibraryAssetImportDialog) + , m_importer(this) { setModal(true); ui->setupUi(this); @@ -83,15 +86,24 @@ ItemLibraryAssetImportDialog::ItemLibraryAssetImportDialog(const QStringList &im m_outputFormatter->setPlainTextEdit(ui->plainTextEdit); // Skip unsupported assets - bool skipSome = false; + QHash<QString, bool> supportMap; for (const auto &file : importFiles) { - if (m_importer.isQuick3DAsset(file)) + QString suffix = QFileInfo(file).suffix(); + if (!supportMap.contains(suffix)) { + bool supported = false; + for (const auto &exts : supportedExts) { + if (exts.toStringList().contains(suffix)) { + supported = true; + break; + } + } + supportMap.insert(suffix, supported); + } + if (supportMap[suffix]) m_quick3DFiles << file; - else - skipSome = true; } - if (skipSome) + if (m_quick3DFiles.size() != importFiles.size()) addWarning("Cannot import 3D and other assets simultaneously. Skipping non-3D assets."); ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Import")); @@ -153,14 +165,12 @@ ItemLibraryAssetImportDialog::ItemLibraryAssetImportDialog(const QStringList &im m_quick3DImportPath = candidatePath; if (!m_quick3DFiles.isEmpty()) { - const QHash<QString, QVariantMap> allOptions = m_importer.allOptions(); - const QHash<QString, QStringList> supportedExtensions = m_importer.supportedExtensions(); QVector<QJsonObject> groups; - auto optIt = allOptions.constBegin(); + auto optIt = supportedOpts.constBegin(); int optIndex = 0; - while (optIt != allOptions.constEnd()) { - QJsonObject options = QJsonObject::fromVariantMap(optIt.value()); + while (optIt != supportedOpts.constEnd()) { + QJsonObject options = QJsonObject::fromVariantMap(qvariant_cast<QVariantMap>(optIt.value())); m_importOptions << options.value("options").toObject(); groups << options.value("groups").toObject(); const auto &exts = optIt.key().split(':'); @@ -173,10 +183,10 @@ ItemLibraryAssetImportDialog::ItemLibraryAssetImportDialog(const QStringList &im // Create tab for each supported extension group that also has files included in the import QMap<QString, int> tabMap; // QMap used for alphabetical order for (const auto &file : qAsConst(m_quick3DFiles)) { - auto extIt = supportedExtensions.constBegin(); + auto extIt = supportedExts.constBegin(); QString ext = QFileInfo(file).suffix().toLower(); - while (extIt != supportedExtensions.constEnd()) { - if (!tabMap.contains(extIt.key()) && extIt.value().contains(ext)) { + while (extIt != supportedExts.constEnd()) { + if (!tabMap.contains(extIt.key()) && extIt.value().toStringList().contains(ext)) { tabMap.insert(extIt.key(), m_extToImportOptionsMap.value(ext)); break; } |