Skip to content

Commit 59175cf

Browse files
committed
Don't miss out the element double click (#6852)
1 parent 00a0b9b commit 59175cf

File tree

3 files changed

+28
-21
lines changed

3 files changed

+28
-21
lines changed

OMEdit/OMEditLIB/Element/CornerItem.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ class OriginItem : public QGraphicsItem
106106
public:
107107
OriginItem(Element *pComponent);
108108
OriginItem(ShapeAnnotation *pShapeAnnotation);
109+
Element* getElement() {return mpComponent;}
109110
void setActive();
110111
void setPassive();
111112
QRectF boundingRect() const {return mRectangle;}

OMEdit/OMEditLIB/Modeling/ModelWidgetContainer.cpp

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1904,36 +1904,42 @@ bool GraphicsView::isAnyItemSelectedAndEditable(int key)
19041904
/*!
19051905
* \brief GraphicsView::getComponentFromQGraphicsItem
19061906
* \param pGraphicsItem
1907-
* A QGraphicsItem can be a Component or a ShapeAnnotation inside a Component.
1907+
* A QGraphicsItem can be a Element or a ShapeAnnotation inside a Element.
19081908
* \return
19091909
*/
1910-
Element *GraphicsView::getComponentFromQGraphicsItem(QGraphicsItem *pGraphicsItem)
1910+
Element *GraphicsView::getElementFromQGraphicsItem(QGraphicsItem *pGraphicsItem)
19111911
{
19121912
if (pGraphicsItem) {
1913-
Element *pComponent = dynamic_cast<Element*>(pGraphicsItem);
1914-
if (!pComponent && pGraphicsItem->parentItem()) {
1915-
pComponent = dynamic_cast<Element*>(pGraphicsItem->parentItem());
1913+
Element *pElement = dynamic_cast<Element*>(pGraphicsItem);
1914+
if (!pElement && pGraphicsItem->parentItem()) {
1915+
pElement = dynamic_cast<Element*>(pGraphicsItem->parentItem());
19161916
}
1917-
return pComponent;
1917+
if (!pElement) {
1918+
OriginItem *pOriginItem = dynamic_cast<OriginItem*>(pGraphicsItem);
1919+
if (pOriginItem) {
1920+
pElement = pOriginItem->getElement();
1921+
}
1922+
}
1923+
return pElement;
19181924
}
19191925
return 0;
19201926
}
19211927

19221928
/*!
1923-
* \brief GraphicsView::componentAtPosition
1924-
* Returns the first component at the position.
1929+
* \brief GraphicsView::elementAtPosition
1930+
* Returns the first Element at the position.
19251931
* \param position
19261932
* \return
19271933
*/
1928-
Element *GraphicsView::componentAtPosition(QPoint position)
1934+
Element *GraphicsView::elementAtPosition(QPoint position)
19291935
{
19301936
QList<QGraphicsItem*> graphicsItems = items(position);
19311937
foreach (QGraphicsItem *pGraphicsItem, graphicsItems) {
1932-
Element *pComponent = getComponentFromQGraphicsItem(pGraphicsItem);
1933-
if (pComponent) {
1934-
Element *pRootComponent = pComponent->getRootParentComponent();
1935-
if (pRootComponent && pRootComponent->getLibraryTreeItem() && !pRootComponent->getLibraryTreeItem()->isNonExisting()) {
1936-
return pRootComponent;
1938+
Element *pElement = getElementFromQGraphicsItem(pGraphicsItem);
1939+
if (pElement) {
1940+
Element *pRootElement = pElement->getRootParentComponent();
1941+
if (pRootElement && pRootElement->getLibraryTreeItem() && !pRootElement->getLibraryTreeItem()->isNonExisting()) {
1942+
return pRootElement;
19371943
}
19381944
}
19391945
}
@@ -1955,7 +1961,7 @@ Element* GraphicsView::connectorComponentAtPosition(QPoint position)
19551961
*/
19561962
QList<QGraphicsItem*> graphicsItems = items(position);
19571963
foreach (QGraphicsItem *pGraphicsItem, graphicsItems) {
1958-
Element *pComponent = getComponentFromQGraphicsItem(pGraphicsItem);
1964+
Element *pComponent = getElementFromQGraphicsItem(pGraphicsItem);
19591965
if (pComponent) {
19601966
Element *pRootComponent = pComponent->getRootParentComponent();
19611967
if (pRootComponent && pRootComponent->isSelected()) {
@@ -1987,7 +1993,7 @@ Element* GraphicsView::stateComponentAtPosition(QPoint position)
19871993
{
19881994
QList<QGraphicsItem*> graphicsItems = items(position);
19891995
foreach (QGraphicsItem *pGraphicsItem, graphicsItems) {
1990-
Element *pComponent = getComponentFromQGraphicsItem(pGraphicsItem);
1996+
Element *pComponent = getElementFromQGraphicsItem(pGraphicsItem);
19911997
if (pComponent) {
19921998
Element *pRootComponent = pComponent->getRootParentComponent();
19931999
if (pRootComponent && !pRootComponent->isSelected()) {
@@ -3476,7 +3482,7 @@ bool GraphicsView::handleDoubleClickOnComponent(QMouseEvent *event)
34763482
{
34773483
QGraphicsItem *pGraphicsItem = itemAt(event->pos());
34783484
bool shouldEnactQTDoubleClick = true;
3479-
Element *pComponent = getComponentFromQGraphicsItem(pGraphicsItem);
3485+
Element *pComponent = getElementFromQGraphicsItem(pGraphicsItem);
34803486
if (pComponent) {
34813487
shouldEnactQTDoubleClick = false;
34823488
Element *pRootComponent = pComponent->getRootParentComponent();
@@ -3790,7 +3796,7 @@ void GraphicsView::contextMenuEvent(QContextMenuEvent *event)
37903796
oneShapeSelected = scene()->selectedItems().size() == 1;
37913797
} else {
37923798
// if a component is right clicked
3793-
pComponent = componentAtPosition(event->pos());
3799+
pComponent = elementAtPosition(event->pos());
37943800
if (pComponent) {
37953801
if (!pComponent->isSelected()) {
37963802
clearSelection(pComponent);
@@ -3836,7 +3842,7 @@ void GraphicsView::contextMenuEvent(QContextMenuEvent *event)
38363842
bool noInheritedItemSelected = true;
38373843
QList<QGraphicsItem*> graphicsItems = scene()->selectedItems();
38383844
foreach (QGraphicsItem *pGraphicsItem, graphicsItems) {
3839-
Element *pComponent = getComponentFromQGraphicsItem(pGraphicsItem);
3845+
Element *pComponent = getElementFromQGraphicsItem(pGraphicsItem);
38403846
if (pComponent) {
38413847
Element *pRootComponent = pComponent->getRootParentComponent();
38423848
if (pRootComponent && pRootComponent->isInheritedElement() && pRootComponent->isSelected()) {

OMEdit/OMEditLIB/Modeling/ModelWidgetContainer.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,8 @@ class GraphicsView : public QGraphicsView
298298
bool isClassDroppedOnItself(LibraryTreeItem *pLibraryTreeItem);
299299
bool isAnyItemSelectedAndEditable(int key);
300300
bool isCreatingShape();
301-
Element* getComponentFromQGraphicsItem(QGraphicsItem *pGraphicsItem);
302-
Element* componentAtPosition(QPoint position);
301+
Element* getElementFromQGraphicsItem(QGraphicsItem *pGraphicsItem);
302+
Element* elementAtPosition(QPoint position);
303303
Element* connectorComponentAtPosition(QPoint position);
304304
Element* stateComponentAtPosition(QPoint position);
305305
static bool updateComponentConnectorSizingParameter(GraphicsView *pGraphicsView, QString className, Element *pComponent);

0 commit comments

Comments
 (0)