Skip to content

Commit fadf2cf

Browse files
committed
- Fixed go to line. Compare the current & parent models filename.
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@18780 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent d07f716 commit fadf2cf

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

OMEdit/OMEditGUI/GUI/Widgets/LibraryTreeWidget.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,6 +1010,23 @@ bool LibraryTreeWidget::saveLibraryTreeNode(LibraryTreeNode *pLibraryTreeNode)
10101010
return result;
10111011
}
10121012

1013+
LibraryTreeNode* LibraryTreeWidget::findParentLibraryTreeNodeSavedInSameFile(LibraryTreeNode *pLibraryTreeNode, QFileInfo fileInfo)
1014+
{
1015+
LibraryTreeNode *pParentLibraryTreeNode = getLibraryTreeNode(pLibraryTreeNode->getParentName());
1016+
if (pParentLibraryTreeNode)
1017+
{
1018+
QFileInfo libraryTreeNodeFileInfo(pParentLibraryTreeNode->getFileName());
1019+
if (fileInfo.absoluteFilePath().compare(libraryTreeNodeFileInfo.absoluteFilePath()) == 0)
1020+
return findParentLibraryTreeNodeSavedInSameFile(pParentLibraryTreeNode, fileInfo);
1021+
else
1022+
return pLibraryTreeNode;
1023+
}
1024+
else
1025+
{
1026+
return pLibraryTreeNode;
1027+
}
1028+
}
1029+
10131030
bool LibraryTreeWidget::saveLibraryTreeNodeHelper(LibraryTreeNode *pLibraryTreeNode)
10141031
{
10151032
mpMainWindow->getStatusBar()->showMessage(QString(tr("Saving")).append(" ").append(pLibraryTreeNode->getNameStructure()));

OMEdit/OMEditGUI/GUI/Widgets/LibraryTreeWidget.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ class LibraryTreeWidget : public QTreeWidget
169169
bool unloadClass(LibraryTreeNode *pLibraryTreeNode, bool askQuestion = true);
170170
void unloadClassHelper(LibraryTreeNode *pLibraryTreeNode);
171171
bool saveLibraryTreeNode(LibraryTreeNode *pLibraryTreeNode);
172+
LibraryTreeNode* findParentLibraryTreeNodeSavedInSameFile(LibraryTreeNode *pLibraryTreeNode, QFileInfo fileInfo);
172173
private:
173174
MainWindow *mpMainWindow;
174175
bool mIsSearchTree;

OMEdit/OMEditGUI/GUI/Widgets/TransformationsWidget.cpp

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,28 @@ void VariablePage::fetchVariableData(QTreeWidgetItem *pVariableTreeItem, int col
412412
fetchDefinedInEquations(variable);
413413
/* fetch used in equations */
414414
fetchUsedInEquations(variable);
415+
/* open the model with and go to the variable line */
416+
MainWindow *pMainWindow = mpTransformationsWidget->getMainWindow();
417+
QFileInfo fileInfo(variable.info.file);
418+
foreach (LibraryTreeNode* pLibraryTreeNode, pMainWindow->getLibraryTreeWidget()->getLibraryTreeNodesList())
419+
{
420+
QFileInfo libraryTreeNodeFileInfo(pLibraryTreeNode->getFileName());
421+
if (fileInfo.absoluteFilePath().compare(libraryTreeNodeFileInfo.absoluteFilePath()) == 0)
422+
{
423+
/* find the root library tree node. */
424+
LibraryTreeNode *pParentLibraryTreeNode;
425+
pParentLibraryTreeNode = pMainWindow->getLibraryTreeWidget()->findParentLibraryTreeNodeSavedInSameFile(pLibraryTreeNode, fileInfo);
426+
if (pParentLibraryTreeNode)
427+
{
428+
pMainWindow->getLibraryTreeWidget()->showModelWidget(pParentLibraryTreeNode);
429+
if (pParentLibraryTreeNode->getModelWidget())
430+
{
431+
pParentLibraryTreeNode->getModelWidget()->showModelicaTextView(true);
432+
pParentLibraryTreeNode->getModelWidget()->getModelicaTextWidget()->getModelicaTextEdit()->goToLineNumber(variable.info.lineStart);
433+
}
434+
}
435+
}
436+
}
415437
}
416438

417439
void VariablePage::variablesItemChanged(QTreeWidgetItem *current)
@@ -564,7 +586,7 @@ void EquationPage::fetchEquationData(int equationIndex)
564586
fetchDepends(equation);
565587
/* fetch operations */
566588
fetchOperations(equation);
567-
/* open the model with and go to the line */
589+
/* open the model with and go to the equation line */
568590
MainWindow *pMainWindow = mpTransformationsWidget->getMainWindow();
569591
QFileInfo fileInfo(equation.info.file);
570592
foreach (LibraryTreeNode* pLibraryTreeNode, pMainWindow->getLibraryTreeWidget()->getLibraryTreeNodesList())
@@ -573,7 +595,8 @@ void EquationPage::fetchEquationData(int equationIndex)
573595
if (fileInfo.absoluteFilePath().compare(libraryTreeNodeFileInfo.absoluteFilePath()) == 0)
574596
{
575597
/* find the root library tree node. */
576-
LibraryTreeNode *pParentLibraryTreeNode = pMainWindow->getLibraryTreeWidget()->getLibraryTreeNode(StringHandler::getFirstWordBeforeDot(pLibraryTreeNode->getNameStructure()));
598+
LibraryTreeNode *pParentLibraryTreeNode;
599+
pParentLibraryTreeNode = pMainWindow->getLibraryTreeWidget()->findParentLibraryTreeNodeSavedInSameFile(pLibraryTreeNode, fileInfo);
577600
if (pParentLibraryTreeNode)
578601
{
579602
pMainWindow->getLibraryTreeWidget()->showModelWidget(pParentLibraryTreeNode);

0 commit comments

Comments
 (0)