Skip to content

Commit

Permalink
- Show the nested equations. Useful for nonlinear systems.
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@18888 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adeas31 committed Jan 31, 2014
1 parent c137cbc commit bfd9932
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 4 deletions.
31 changes: 27 additions & 4 deletions OMEdit/OMEditGUI/GUI/Widgets/TransformationsWidget.cpp
Expand Up @@ -422,6 +422,7 @@ EquationTreeWidget::EquationTreeWidget(TransformationsWidget *pTransformationWid
sortByColumn(0, Qt::AscendingOrder);
setColumnWidth(0, 40);
setColumnWidth(1, 60);
setExpandsOnDoubleClick(false);
QStringList headerLabels;
headerLabels << Helper::index << Helper::type << Helper::equation;
setHeaderLabels(headerLabels);
Expand Down Expand Up @@ -844,6 +845,23 @@ void TransformationsWidget::fetchEquations()
pEquationTreeItem->setToolTip(1, values[1]);
pEquationTreeItem->setToolTip(2, values[2]);
mpEquationsTreeWidget->addTopLevelItem(pEquationTreeItem);
fetchNestedEquations(pEquationTreeItem, equation);
}
}

void TransformationsWidget::fetchNestedEquations(QTreeWidgetItem *pParentTreeWidgetItem, OMEquation &equation)
{
foreach (int equationIndex, equation.eqs)
{
OMEquation nestedEquation = mpInfoXMLFileHandler->getOMEquation(equationIndex);
QStringList values;
values << QString::number(nestedEquation.index) << OMEquationTypeToString(nestedEquation.kind) << nestedEquation.toString();
QTreeWidgetItem *pNestedEquationTreeItem = new IntegerTreeWidgetItem(values, mpEquationsTreeWidget);
pNestedEquationTreeItem->setToolTip(0, values[0]);
pNestedEquationTreeItem->setToolTip(1, values[1]);
pNestedEquationTreeItem->setToolTip(2, values[2]);
pParentTreeWidgetItem->addChild(pNestedEquationTreeItem);
fetchNestedEquations(pNestedEquationTreeItem, nestedEquation);
}
}

Expand Down Expand Up @@ -1048,11 +1066,16 @@ void TransformationsWidget::fetchEquationData(QTreeWidgetItem *pEquationTreeItem
return;

int equationIndex = pEquationTreeItem->text(0).toInt();
QTreeWidgetItem *pTreeWidgetItem = findEquationTreeItem(equationIndex);
if (pTreeWidgetItem)
/* if the sender is mpEquationsTreeWidget then there is no need to select the item. */
EquationTreeWidget *pSender = qobject_cast<EquationTreeWidget*>(sender());
if (pSender != mpEquationsTreeWidget)
{
mpEquationsTreeWidget->clearSelection();
mpEquationsTreeWidget->setCurrentItem(pTreeWidgetItem);
QTreeWidgetItem *pTreeWidgetItem = findEquationTreeItem(equationIndex);
if (pTreeWidgetItem)
{
mpEquationsTreeWidget->clearSelection();
mpEquationsTreeWidget->setCurrentItem(pTreeWidgetItem);
}
}
fetchEquationData(equationIndex);
}
1 change: 1 addition & 0 deletions OMEdit/OMEditGUI/GUI/Widgets/TransformationsWidget.h
Expand Up @@ -171,6 +171,7 @@ class TransformationsWidget : public QWidget
void fetchUsedInEquations(OMVariable &variable);
void fetchOperations(OMVariable &variable);
void fetchEquations();
void fetchNestedEquations(QTreeWidgetItem *pParentTreeWidgetItem, OMEquation &equation);
QTreeWidgetItem* findEquationTreeItem(int equationIndex);
void fetchEquationData(int equationIndex);
void fetchDefines(OMEquation &equation);
Expand Down

0 comments on commit bfd9932

Please sign in to comment.