@@ -708,7 +708,13 @@ void MainWindow::simulate(LibraryTreeItem *pLibraryTreeItem)
708708 if (!mpOMSSimulationDialog) {
709709 mpOMSSimulationDialog = new OMSSimulationDialog (this );
710710 }
711- mpOMSSimulationDialog->simulate (pTopLevelLibraryTreeItem);
711+ const QString modelName = pTopLevelLibraryTreeItem->getNameStructure ();
712+ instantiateOMSModel (pTopLevelLibraryTreeItem, !pTopLevelLibraryTreeItem->isOMSModelInstantiated ());
713+ // get the top level LibraryTreeItem again since instantiateOMSModel redraws them
714+ LibraryTreeItem *pTopLevelLibraryTreeItem = mpLibraryWidget->getLibraryTreeModel ()->findLibraryTreeItemOneLevel (modelName);
715+ if (pTopLevelLibraryTreeItem) {
716+ mpOMSSimulationDialog->simulate (pTopLevelLibraryTreeItem);
717+ }
712718 }
713719 }
714720}
@@ -819,23 +825,6 @@ void MainWindow::instantiateOMSModel(LibraryTreeItem *pLibraryTreeItem, bool che
819825 }
820826}
821827
822- /* !
823- * \brief MainWindow::simulateOMSModel
824- * Simulates the OMSimulator model.
825- * \param pLibraryTreeItem
826- */
827- void MainWindow::simulateOMSModel (LibraryTreeItem *pLibraryTreeItem)
828- {
829- // get the top level LibraryTreeItem
830- LibraryTreeItem *pTopLevelLibraryTreeItem = mpLibraryWidget->getLibraryTreeModel ()->getTopLevelLibraryTreeItem (pLibraryTreeItem);
831- if (pTopLevelLibraryTreeItem) {
832- if (!mpOMSSimulationDialog) {
833- mpOMSSimulationDialog = new OMSSimulationDialog (this );
834- }
835- mpOMSSimulationDialog->simulate (pTopLevelLibraryTreeItem);
836- }
837- }
838-
839828void MainWindow::instantiateModel (LibraryTreeItem *pLibraryTreeItem)
840829{
841830 /* if Modelica text is changed manually by user then validate it before saving. */
0 commit comments