@@ -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 ()) {
0 commit comments