forked from qt-creator/qt-creator
QmlDesigner: prioritize visible items when selecting
Prioritize visible items over invisible ones when selecting. This check explicitly checks visibility. Items like MouseArea without content are still visible by default. Task-number: QDS-14210 Change-Id: I772586c24b6cd61ef00add6633815b5d9b43b666 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Thomas Hartmann
parent
d5f1a49a7b
commit
51b8427e60
@@ -176,17 +176,27 @@ FormEditorItem* AbstractFormEditorTool::nearestFormEditorItem(const QPointF &poi
|
|||||||
if (formEditorItem && formEditorItem->flowHitTest(point))
|
if (formEditorItem && formEditorItem->flowHitTest(point))
|
||||||
return formEditorItem;
|
return formEditorItem;
|
||||||
|
|
||||||
if (!formEditorItem || !formEditorItem->qmlItemNode().isValid())
|
if (!formEditorItem)
|
||||||
|
continue;
|
||||||
|
auto qmlItemNode = formEditorItem->qmlItemNode();
|
||||||
|
if (!qmlItemNode.isValid())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (formEditorItem->parentItem() && !formEditorItem->parentItem()->isContentVisible())
|
if (formEditorItem->parentItem() && !formEditorItem->parentItem()->isContentVisible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (formEditorItem && ModelUtils::isThisOrAncestorLocked(formEditorItem->qmlItemNode().modelNode()))
|
if (formEditorItem && ModelUtils::isThisOrAncestorLocked(qmlItemNode.modelNode()))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!nearestItem)
|
if (!nearestItem)
|
||||||
nearestItem = formEditorItem;
|
nearestItem = formEditorItem;
|
||||||
|
|
||||||
|
if (!qmlItemNode.instanceIsVisible() && nearestItem->qmlItemNode().instanceIsVisible())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (qmlItemNode.instanceIsVisible() && !nearestItem->qmlItemNode().instanceIsVisible())
|
||||||
|
nearestItem = formEditorItem;
|
||||||
|
|
||||||
else if (formEditorItem->selectionWeigth(point, 1) < nearestItem->selectionWeigth(point, 0))
|
else if (formEditorItem->selectionWeigth(point, 1) < nearestItem->selectionWeigth(point, 0))
|
||||||
nearestItem = formEditorItem;
|
nearestItem = formEditorItem;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user