From f1c1d2c6a255c64b48e0b62730578142850cb3d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=96stlund?= Date: Mon, 3 Jul 2023 16:39:28 +0200 Subject: [PATCH] Add option for simplified save total model in OMEdit (#10923) --- OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.cpp | 14 ++++++++++---- OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.h | 1 + OMEdit/OMEditLIB/OMC/OMCProxy.cpp | 12 ++++++++++-- OMEdit/OMEditLIB/OMC/OMCProxy.h | 2 +- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.cpp b/OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.cpp index 6a10259b853..9d2df53b7f0 100644 --- a/OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.cpp +++ b/OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.cpp @@ -1267,6 +1267,8 @@ SaveTotalFileDialog::SaveTotalFileDialog(LibraryTreeItem *pLibraryTreeItem, QWid mpObfuscateOutputCheckBox = new QCheckBox(tr("Obfuscate output")); mpStripAnnotationsCheckBox = new QCheckBox(tr("Strip annotations")); mpStripCommentsCheckBox = new QCheckBox(tr("Strip comments")); + mpUseSimplifiedHeuristic = new QCheckBox(tr("Use simplified heuristic")); + mpUseSimplifiedHeuristic->setToolTip(tr("Use a simplified identifier-based heuristic that results in larger models but can succeed when the normal method fails.")); // buttons mpOkButton = new QPushButton(Helper::ok); mpOkButton->setAutoDefault(true); @@ -1281,7 +1283,8 @@ SaveTotalFileDialog::SaveTotalFileDialog(LibraryTreeItem *pLibraryTreeItem, QWid pMainGridLayout->addWidget(mpObfuscateOutputCheckBox, 0, 0); pMainGridLayout->addWidget(mpStripAnnotationsCheckBox, 1, 0); pMainGridLayout->addWidget(mpStripCommentsCheckBox, 2, 0); - pMainGridLayout->addWidget(mpButtonBox, 3, 0, 1, 1, Qt::AlignRight); + pMainGridLayout->addWidget(mpUseSimplifiedHeuristic, 3, 0); + pMainGridLayout->addWidget(mpButtonBox, 4, 0, 1, 1, Qt::AlignRight); setLayout(pMainGridLayout); } @@ -1298,9 +1301,12 @@ void SaveTotalFileDialog::saveTotalModel() if (fileName.isEmpty()) { // if user press ESC reject(); } else { - // save the model through OMC - MainWindow::instance()->getOMCProxy()->saveTotalModel(fileName, mpLibraryTreeItem->getNameStructure(), mpStripAnnotationsCheckBox->isChecked(), - mpStripCommentsCheckBox->isChecked(), mpObfuscateOutputCheckBox->isChecked()); + // save the model through OMC + MainWindow::instance()->getOMCProxy()->saveTotalModel(fileName, mpLibraryTreeItem->getNameStructure(), + mpStripAnnotationsCheckBox->isChecked(), + mpStripCommentsCheckBox->isChecked(), + mpObfuscateOutputCheckBox->isChecked(), + mpUseSimplifiedHeuristic->isChecked()); accept(); } } diff --git a/OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.h b/OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.h index 92dc290532b..f8fc9f27529 100644 --- a/OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.h +++ b/OMEdit/OMEditLIB/Modeling/ModelicaClassDialog.h @@ -216,6 +216,7 @@ class SaveTotalFileDialog : public QDialog QCheckBox *mpObfuscateOutputCheckBox; QCheckBox *mpStripAnnotationsCheckBox; QCheckBox *mpStripCommentsCheckBox; + QCheckBox *mpUseSimplifiedHeuristic; QPushButton *mpOkButton; QPushButton *mpCancelButton; QDialogButtonBox *mpButtonBox; diff --git a/OMEdit/OMEditLIB/OMC/OMCProxy.cpp b/OMEdit/OMEditLIB/OMC/OMCProxy.cpp index 00809c8a6a3..fd78057a1e0 100644 --- a/OMEdit/OMEditLIB/OMC/OMCProxy.cpp +++ b/OMEdit/OMEditLIB/OMC/OMCProxy.cpp @@ -1860,11 +1860,19 @@ bool OMCProxy::saveModifiedModel(QString modelText) * \param stripAnnotations * \param stripComments * \param obfuscate + * \param simplified * \return true on success. */ -bool OMCProxy::saveTotalModel(QString fileName, QString className, bool stripAnnotations, bool stripComments, bool obfuscate) +bool OMCProxy::saveTotalModel(QString fileName, QString className, bool stripAnnotations, bool stripComments, bool obfuscate, bool simplified) { - bool result = mpOMCInterface->saveTotalModel(fileName, className, stripAnnotations, stripComments, obfuscate); + bool result; + + if (simplified) { + result = mpOMCInterface->saveTotalModelDebug(fileName, className, stripAnnotations, stripComments, obfuscate); + } else { + result = mpOMCInterface->saveTotalModel(fileName, className, stripAnnotations, stripComments, obfuscate); + } + printMessagesStringInternal(); return result; } diff --git a/OMEdit/OMEditLIB/OMC/OMCProxy.h b/OMEdit/OMEditLIB/OMC/OMCProxy.h index 2fea9842b32..5a83ded2124 100644 --- a/OMEdit/OMEditLIB/OMC/OMCProxy.h +++ b/OMEdit/OMEditLIB/OMC/OMCProxy.h @@ -176,7 +176,7 @@ class OMCProxy : public QObject bool setSourceFile(QString className, QString path); bool save(QString className); bool saveModifiedModel(QString modelText); - bool saveTotalModel(QString fileName, QString className, bool stripAnnotations, bool stripComments, bool obfuscate); + bool saveTotalModel(QString fileName, QString className, bool stripAnnotations, bool stripComments, bool obfuscate, bool simplified); QString list(QString className); QString listFile(QString className, bool nestedClasses = true); QString diffModelicaFileListings(const QString &before, const QString &after);