Skip to content

Commit

Permalink
- Made algorithmicDebugger more easily accessible for users.
Browse files Browse the repository at this point in the history
- Added new svg icons for simulate.
- changed Debugger Log to Debugger CLI.

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@22820 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adeas31 committed Oct 20, 2014
1 parent 9fd6a90 commit 26899f6
Show file tree
Hide file tree
Showing 15 changed files with 377 additions and 11 deletions.
45 changes: 41 additions & 4 deletions OMEdit/OMEditGUI/MainWindow.cpp
Expand Up @@ -704,7 +704,18 @@ void MainWindow::simulate(LibraryTreeNode *pLibraryTreeNode)
if (!pLibraryTreeNode->getModelWidget()->getModelicaTextEditor()->validateModelicaText())
return;
}
mpSimulationDialog->directSimulate(pLibraryTreeNode, false);
mpSimulationDialog->directSimulate(pLibraryTreeNode, false, false);
}

void MainWindow::simulateWithAlgorithmicDebugger(LibraryTreeNode *pLibraryTreeNode)
{
/* if Modelica text is changed manually by user then validate it before saving. */
if (pLibraryTreeNode->getModelWidget())
{
if (!pLibraryTreeNode->getModelWidget()->getModelicaTextEditor()->validateModelicaText())
return;
}
mpSimulationDialog->directSimulate(pLibraryTreeNode, false, true);
}

void MainWindow::simulationSetup(LibraryTreeNode *pLibraryTreeNode)
Expand Down Expand Up @@ -1341,7 +1352,10 @@ void MainWindow::checkAllModels()
}
}

//! Open Simulation Window
/*!
Simualtes the model directly.
*/
//!
void MainWindow::simulateModel()
{
ModelWidget *pModelWidget = mpModelWidgetContainer->getCurrentModelWidget();
Expand All @@ -1353,7 +1367,23 @@ void MainWindow::simulateModel()
}
}

//! Open Simulation Window
/*!
Simualtes the model with algorithmic debugger
*/
void MainWindow::simulateModelWithAlgorithmicDebugger()
{
ModelWidget *pModelWidget = mpModelWidgetContainer->getCurrentModelWidget();
if (pModelWidget)
{
LibraryTreeNode *pLibraryTreeNode = pModelWidget->getLibraryTreeNode();
if (pLibraryTreeNode)
simulateWithAlgorithmicDebugger(pLibraryTreeNode);
}
}

