Ref T362, allow also to load container JSON format directly (not only CVariant container format)

This commit is contained in:
Klaus Basan
2018-09-30 22:43:59 +02:00
parent e668be9259
commit 2ad6a7e1b3

View File

@@ -1334,7 +1334,7 @@ namespace BlackGui
// then name here is mainly set for debugging purposes so each model can be identified // then name here is mainly set for debugging purposes so each model can be identified
Q_ASSERT(m_model); Q_ASSERT(m_model);
QTableView::setObjectName(name); QTableView::setObjectName(name);
QString modelName = QString(name).append(':').append(m_model->getTranslationContext()); const QString modelName = QString(name).append(':').append(m_model->getTranslationContext());
m_model->setObjectName(modelName); m_model->setObjectName(modelName);
} }
@@ -1555,14 +1555,26 @@ namespace BlackGui
break; break;
} }
CVariant containerVariant; ContainerType container;
containerVariant.convertFromJson(jsonObject);
if (!containerVariant.canConvert<ContainerType>()) if (jsonObject.contains("type") && jsonObject.contains("value"))
{ {
m = CStatusMessage(this).warning("No valid swift JSON '%1'") << fileName; // read from variant format
break; CVariant containerVariant;
containerVariant.convertFromJson(jsonObject);
if (!containerVariant.canConvert<ContainerType>())
{
m = CStatusMessage(this).warning("No valid swift JSON '%1'") << fileName;
break;
}
container = containerVariant.value<ContainerType>();
} }
ContainerType container = containerVariant.value<ContainerType>(); else
{
// container format directly
container.convertFromJson(jsonObject);
}
const int countBefore = container.size(); const int countBefore = container.size();
m = this->modifyLoadedJsonData(container); m = this->modifyLoadedJsonData(container);
if (m.isFailure()) { break; } // modification error if (m.isFailure()) { break; } // modification error