From da3af12114d7698e7de89d533268527223f21af5 Mon Sep 17 00:00:00 2001 From: Adeel Asghar Date: Fri, 5 May 2017 12:02:32 +0200 Subject: [PATCH] ticket:4401 Fixed opening of component class through double click. Allow opening component class via shift + enter. --- .../Modeling/ModelWidgetContainer.cpp | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.cpp b/OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.cpp index 2b10ac87896..cd9e14388e2 100644 --- a/OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.cpp +++ b/OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.cpp @@ -1984,18 +1984,19 @@ void GraphicsView::mouseDoubleClickEvent(QMouseEvent *event) if (pGraphicsItem && pGraphicsItem->parentItem()) { Component *pComponent = dynamic_cast(pGraphicsItem->parentItem()); if (pComponent) { - if (mpModelWidget->getLibraryTreeItem()->getLibraryType() == LibraryTreeItem::CompositeModel) { - pComponent->showSubModelAttributes(); - return; - } else { - if (!pComponent->getParentComponent()) { // if root component is double clicked. + Component *pRootComponent = pComponent->getRootParentComponent(); + if (pRootComponent) { + if (mpModelWidget->getLibraryTreeItem()->getLibraryType() == LibraryTreeItem::CompositeModel) { + pRootComponent->showSubModelAttributes(); + return; + } else { removeCurrentConnection(); /* ticket:4401 Open component class with shift + double click */ if (QApplication::keyboardModifiers() == Qt::ShiftModifier) { - pComponent->openClass(); + pRootComponent->openClass(); return; } else { - pComponent->showParameters(); + pRootComponent->showParameters(); return; } } @@ -2098,6 +2099,18 @@ void GraphicsView::keyPressEvent(QKeyEvent *event) mpModelWidget->beginMacro("Flip vertical by key press"); emit keyPressFlipVertical(); mpModelWidget->endMacro(); + } else if (shiftModifier && !controlModifier && (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)) { + /* ticket:4401 Open component class with shift + Enter */ + QList selectedItems = scene()->selectedItems(); + if (selectedItems.size() == 1) { + Component *pComponent = dynamic_cast(selectedItems.at(0)); + if (pComponent) { + Component *pRootComponent = pComponent->getRootParentComponent(); + if (pRootComponent) { + pRootComponent->openClass(); + } + } + } } else if (event->key() == Qt::Key_Escape && isCreatingConnection()) { removeCurrentConnection(); } else {