Skip to content

Commit

Permalink
ticket#5285 Implemented "save as" for OMSimulator models
Browse files Browse the repository at this point in the history
  • Loading branch information
adeas31 committed Jan 23, 2019
1 parent 5297e5b commit 712d903
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 13 deletions.
53 changes: 40 additions & 13 deletions OMEdit/OMEditGUI/Modeling/LibraryTreeWidget.cpp
Expand Up @@ -4607,6 +4607,12 @@ void LibraryWidget::saveAsLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem)
pDuplicateClassDialog->exec();
} else if (pLibraryTreeItem->getLibraryType() == LibraryTreeItem::CompositeModel) {
saveAsCompositeModelLibraryTreeItem(pLibraryTreeItem);
} else if (pLibraryTreeItem->getLibraryType() == LibraryTreeItem::OMS) {
if (pLibraryTreeItem->isTopLevel()) {
saveAsOMSLibraryTreeItem(pLibraryTreeItem);
} else {
saveAsLibraryTreeItem(pLibraryTreeItem->parent());
}
} else {
QMessageBox::information(this, Helper::applicationName + " - " + Helper::error, GUIMessages::getMessage(GUIMessages::ERROR_OCCURRED)
.arg(tr("Unable to save the file, unknown library type.")), Helper::ok);
Expand Down Expand Up @@ -4967,19 +4973,15 @@ bool LibraryWidget::saveOMSLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem)
*/
void LibraryWidget::saveOMSLibraryTreeItemHelper(LibraryTreeItem *pLibraryTreeItem, QString fileName)
{
if (pLibraryTreeItem->isTopLevel()
|| (pLibraryTreeItem->isSystemElement())
|| (pLibraryTreeItem->parent()->isSystemElement() && pLibraryTreeItem->getOMSConnector())) {
pLibraryTreeItem->setIsSaved(true);
pLibraryTreeItem->setFileName(fileName);
if (pLibraryTreeItem->getModelWidget() && pLibraryTreeItem->getModelWidget()->isLoadedWidgetComponents()) {
pLibraryTreeItem->getModelWidget()->setWindowTitle(pLibraryTreeItem->getName());
pLibraryTreeItem->getModelWidget()->setModelFilePathLabel(fileName);
}
mpLibraryTreeModel->updateLibraryTreeItem(pLibraryTreeItem);
for (int i = 0; i < pLibraryTreeItem->childrenSize(); i++) {
saveOMSLibraryTreeItemHelper(pLibraryTreeItem->child(i), fileName);
}
pLibraryTreeItem->setIsSaved(true);
pLibraryTreeItem->setFileName(fileName);
if (pLibraryTreeItem->getModelWidget() && pLibraryTreeItem->getModelWidget()->isLoadedWidgetComponents()) {
pLibraryTreeItem->getModelWidget()->setWindowTitle(pLibraryTreeItem->getName());
pLibraryTreeItem->getModelWidget()->setModelFilePathLabel(fileName);
}
mpLibraryTreeModel->updateLibraryTreeItem(pLibraryTreeItem);
for (int i = 0; i < pLibraryTreeItem->childrenSize(); i++) {
saveOMSLibraryTreeItemHelper(pLibraryTreeItem->child(i), fileName);
}
}

Expand Down Expand Up @@ -5016,6 +5018,31 @@ bool LibraryWidget::saveAsCompositeModelLibraryTreeItem(LibraryTreeItem *pLibrar
return saveCompositeModelLibraryTreeItem(pLibraryTreeItem, fileName);
}

/*!
* \brief LibraryWidget::saveAsOMSLibraryTreeItem
* Save as OMSimulator model.
* \param pLibraryTreeItem
* \return
*/
bool LibraryWidget::saveAsOMSLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem)
{
QString fileName;
QString name = pLibraryTreeItem->getName();
fileName = StringHandler::getSaveFileName(this, QString(Helper::applicationName).append(" - ").append(tr("Save File")), NULL,
Helper::omsFileTypes, NULL, "ssp", &name);
if (fileName.isEmpty()) { // if user press ESC
return false;
}

if (OMSProxy::instance()->saveModel(pLibraryTreeItem->getNameStructure(), fileName)) {
/* mark the file as saved and update the labels. */
saveOMSLibraryTreeItemHelper(pLibraryTreeItem, fileName);
} else {
return false;
}
return true;
}

/*!
* \brief LibraryWidget::saveCompositeModelLibraryTreeItem
* Saves a CompositeModel LibraryTreeItem.
Expand Down
1 change: 1 addition & 0 deletions OMEdit/OMEditGUI/Modeling/LibraryTreeWidget.h
Expand Up @@ -504,6 +504,7 @@ class LibraryWidget : public QWidget
void saveOMSLibraryTreeItemHelper(LibraryTreeItem *pLibraryTreeItem, QString fileName);
bool saveCompositeModelLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem);
bool saveAsCompositeModelLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem);
bool saveAsOMSLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem);
bool saveCompositeModelLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem, QString fileName);
bool saveTotalLibraryTreeItemHelper(LibraryTreeItem *pLibraryTreeItem);
public slots:
Expand Down

0 comments on commit 712d903

Please sign in to comment.