Skip to content

Commit

Permalink
- subclass QTreeWidget for equations tree.
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@18875 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adeas31 committed Jan 30, 2014
1 parent 077eaf8 commit 5e1120f
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 50 deletions.
2 changes: 1 addition & 1 deletion OMEdit/OMEditGUI/GUI/Dialogs/SimulationDialog.cpp
Expand Up @@ -1440,7 +1440,7 @@ void SimulationOutputWidget::openTransformationBrowser(QUrl url)
if (pTreeWidgetItem)
{
pTransformationsWidget->getEquationsTreeWidget()->clearSelection();
pTreeWidgetItem->setSelected(true);
pTransformationsWidget->getEquationsTreeWidget()->setCurrentItem(pTreeWidgetItem);
}
pTransformationsWidget->fetchEquationData(equationIndex);
} else {
Expand Down
74 changes: 30 additions & 44 deletions OMEdit/OMEditGUI/GUI/Widgets/TransformationsWidget.cpp
Expand Up @@ -410,6 +410,24 @@ TVariablesTreeView::TVariablesTreeView(TransformationsWidget *pTransformationsWi
setExpandsOnDoubleClick(false);
}

EquationTreeWidget::EquationTreeWidget(TransformationsWidget *pTransformationWidget)
: QTreeWidget(pTransformationWidget), mpTransformationWidget(pTransformationWidget)
{
setItemDelegate(new ItemDelegate(this));
setObjectName("EquationsTree");
setIndentation(Helper::treeIndentation);
setColumnCount(3);
setTextElideMode(Qt::ElideMiddle);
setSortingEnabled(true);
sortByColumn(0, Qt::AscendingOrder);
setColumnWidth(0, 40);
setColumnWidth(1, 60);
QStringList headerLabels;
headerLabels << Helper::index << Helper::type << Helper::equation;
setHeaderLabels(headerLabels);
connect(this, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), mpTransformationWidget, SLOT(fetchEquationData(QTreeWidgetItem*,int)));
}

