From 9cd0d5554c2c07c6eeb84387fa2ac3363b5cf411 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 18 May 2019 17:48:23 +0200 Subject: [PATCH] Ref T663, avoid ASSERT when simulator is NO single simulator in mapping tool --- .../components/dbownmodelsetformdialog.cpp | 14 ++++++++++++-- src/blackgui/editors/ownmodelsetform.cpp | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/blackgui/components/dbownmodelsetformdialog.cpp b/src/blackgui/components/dbownmodelsetformdialog.cpp index ca86f0a58..5e7fc102f 100644 --- a/src/blackgui/components/dbownmodelsetformdialog.cpp +++ b/src/blackgui/components/dbownmodelsetformdialog.cpp @@ -121,8 +121,18 @@ namespace BlackGui void CDbOwnModelSetFormDialog::setSimulator(const CSimulatorInfo &simulator) { - Q_ASSERT_X(m_simulatorInfo.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); - m_simulatorInfo = simulator; + // Ref T663, avoid ASSERT in some weird cases + if (simulator.isSingleSimulator()) + { + m_simulatorInfo = simulator; + } + else + { + const CSimulatorInfo resetSim = m_simulatorInfo.isSingleSimulator() ? m_simulatorInfo : CSimulatorInfo::guessDefaultSimulator(); + const QString msg = QStringLiteral("Set invalid simulator, continue to use '%1'").arg(resetSim.toQString(true)); + this->showMappingComponentOverlayHtmlMessage(msg); + m_simulatorInfo = resetSim; + } ui->form_OwnModelSet->setSimulator(m_simulatorInfo); this->setWindowTitle("Create model set for " + m_simulatorInfo.toQString(true)); } diff --git a/src/blackgui/editors/ownmodelsetform.cpp b/src/blackgui/editors/ownmodelsetform.cpp index f0bd77a45..feb83185e 100644 --- a/src/blackgui/editors/ownmodelsetform.cpp +++ b/src/blackgui/editors/ownmodelsetform.cpp @@ -187,8 +187,18 @@ namespace BlackGui void COwnModelSetForm::setSimulator(const CSimulatorInfo &simulator) { - Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); - m_simulator = simulator; + // Ref T663, avoid ASSERT in some weird cases + if (simulator.isSingleSimulator()) + { + m_simulator = simulator; + } + else + { + const CSimulatorInfo resetSim = m_simulator.isSingleSimulator() ? m_simulator : CSimulatorInfo::guessDefaultSimulator(); + const QString msg = QStringLiteral("Set invalid simulator, continue to use '%1'").arg(resetSim.toQString(true)); + this->showOverlayHTMLMessage(msg); + m_simulator = resetSim; + } } bool COwnModelSetForm::hasDistributorPreferences() const