/*!
Opens the Simualtion Dialog
*/
void MainWindow::openSimulationDialog()
{
ModelWidget *pModelWidget = mpModelWidgetContainer->getCurrentModelWidget();
Expand Down Expand Up @@ -1965,11 +1995,16 @@ void MainWindow::createActions()
mpCheckAllModelsAction->setEnabled(false);
connect(mpCheckAllModelsAction, SIGNAL(triggered()), SLOT(checkAllModels()));
// simulate action
mpSimulateModelAction = new QAction(QIcon(":/Resources/icons/simulate.png"), Helper::simulate, this);
mpSimulateModelAction = new QAction(QIcon(":/Resources/icons/simulate.svg"), Helper::simulate, this);
mpSimulateModelAction->setStatusTip(Helper::simulateTip);
mpSimulateModelAction->setShortcut(QKeySequence("Ctrl+b"));
mpSimulateModelAction->setEnabled(false);
connect(mpSimulateModelAction, SIGNAL(triggered()), SLOT(simulateModel()));
// simulate with algorithmic debugger action
mpSimulateWithAlgorithmicDebuggerAction = new QAction(QIcon(":/Resources/icons/simulate-debug.svg"), Helper::simulateWithAlgorithmicDebugger, this);
mpSimulateWithAlgorithmicDebuggerAction->setStatusTip(Helper::simulateWithAlgorithmicDebuggerTip);
mpSimulateWithAlgorithmicDebuggerAction->setEnabled(false);
connect(mpSimulateWithAlgorithmicDebuggerAction, SIGNAL(triggered()), SLOT(simulateModelWithAlgorithmicDebugger()));
// simulation setup action
mpSimulationSetupAction = new QAction(QIcon(":/Resources/icons/simulation-center.svg"), Helper::simulationSetup, this);
mpSimulationSetupAction->setStatusTip(Helper::simulationSetupTip);
Expand Down Expand Up @@ -2227,6 +2262,7 @@ void MainWindow::createMenus()
pSimulationMenu->addAction(mpCheckModelAction);
pSimulationMenu->addAction(mpCheckAllModelsAction);
pSimulationMenu->addAction(mpSimulateModelAction);
pSimulationMenu->addAction(mpSimulateWithAlgorithmicDebuggerAction);
pSimulationMenu->addAction(mpSimulationSetupAction);
// add Simulation menu to menu bar
menuBar()->addAction(pSimulationMenu->menuAction());
Expand Down Expand Up @@ -2382,6 +2418,7 @@ void MainWindow::createToolbars()
mpSimulationToolBar->addAction(mpCheckModelAction);
mpSimulationToolBar->addAction(mpCheckAllModelsAction);
mpSimulationToolBar->addAction(mpSimulateModelAction);
mpSimulationToolBar->addAction(mpSimulateWithAlgorithmicDebuggerAction);
mpSimulationToolBar->addAction(mpSimulationSetupAction);
// Model Swithcer Toolbar
mpModelSwitcherToolBar = addToolBar(tr("ModelSwitcher Toolbar"));
Expand Down
4 changes: 4 additions & 0 deletions OMEdit/OMEditGUI/MainWindow.h
Expand Up @@ -123,6 +123,7 @@ class MainWindow : public QMainWindow
QAction* getZoomInAction();
QAction* getZoomOutAction();
QAction* getSimulateModelAction();
QAction* getSimulateWithAlgorithmicDebuggerAction() {return mpSimulateWithAlgorithmicDebuggerAction;}
QAction* getSimulationSetupAction();
QAction* getInstantiateModelAction();
QAction* getCheckModelAction();
Expand Down Expand Up @@ -152,6 +153,7 @@ class MainWindow : public QMainWindow
void openDroppedFile(QDropEvent *event);
void openResultFiles(QStringList fileNames);
void simulate(LibraryTreeNode *pLibraryTreeNode);
void simulateWithAlgorithmicDebugger(LibraryTreeNode *pLibraryTreeNode);
void simulationSetup(LibraryTreeNode *pLibraryTreeNode);
void instantiatesModel(LibraryTreeNode *pLibraryTreeNode);
void checkModel(LibraryTreeNode *pLibraryTreeNode);
Expand Down Expand Up @@ -230,6 +232,7 @@ class MainWindow : public QMainWindow
QAction *mpCheckModelAction;
QAction *mpCheckAllModelsAction;
QAction *mpSimulateModelAction;
QAction *mpSimulateWithAlgorithmicDebuggerAction;
QAction *mpSimulationSetupAction;
// FMI Menu
QAction *mpExportFMUAction;
Expand Down Expand Up @@ -304,6 +307,7 @@ public slots:
void checkModel();
void checkAllModels();
void simulateModel();
void simulateModelWithAlgorithmicDebugger();
void openSimulationDialog();
void openInteractiveSimulation();
void showFindReplaceDialog();
Expand Down
18 changes: 17 additions & 1 deletion OMEdit/OMEditGUI/Modeling/LibraryTreeWidget.cpp
Expand Up @@ -570,9 +570,14 @@ void LibraryTreeWidget::createActions()
mpCheckAllModelsAction->setStatusTip(Helper::checkAllModelsTip);
connect(mpCheckAllModelsAction, SIGNAL(triggered()), SLOT(checkAllModels()));
// simulate Action
mpSimulateAction = new QAction(QIcon(":/Resources/icons/simulate.png"), Helper::simulate, this);
mpSimulateAction = new QAction(QIcon(":/Resources/icons/simulate.svg"), Helper::simulate, this);
mpSimulateAction->setStatusTip(Helper::simulateTip);
mpSimulateAction->setShortcut(QKeySequence("Ctrl+b"));
connect(mpSimulateAction, SIGNAL(triggered()), SLOT(simulate()));
// simulate with algorithmic debugger Action
mpSimulateWithAlgorithmicDebuggerAction = new QAction(QIcon(":/Resources/icons/simulate-debug.svg"), Helper::simulateWithAlgorithmicDebugger, this);
mpSimulateWithAlgorithmicDebuggerAction->setStatusTip(Helper::simulateWithAlgorithmicDebuggerTip);
connect(mpSimulateWithAlgorithmicDebuggerAction, SIGNAL(triggered()), SLOT(simulateWithAlgorithmicDebugger()));
// simulation setup Action
mpSimulationSetupAction = new QAction(QIcon(":/Resources/icons/simulation-center.svg"), Helper::simulationSetup, this);
mpSimulationSetupAction->setStatusTip(Helper::simulationSetupTip);
Expand Down Expand Up @@ -1512,6 +1517,7 @@ void LibraryTreeWidget::showContextMenu(QPoint point)
menu.addAction(mpCheckModelAction);
menu.addAction(mpCheckAllModelsAction);
menu.addAction(mpSimulateAction);
menu.addAction(mpSimulateWithAlgorithmicDebuggerAction);
menu.addAction(mpSimulationSetupAction);
/* If item is OpenModelica or part of it or is search tree item then don't show the unload for it. */
if (!((StringHandler::getFirstWordBeforeDot(pLibraryTreeNode->getNameStructure()).compare("OpenModelica") == 0) || isSearchedTree()))
Expand Down Expand Up @@ -1575,6 +1581,16 @@ void LibraryTreeWidget::simulate()
mpMainWindow->simulate(pLibraryTreeNode);
}

