diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2023-03-07 16:05:41 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2023-03-07 14:29:12 +0000 |
commit | 269738d7e5a080a59b3478d3fe1277040eea56b9 (patch) | |
tree | 013fd5b30b613456730867b46b61ed985c83a28e /src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp | |
parent | 333ebb5bc2c26c85a3053a4a08102bcdbcac4b9b (diff) |
QmlDesigner: Force QDS compatibility mode 3D import option
QDS requires 3D imports to use QDS compatibility mode to work correctly,
so we force designStudioWorkarounds option on in all imports we do and
hide the option from UI so user can't toggle it off.
Since designStudioWorkarounds supercedes expandValueComponents option,
we also hide that as setting it has no effect.
Fixes: QDS-9219
Change-Id: Id40a45338ea630228f59b111703eba661ebd357b
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 | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp index ab829f1e6f..23956dd268 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp @@ -61,6 +61,9 @@ const int labelMinWidth = 130; const int controlMinWidth = 65; const int columnSpacing = 16; +constexpr QStringView qdsWorkaroundsKey{u"designStudioWorkarounds"}; +constexpr QStringView expandValuesKey{u"expandValueComponents"}; + } // namespace ItemLibraryAssetImportDialog::ItemLibraryAssetImportDialog( @@ -170,6 +173,11 @@ ItemLibraryAssetImportDialog::ItemLibraryAssetImportDialog( while (optIt != supportedOpts.constEnd()) { QJsonObject options = QJsonObject::fromVariantMap(qvariant_cast<QVariantMap>(optIt.value())); m_importOptions << options.value("options").toObject(); + if (m_importOptions.last().contains(qdsWorkaroundsKey)) { + QJsonObject optObj = m_importOptions.last()[qdsWorkaroundsKey].toObject(); + optObj.insert("value", QJsonValue{true}); + m_importOptions.last().insert(qdsWorkaroundsKey, optObj); + } auto it = defaultOpts.constBegin(); while (it != defaultOpts.constEnd()) { if (m_importOptions.last().contains(it.key())) { @@ -475,7 +483,7 @@ QGridLayout *ItemLibraryAssetImportDialog::createOptionsGrid( QJsonObject &options = m_importOptions[optionsIndex]; const auto optKeys = options.keys(); for (const auto &optKey : optKeys) { - if (!advanced && !isSimpleOption(optKey)) + if ((!advanced && !isSimpleOption(optKey)) || isHiddenOption(optKey)) continue; QJsonObject optObj = options.value(optKey).toObject(); const QString optName = optObj.value("name").toString(); @@ -837,6 +845,16 @@ bool ItemLibraryAssetImportDialog::isSimpleOption(const QString &id) return simpleOptions.contains(id); } +bool ItemLibraryAssetImportDialog::isHiddenOption(const QString &id) +{ + static QList<QStringView> hiddenOptions { + qdsWorkaroundsKey, + expandValuesKey // Hidden because qdsWorkaroundsKey we force true implies this + }; + + return hiddenOptions.contains(id); +} + void ItemLibraryAssetImportDialog::resizeEvent(QResizeEvent *event) { m_dialogHeight = event->size().height(); |