@@ -1425,25 +1425,7 @@ void LibraryTreeModel::updateLibraryTreeItemClassText(LibraryTreeItem *pLibraryT
14251425 pParentLibraryTreeItem->setClassInformation (pOMCProxy->getClassInformation (pParentLibraryTreeItem->getNameStructure ()));
14261426 }
14271427 } else if (pLibraryTreeItem->getLibraryType () == LibraryTreeItem::OMS) {
1428- /* We don't use the editor undo/redo in MainWindow::undo/redo for OMSimulator.
1429- * So always update the text and don't use the updateText flag.
1430- */
1431- if (!pLibraryTreeItem->getModelWidget ()) {
1432- showModelWidget (pLibraryTreeItem, false );
1433- }
1434- if (pLibraryTreeItem->getModelWidget () && !pLibraryTreeItem->getModelWidget ()->getEditor ()) {
1435- pLibraryTreeItem->getModelWidget ()->createModelWidgetComponents ();
1436- }
1437- QString contents;
1438- if (OMSProxy::instance ()->list (pLibraryTreeItem->getNameStructure (), &contents)) {
1439- pLibraryTreeItem->setClassText (contents);
1440- if (pLibraryTreeItem->getModelWidget () && pLibraryTreeItem->getModelWidget ()->getEditor ()) {
1441- OMSimulatorEditor *pOMSimulatorEditor = dynamic_cast <OMSimulatorEditor*>(pLibraryTreeItem->getModelWidget ()->getEditor ());
1442- if (pOMSimulatorEditor) {
1443- pOMSimulatorEditor->setPlainText (contents);
1444- }
1445- }
1446- }
1428+ updateOMSLibraryTreeItemClassText (pLibraryTreeItem);
14471429 }
14481430}
14491431
@@ -2298,6 +2280,29 @@ void LibraryTreeModel::updateChildLibraryTreeItemClassText(LibraryTreeItem *pLib
22982280 }
22992281}
23002282
2283+ /* !
2284+ * \brief LibraryTreeModel::updateOMSLibraryTreeItemClassText
2285+ * Updates the OMSimulator model or system contents.
2286+ * \param pLibraryTreeItem
2287+ */
2288+ void LibraryTreeModel::updateOMSLibraryTreeItemClassText (LibraryTreeItem *pLibraryTreeItem)
2289+ {
2290+ if (pLibraryTreeItem->isTopLevel () || pLibraryTreeItem->isSystemElement ()) {
2291+ pLibraryTreeItem->setIsSaved (false );
2292+ updateLibraryTreeItem (pLibraryTreeItem);
2293+ QString contents;
2294+ if (OMSProxy::instance ()->list (pLibraryTreeItem->getNameStructure (), &contents)) {
2295+ pLibraryTreeItem->setClassText (contents);
2296+ if (pLibraryTreeItem->getModelWidget () && pLibraryTreeItem->getModelWidget ()->getEditor ()) {
2297+ OMSimulatorEditor *pOMSimulatorEditor = dynamic_cast <OMSimulatorEditor*>(pLibraryTreeItem->getModelWidget ()->getEditor ());
2298+ if (pOMSimulatorEditor) {
2299+ pOMSimulatorEditor->setPlainText (contents);
2300+ }
2301+ }
2302+ }
2303+ }
2304+ }
2305+
23012306/* !
23022307 * \brief LibraryTreeModel::readLibraryTreeItemClassTextFromText
23032308 * Reads the contents of the Modelica class nested in another class.
@@ -2443,6 +2448,21 @@ void LibraryTreeModel::createLibraryTreeItems(LibraryTreeItem *pLibraryTreeItem)
24432448 }
24442449}
24452450
2451+ /* !
2452+ * \brief LibraryTreeModel::updateOMSChildLibraryTreeItemClassText
2453+ * Updates the OMSimulator model or systems contents recursivly.
2454+ * \param pLibraryTreeItem
2455+ */
2456+ void LibraryTreeModel::updateOMSChildLibraryTreeItemClassText (LibraryTreeItem *pLibraryTreeItem)
2457+ {
2458+ if (pLibraryTreeItem->isTopLevel () || pLibraryTreeItem->isSystemElement ()) {
2459+ updateOMSLibraryTreeItemClassText (pLibraryTreeItem);
2460+ for (int i = 0 ; i < pLibraryTreeItem->childrenSize (); i++) {
2461+ updateOMSChildLibraryTreeItemClassText (pLibraryTreeItem->child (i));
2462+ }
2463+ }
2464+ }
2465+
24462466/* !
24472467 * \brief LibraryTreeModel::createLibraryTreeItemImpl
24482468 * Creates a LibraryTreeItem.
@@ -2628,7 +2648,7 @@ void LibraryTreeModel::createOMSConnectorLibraryTreeItems(LibraryTreeItem *pLibr
26282648 for (int j = 0 ; pLibraryTreeItem->getOMSElement ()->connectors [j] ; j++) {
26292649 QString name = pLibraryTreeItem->getOMSElement ()->connectors [j]->name ;
26302650 createLibraryTreeItem (name, QString (" %1.%2" ).arg (pLibraryTreeItem->getNameStructure ()).arg (name), pLibraryTreeItem->getFileName (),
2631- pLibraryTreeItem-> isSaved () , pLibraryTreeItem, 0 , pLibraryTreeItem->getOMSElement ()->connectors [j]);
2651+ true , pLibraryTreeItem, 0 , pLibraryTreeItem->getOMSElement ()->connectors [j]);
26322652 }
26332653 }
26342654}
@@ -2644,7 +2664,7 @@ void LibraryTreeModel::createOMSBusConnectorLibraryTreeItems(LibraryTreeItem *pL
26442664 for (int j = 0 ; pLibraryTreeItem->getOMSElement ()->busconnectors [j] ; j++) {
26452665 QString name = pLibraryTreeItem->getOMSElement ()->busconnectors [j]->name ;
26462666 createLibraryTreeItem (name, QString (" %1.%2" ).arg (pLibraryTreeItem->getNameStructure ()).arg (name), pLibraryTreeItem->getFileName (),
2647- pLibraryTreeItem-> isSaved () , pLibraryTreeItem, 0 , 0 , pLibraryTreeItem->getOMSElement ()->busconnectors [j]);
2667+ true , pLibraryTreeItem, 0 , 0 , pLibraryTreeItem->getOMSElement ()->busconnectors [j]);
26482668 }
26492669 }
26502670}
@@ -2660,7 +2680,7 @@ void LibraryTreeModel::createOMSTLMBusConnectorLibraryTreeItems(LibraryTreeItem
26602680 for (int j = 0 ; pLibraryTreeItem->getOMSElement ()->tlmbusconnectors [j] ; j++) {
26612681 QString name = pLibraryTreeItem->getOMSElement ()->tlmbusconnectors [j]->name ;
26622682 createLibraryTreeItem (name, QString (" %1.%2" ).arg (pLibraryTreeItem->getNameStructure ()).arg (name), pLibraryTreeItem->getFileName (),
2663- pLibraryTreeItem-> isSaved () , pLibraryTreeItem, 0 , 0 , 0 , pLibraryTreeItem->getOMSElement ()->tlmbusconnectors [j]);
2683+ true , pLibraryTreeItem, 0 , 0 , 0 , pLibraryTreeItem->getOMSElement ()->tlmbusconnectors [j]);
26642684 }
26652685 }
26662686}
0 commit comments