void LibraryTreeWidget::simulateWithAlgorithmicDebugger()
{
QList<QTreeWidgetItem*> selectedItemsList = selectedItems();
if (selectedItemsList.isEmpty())
return;
LibraryTreeNode *pLibraryTreeNode = dynamic_cast<LibraryTreeNode*>(selectedItemsList.at(0));
if (pLibraryTreeNode)
mpMainWindow->simulateWithAlgorithmicDebugger(pLibraryTreeNode);
}

void LibraryTreeWidget::simulationSetup()
{
QList<QTreeWidgetItem*> selectedItemsList = selectedItems();
Expand Down
2 changes: 2 additions & 0 deletions OMEdit/OMEditGUI/Modeling/LibraryTreeWidget.h
Expand Up @@ -199,6 +199,7 @@ class LibraryTreeWidget : public QTreeWidget
QAction *mpCheckModelAction;
QAction *mpCheckAllModelsAction;
QAction *mpSimulateAction;
QAction *mpSimulateWithAlgorithmicDebuggerAction;
QAction *mpSimulationSetupAction;
QAction *mpUnloadClassAction;
QAction *mpUnloadTextFileAction;
Expand All @@ -224,6 +225,7 @@ public slots:
void createNewModelicaClass();
void viewDocumentation();
void simulate();
void simulateWithAlgorithmicDebugger();
void simulationSetup();
void instantiateModel();
void checkModel();
Expand Down
1 change: 1 addition & 0 deletions OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.cpp
Expand Up @@ -3182,6 +3182,7 @@ void ModelWidgetContainer::currentModelWidgetChanged(QMdiSubWindow *pSubWindow)
getMainWindow()->getZoomInAction()->setEnabled(enabled && modelica);
getMainWindow()->getZoomOutAction()->setEnabled(enabled && modelica);
getMainWindow()->getSimulateModelAction()->setEnabled(enabled && modelica);
getMainWindow()->getSimulateWithAlgorithmicDebuggerAction()->setEnabled(enabled && modelica);
getMainWindow()->getSimulationSetupAction()->setEnabled(enabled && modelica);
getMainWindow()->getInstantiateModelAction()->setEnabled(enabled && modelica);
getMainWindow()->getCheckModelAction()->setEnabled(enabled && modelica);
Expand Down
10 changes: 8 additions & 2 deletions OMEdit/OMEditGUI/Options/OptionsDialog.cpp
Expand Up @@ -682,7 +682,7 @@ void OptionsDialog::addListItems()
pGraphicalViewsItem->setText(tr("Graphical Views"));
// Simulation Item
QListWidgetItem *pSimulationItem = new QListWidgetItem(mpOptionsList);
pSimulationItem->setIcon(QIcon(":/Resources/icons/simulate.png"));
pSimulationItem->setIcon(QIcon(":/Resources/icons/simulate.svg"));
pSimulationItem->setText(Helper::simulation);
// Notifications Item
QListWidgetItem *pNotificationsItem = new QListWidgetItem(mpOptionsList);
Expand Down Expand Up @@ -2928,7 +2928,13 @@ DebuggerPage::DebuggerPage(OptionsDialog *pParent)
// GDB Path
mpGDBPathLabel = new Label(tr("GDB Path:"));
#ifdef WIN32
mpGDBPathTextBox = new QLineEdit(QString(Helper::OpenModelicaHome).append("/MinGW/bin/gdb.exe"));
const char *OMDEV = getenv("OMDEV");
if (QString(OMDEV).isEmpty()) {
mpGDBPathTextBox = new QLineEdit(QString(Helper::OpenModelicaHome).append("/MinGW/bin/gdb.exe"));
} else {
QString qOMDEV = QString(OMDEV).replace("\\", "/");
mpGDBPathTextBox = new QLineEdit(QString(qOMDEV).append("/tools/mingw/bin/gdb.exe"));
}
#else
mpGDBPathTextBox = new QLineEdit("gdb");
#endif
Expand Down
2 changes: 1 addition & 1 deletion OMEdit/OMEditGUI/Plotting/VariablesWidget.cpp
Expand Up @@ -1189,7 +1189,7 @@ void VariablesWidget::showContextMenu(QPoint point)
pDeleteResultAction->setStatusTip(tr("Delete the result"));
connect(pDeleteResultAction, SIGNAL(triggered()), mpVariablesTreeModel, SLOT(removeVariableTreeItem()));
/* re-simulate action */
QAction *pReSimulateAction = new QAction(QIcon(":/Resources/icons/simulate.png"), tr("Re-simulate"), this);
QAction *pReSimulateAction = new QAction(QIcon(":/Resources/icons/simulate.svg"), tr("Re-simulate"), this);
pReSimulateAction->setData(pVariablesTreeItem->getSimulationOptions());
pReSimulateAction->setStatusTip(Helper::simulateTip);
pReSimulateAction->setEnabled(pVariablesTreeItem->getSimulationOptions().isValid());
Expand Down

0 comments on commit 26899f6

Please sign in to comment.