Skip to content

Commit 3a8a1e7

Browse files
committed
Fixes #3746. Add uses annotation for the package.
1 parent cd90f74 commit 3a8a1e7

File tree

4 files changed

+46
-10
lines changed

4 files changed

+46
-10
lines changed

OMEdit/OMEditGUI/MainWindow.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3229,14 +3229,16 @@ void MainWindow::dropEvent(QDropEvent *event)
32293229
}
32303230

32313231
/*!
3232-
Reimplementation of resizeEvent.\n
3233-
Resizes the AboutOMEditWidget whenever the MainWindow is resized.
3234-
*/
3232+
* \brief MainWindow::resizeEvent
3233+
* Reimplementation of resizeEvent.\n
3234+
* Resizes the AboutOMEditWidget whenever the MainWindow is resized.
3235+
* \param event
3236+
*/
32353237
void MainWindow::resizeEvent(QResizeEvent *event)
32363238
{
3237-
if (mpAboutOMEditDialog)
3238-
if (mpAboutOMEditDialog->isVisible())
3239-
mpAboutOMEditDialog->setGeometry(QRect(rect().center() - QPoint(262, 235), rect().center() + QPoint(262, 235)));
3239+
if (mpAboutOMEditDialog && mpAboutOMEditDialog->isVisible()) {
3240+
mpAboutOMEditDialog->setGeometry(QRect(rect().center() - QPoint(262, 235), rect().center() + QPoint(262, 235)));
3241+
}
32403242
QMainWindow::resizeEvent(event);
32413243
}
32423244

OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.cpp

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,28 @@ void GraphicsView::addComponentToClass(Component *pComponent)
366366
}
367367
pMainWindow->getOMCProxy()->addComponent(pComponent->getName(), className, mpModelWidget->getLibraryTreeItem()->getNameStructure(),
368368
pComponent->getPlacementAnnotation());
369+
// get uses annotation of the class
370+
QString packageName = StringHandler::getFirstWordBeforeDot(pComponent->getLibraryTreeItem()->getNameStructure());
371+
LibraryTreeItem *pPackageLibraryTreeItem = pMainWindow->getLibraryWidget()->getLibraryTreeModel()->findLibraryTreeItem(packageName);
372+
if (pPackageLibraryTreeItem) {
373+
QList<QList<QString > > usesAnnotation = pMainWindow->getOMCProxy()->getUses(mpModelWidget->getLibraryTreeItem()->getNameStructure());
374+
QStringList newUsesAnnotation;
375+
for (int i = 0 ; i < usesAnnotation.size() ; i++) {
376+
for (int j = 0 ; j < usesAnnotation.at(i).size() ; j++) {
377+
if (usesAnnotation.at(i).at(0).compare(packageName) == 0) {
378+
return; // if the package is already in uses annotation of class then simply return without doing anything.
379+
} else {
380+
newUsesAnnotation.append(QString("%1(version=\"%2\")").arg(usesAnnotation.at(i).at(0)).arg(usesAnnotation.at(i).at(1)));
381+
}
382+
}
383+
}
384+
// if the package has version only then add the uses annotation
385+
if (!pPackageLibraryTreeItem->mClassInformation.version.isEmpty()) {
386+
newUsesAnnotation.append(QString("%1(version=\"%2\")").arg(packageName).arg(pPackageLibraryTreeItem->mClassInformation.version));
387+
QString usesAnnotationString = QString("annotate=$annotation(uses(%1))").arg(newUsesAnnotation.join(","));
388+
pMainWindow->getOMCProxy()->addClassAnnotation(mpModelWidget->getLibraryTreeItem()->getNameStructure(), usesAnnotationString);
389+
}
390+
}
369391
} else if (mpModelWidget->getLibraryTreeItem()->getLibraryType()== LibraryTreeItem::TLM) {
370392
TLMEditor *pTLMEditor = dynamic_cast<TLMEditor*>(mpModelWidget->getEditor());
371393
QFileInfo fileInfo(pComponent->getLibraryTreeItem()->getFileName());
@@ -3806,10 +3828,8 @@ void ModelWidgetContainer::addModelWidget(ModelWidget *pModelWidget, bool checkP
38063828
return;
38073829
}
38083830
// get the preferred view to display
3809-
mpMainWindow->getOMCProxy()->sendCommand(QString("getNamedAnnotation(").append(pModelWidget->getLibraryTreeItem()->getNameStructure()).append(", preferredView)"));
3810-
QStringList preferredViewList = StringHandler::unparseStrings(mpMainWindow->getOMCProxy()->getResult());
3811-
if (!preferredViewList.isEmpty()) {
3812-
QString preferredView = preferredViewList.at(0);
3831+
QString preferredView = pModelWidget->getLibraryTreeItem()->mClassInformation.preferredView;
3832+
if (preferredView.isEmpty()) {
38133833
if (preferredView.compare("info") == 0) {
38143834
pModelWidget->showDocumentationView();
38153835
loadPreviousViewType(pModelWidget);

OMEdit/OMEditGUI/OMC/OMCProxy.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2506,6 +2506,19 @@ bool OMCProxy::inferBindings(QString className)
25062506
return result;
25072507
}
25082508

2509+
/*!
2510+
* \brief OMCProxy::getUses
2511+
* Returns the uses annotation.
2512+
* \param className
2513+
* \return
2514+
*/
2515+
QList<QList<QString > > OMCProxy::getUses(QString className)
2516+
{
2517+
QList<QList<QString > > result = mpOMCInterface->getUses(className);
2518+
printMessagesStringInternal();
2519+
return result;
2520+
}
2521+
25092522
/*!
25102523
\class CustomExpressionBox
25112524
\brief A text box for executing OMC commands.

OMEdit/OMEditGUI/OMC/OMCProxy.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ class OMCProxy : public QObject
227227
bool moveClassToTop(QString className);
228228
bool moveClassToBottom(QString className);
229229
bool inferBindings(QString className);
230+
QList<QList<QString > > getUses(QString className);
230231
signals:
231232
void commandFinished();
232233
public slots:

0 commit comments

Comments
 (0)