From b8af05e6c19d3348963e2317b6609ae6eb78fdb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Schummer?= <ext-jorg.2.schummer@nokia.com> Date: Fri, 19 Feb 2010 14:21:36 +0200 Subject: [PATCH] QmlDesigner.ItemLibrary: fixed item dragging and selection - itemDragged is emitted only once now after a minimal distance has been reached (minimal distance calculcation not exact) - onPressed is used instead of onClicked for item selection --- .../components/itemlibrary/qml/ItemView.qml | 23 +++++++++++++++---- .../itemlibrary/qml/SectionView.qml | 2 +- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/plugins/qmldesigner/components/itemlibrary/qml/ItemView.qml b/src/plugins/qmldesigner/components/itemlibrary/qml/ItemView.qml index 835ebbcb535..369de2ae630 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/qml/ItemView.qml +++ b/src/plugins/qmldesigner/components/itemlibrary/qml/ItemView.qml @@ -37,7 +37,7 @@ Item { width: GridView.view.cellWidth height: style.cellHeight - signal itemClicked() + signal itemPressed() signal itemDragged() Rectangle { @@ -116,12 +116,25 @@ Item { id: mouseRegion anchors.fill: parent - onPositionChanged: { - itemDragged(); + property bool reallyPressed: false + property int pressedX + property int pressedY + + onPressed: { + reallyPressed = true + pressedX = mouse.x + pressedY = mouse.y + itemPressed() } - onClicked: { - itemClicked(); + onPositionChanged: { + if (reallyPressed && + (Math.abs(mouse.x - pressedX) > 2 || + Math.abs(mouse.y - pressedY) > 2)) { + itemDragged() + reallyPressed = false; + } } + onReleased: reallyPressed = false } } diff --git a/src/plugins/qmldesigner/components/itemlibrary/qml/SectionView.qml b/src/plugins/qmldesigner/components/itemlibrary/qml/SectionView.qml index c231730c8aa..e35d7155583 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/qml/SectionView.qml +++ b/src/plugins/qmldesigner/components/itemlibrary/qml/SectionView.qml @@ -58,7 +58,7 @@ Column { sectionView.itemSelected(itemLibId); } - onItemClicked: selectItem() + onItemPressed: selectItem() onItemDragged: { selectItem(); sectionView.itemDragged(itemLibId); -- GitLab