forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -61,6 +61,9 @@ const int labelMinWidth = 130;
|
|||||||
const int controlMinWidth = 65;
|
const int controlMinWidth = 65;
|
||||||
const int columnSpacing = 16;
|
const int columnSpacing = 16;
|
||||||
|
|
||||||
|
constexpr QStringView qdsWorkaroundsKey{u"designStudioWorkarounds"};
|
||||||
|
constexpr QStringView expandValuesKey{u"expandValueComponents"};
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
ItemLibraryAssetImportDialog::ItemLibraryAssetImportDialog(
|
ItemLibraryAssetImportDialog::ItemLibraryAssetImportDialog(
|
||||||
@@ -170,6 +173,11 @@ ItemLibraryAssetImportDialog::ItemLibraryAssetImportDialog(
|
|||||||
while (optIt != supportedOpts.constEnd()) {
|
while (optIt != supportedOpts.constEnd()) {
|
||||||
QJsonObject options = QJsonObject::fromVariantMap(qvariant_cast<QVariantMap>(optIt.value()));
|
QJsonObject options = QJsonObject::fromVariantMap(qvariant_cast<QVariantMap>(optIt.value()));
|
||||||
m_importOptions << options.value("options").toObject();
|
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();
|
auto it = defaultOpts.constBegin();
|
||||||
while (it != defaultOpts.constEnd()) {
|
while (it != defaultOpts.constEnd()) {
|
||||||
if (m_importOptions.last().contains(it.key())) {
|
if (m_importOptions.last().contains(it.key())) {
|
||||||
@@ -475,7 +483,7 @@ QGridLayout *ItemLibraryAssetImportDialog::createOptionsGrid(
|
|||||||
QJsonObject &options = m_importOptions[optionsIndex];
|
QJsonObject &options = m_importOptions[optionsIndex];
|
||||||
const auto optKeys = options.keys();
|
const auto optKeys = options.keys();
|
||||||
for (const auto &optKey : optKeys) {
|
for (const auto &optKey : optKeys) {
|
||||||
if (!advanced && !isSimpleOption(optKey))
|
if ((!advanced && !isSimpleOption(optKey)) || isHiddenOption(optKey))
|
||||||
continue;
|
continue;
|
||||||
QJsonObject optObj = options.value(optKey).toObject();
|
QJsonObject optObj = options.value(optKey).toObject();
|
||||||
const QString optName = optObj.value("name").toString();
|
const QString optName = optObj.value("name").toString();
|
||||||
@@ -837,6 +845,16 @@ bool ItemLibraryAssetImportDialog::isSimpleOption(const QString &id)
|
|||||||
return simpleOptions.contains(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)
|
void ItemLibraryAssetImportDialog::resizeEvent(QResizeEvent *event)
|
||||||
{
|
{
|
||||||
m_dialogHeight = event->size().height();
|
m_dialogHeight = event->size().height();
|
||||||
|
@@ -67,6 +67,7 @@ private:
|
|||||||
|
|
||||||
bool isSimpleGroup(const QString &id);
|
bool isSimpleGroup(const QString &id);
|
||||||
bool isSimpleOption(const QString &id);
|
bool isSimpleOption(const QString &id);
|
||||||
|
bool isHiddenOption(const QString &id);
|
||||||
|
|
||||||
Ui::ItemLibraryAssetImportDialog *ui = nullptr;
|
Ui::ItemLibraryAssetImportDialog *ui = nullptr;
|
||||||
Utils::OutputFormatter *m_outputFormatter = nullptr;
|
Utils::OutputFormatter *m_outputFormatter = nullptr;
|
||||||
|
Reference in New Issue
Block a user