Skip to content

Commit

Permalink
-Save as for meta-model to make a copy of the file in a different fol…
Browse files Browse the repository at this point in the history
…der or make a copy with a different name
  • Loading branch information
alash325 committed Mar 11, 2016
1 parent 7864f66 commit 4a5facf
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 10 deletions.
44 changes: 34 additions & 10 deletions OMEdit/OMEditGUI/Modeling/LibraryTreeWidget.cpp
Expand Up @@ -2407,6 +2407,9 @@ void LibraryTreeView::showContextMenu(QPoint point)
menu.addAction(mpUnloadMetaModelFileAction);
break;
case LibraryTreeItem::MetaModel:
// menu.addAction(mpSaveAction);
// menu.addAction(mpSaveAsAction);
menu.addSeparator();
menu.addAction(mpFetchInterfaceDataAction);
menu.addAction(mpTLMCoSimulationAction);
menu.addSeparator();
Expand Down Expand Up @@ -3143,9 +3146,7 @@ void LibraryWidget::saveAsLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem)
DuplicateClassDialog *pDuplicateClassDialog = new DuplicateClassDialog(true, pLibraryTreeItem, mpMainWindow);
pDuplicateClassDialog->exec();
} else if (pLibraryTreeItem->getLibraryType() == LibraryTreeItem::MetaModel) {
saveMetaModelLibraryTreeItem(pLibraryTreeItem);
} else if (pLibraryTreeItem->getLibraryType() == LibraryTreeItem::Text) {
saveMetaModelLibraryTreeItem(pLibraryTreeItem);
saveAsMetaModelLibraryTreeItem(pLibraryTreeItem);
} 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 @@ -3510,17 +3511,39 @@ bool LibraryWidget::saveTextLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem)
*/
bool LibraryWidget::saveMetaModelLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem)
{
QString fileName;
if (pLibraryTreeItem->getFileName().isEmpty()) {
QString name = pLibraryTreeItem->getName();
fileName = StringHandler::getSaveFileName(this, QString(Helper::applicationName).append(" - ").append(tr("Save File")), NULL,
Helper::xmlFileTypes, NULL, "xml", &name);
if (fileName.isEmpty()) // if user press ESC
return false;
return saveAsMetaModelLibraryTreeItem(pLibraryTreeItem);
} else {
fileName = pLibraryTreeItem->getFileName();
return saveMetaModelLibraryTreeItem(pLibraryTreeItem, pLibraryTreeItem->getFileName());
}
}

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

return saveMetaModelLibraryTreeItem(pLibraryTreeItem, fileName);
}

/*!
* \brief LibraryWidget::saveMetaModelLibraryTreeItem
* Saves a MetaModel LibraryTreeItem.
* \param pLibraryTreeItem
* \return
*/
bool LibraryWidget::saveMetaModelLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem, QString fileName)
{
QFile file(fileName);
if (file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
QTextStream textStream(&file);
Expand Down Expand Up @@ -3570,6 +3593,7 @@ bool LibraryWidget::saveMetaModelLibraryTreeItem(LibraryTreeItem *pLibraryTreeIt
return true;
}


/*!
* \brief LibraryWidget::saveTotalLibraryTreeItemHelper
* Helper function for LibraryWidget::saveTotalLibraryTreeItem()
Expand Down
2 changes: 2 additions & 0 deletions OMEdit/OMEditGUI/Modeling/LibraryTreeWidget.h
Expand Up @@ -380,6 +380,8 @@ class LibraryWidget : public QWidget
bool saveModelicaLibraryTreeItemFolder(LibraryTreeItem *pLibraryTreeItem);
bool saveTextLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem);
bool saveMetaModelLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem);
bool saveAsMetaModelLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem);
bool saveMetaModelLibraryTreeItem(LibraryTreeItem *pLibraryTreeItem, QString fileName);
bool saveTotalLibraryTreeItemHelper(LibraryTreeItem *pLibraryTreeItem);
public slots:
void searchClasses();
Expand Down

0 comments on commit 4a5facf

Please sign in to comment.