TransformationsWidget::TransformationsWidget(QString infoXMLFullFileName, MainWindow *pMainWindow)
: mInfoXMLFullFileName(infoXMLFullFileName), mpMainWindow(pMainWindow)
{
Expand Down Expand Up @@ -478,20 +496,7 @@ TransformationsWidget::TransformationsWidget(QString infoXMLFullFileName, MainWi
/* Defined in tree widget */
ElidedLabel *pDefinedInLabel = new ElidedLabel(tr("Defined In Equations"));
pDefinedInLabel->setObjectName("LabelWithBorder");
mpDefinedInEquationsTreeWidget = new QTreeWidget;
mpDefinedInEquationsTreeWidget->setItemDelegate(new ItemDelegate(mpDefinedInEquationsTreeWidget));
mpDefinedInEquationsTreeWidget->setObjectName("DefinedInTree");
mpDefinedInEquationsTreeWidget->setIndentation(Helper::treeIndentation);
mpDefinedInEquationsTreeWidget->setColumnCount(3);
mpDefinedInEquationsTreeWidget->setTextElideMode(Qt::ElideMiddle);
mpDefinedInEquationsTreeWidget->setSortingEnabled(true);
mpDefinedInEquationsTreeWidget->sortByColumn(0, Qt::AscendingOrder);
mpDefinedInEquationsTreeWidget->setColumnWidth(0, 40);
mpDefinedInEquationsTreeWidget->setColumnWidth(1, 60);
QStringList headerLabels;
headerLabels << Helper::index << Helper::type << Helper::equation;
mpDefinedInEquationsTreeWidget->setHeaderLabels(headerLabels);
connect(mpDefinedInEquationsTreeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), SLOT(fetchEquationData(QTreeWidgetItem*,int)));
mpDefinedInEquationsTreeWidget = new EquationTreeWidget(this);
QGridLayout *pDefinedInGridLayout = new QGridLayout;
pDefinedInGridLayout->setSpacing(1);
pDefinedInGridLayout->setContentsMargins(0, 0, 0, 0);
Expand All @@ -502,20 +507,7 @@ TransformationsWidget::TransformationsWidget(QString infoXMLFullFileName, MainWi
/* Used in tree widget */
ElidedLabel *pUsedInLabel = new ElidedLabel(tr("Used In Equations"));
pUsedInLabel->setObjectName("LabelWithBorder");
mpUsedInEquationsTreeWidget = new QTreeWidget;
mpUsedInEquationsTreeWidget->setItemDelegate(new ItemDelegate(mpUsedInEquationsTreeWidget));
mpUsedInEquationsTreeWidget->setObjectName("UsedInTree");
mpUsedInEquationsTreeWidget->setIndentation(Helper::treeIndentation);
mpUsedInEquationsTreeWidget->setColumnCount(3);
mpUsedInEquationsTreeWidget->setTextElideMode(Qt::ElideMiddle);
mpUsedInEquationsTreeWidget->setSortingEnabled(true);
mpUsedInEquationsTreeWidget->sortByColumn(0, Qt::AscendingOrder);
mpUsedInEquationsTreeWidget->setColumnWidth(0, 40);
mpUsedInEquationsTreeWidget->setColumnWidth(1, 60);
headerLabels.clear();
headerLabels << Helper::index << Helper::type << Helper::equation;
mpUsedInEquationsTreeWidget->setHeaderLabels(headerLabels);
connect(mpUsedInEquationsTreeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), SLOT(fetchEquationData(QTreeWidgetItem*,int)));
mpUsedInEquationsTreeWidget = new EquationTreeWidget(this);
QGridLayout *pUsedInGridLayout = new QGridLayout;
pUsedInGridLayout->setSpacing(1);
pUsedInGridLayout->setContentsMargins(0, 0, 0, 0);
Expand Down Expand Up @@ -544,20 +536,7 @@ TransformationsWidget::TransformationsWidget(QString infoXMLFullFileName, MainWi
ElidedLabel *pEquationsBrowserLabel = new ElidedLabel(tr("Equations Browser"));
pEquationsBrowserLabel->setObjectName("LabelWithBorder");
/* Equations tree widget */
mpEquationsTreeWidget = new QTreeWidget;
mpEquationsTreeWidget->setItemDelegate(new ItemDelegate(mpDefinedInEquationsTreeWidget));
mpEquationsTreeWidget->setObjectName("EquationsTree");
mpEquationsTreeWidget->setIndentation(Helper::treeIndentation);
mpEquationsTreeWidget->setColumnCount(3);
mpEquationsTreeWidget->setTextElideMode(Qt::ElideMiddle);
mpEquationsTreeWidget->setSortingEnabled(true);
mpEquationsTreeWidget->sortByColumn(0, Qt::AscendingOrder);
mpEquationsTreeWidget->setColumnWidth(0, 40);
mpEquationsTreeWidget->setColumnWidth(1, 60);
headerLabels.clear();
headerLabels << Helper::index << Helper::type << Helper::equation;
mpEquationsTreeWidget->setHeaderLabels(headerLabels);
connect(mpEquationsTreeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), SLOT(fetchEquationData(QTreeWidgetItem*,int)));
mpEquationsTreeWidget = new EquationTreeWidget(this);
QGridLayout *pEquationsGridLayout = new QGridLayout;
pEquationsGridLayout->setSpacing(1);
pEquationsGridLayout->setContentsMargins(0, 0, 0, 0);
Expand All @@ -576,7 +555,7 @@ TransformationsWidget::TransformationsWidget(QString infoXMLFullFileName, MainWi
mpDefinesVariableTreeWidget->setTextElideMode(Qt::ElideMiddle);
mpDefinesVariableTreeWidget->setSortingEnabled(true);
mpDefinesVariableTreeWidget->sortByColumn(0, Qt::AscendingOrder);
headerLabels.clear();
QStringList headerLabels;
headerLabels << tr("Variable");
mpDefinesVariableTreeWidget->setHeaderLabels(headerLabels);
QGridLayout *pDefinesGridLayout = new QGridLayout;
Expand Down Expand Up @@ -1068,5 +1047,12 @@ void TransformationsWidget::fetchEquationData(QTreeWidgetItem *pEquationTreeItem
if (!pEquationTreeItem)
return;

fetchEquationData(pEquationTreeItem->text(0).toInt());
int equationIndex = pEquationTreeItem->text(0).toInt();
QTreeWidgetItem *pTreeWidgetItem = findEquationTreeItem(equationIndex);
if (pTreeWidgetItem)
{
mpEquationsTreeWidget->clearSelection();
mpEquationsTreeWidget->setCurrentItem(pTreeWidgetItem);
}
fetchEquationData(equationIndex);
}
17 changes: 12 additions & 5 deletions OMEdit/OMEditGUI/GUI/Widgets/TransformationsWidget.h
Expand Up @@ -44,8 +44,6 @@
class MainWindow;
class TransformationsWidget;
class TVariablesTreeView;
class VariablePage;
class EquationPage;

class TVariablesTreeItem
{
Expand Down Expand Up @@ -139,6 +137,15 @@ class TVariablesTreeView : public QTreeView
TransformationsWidget *mpTransformationsWidget;
};

class EquationTreeWidget : public QTreeWidget
{
Q_OBJECT
public:
EquationTreeWidget(TransformationsWidget *pTransformationWidget);
private:
TransformationsWidget *mpTransformationWidget;
};

class InfoBar;
class TSourceEditor;
class TransformationsWidget : public QWidget
Expand Down Expand Up @@ -182,10 +189,10 @@ class TransformationsWidget : public QWidget
TVariablesTreeView *mpTVariablesTreeView;
TVariablesTreeModel *mpTVariablesTreeModel;
TVariableTreeProxyModel *mpTVariableTreeProxyModel;
QTreeWidget *mpDefinedInEquationsTreeWidget;
QTreeWidget *mpUsedInEquationsTreeWidget;
EquationTreeWidget *mpDefinedInEquationsTreeWidget;
EquationTreeWidget *mpUsedInEquationsTreeWidget;
QTreeWidget *mpVariableOperationsTreeWidget;
QTreeWidget *mpEquationsTreeWidget;
EquationTreeWidget *mpEquationsTreeWidget;
QTreeWidget *mpDefinesVariableTreeWidget;
QTreeWidget *mpDependsVariableTreeWidget;
QTreeWidget *mpEquationOperationsTreeWidget;
Expand Down

0 comments on commit 5e1120f

Please sign in to comment.