From 1d0f517f39505b64d741979b470a057881237dc0 Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Wed, 8 Mar 2017 14:51:00 -0800 Subject: [PATCH] Use new QGCMouseArea and minTouchPixels --- .../MapItems/MissionItemIndicatorDrag.qml | 38 ++++++++++--------- src/MissionEditor/MissionItemEditor.qml | 20 ++++++---- src/QmlControls/ToolStrip.qml | 8 ++-- 3 files changed, 37 insertions(+), 29 deletions(-) diff --git a/src/FlightMap/MapItems/MissionItemIndicatorDrag.qml b/src/FlightMap/MapItems/MissionItemIndicatorDrag.qml index d9b3d5e2b..c41ca75ef 100644 --- a/src/FlightMap/MapItems/MissionItemIndicatorDrag.qml +++ b/src/FlightMap/MapItems/MissionItemIndicatorDrag.qml @@ -17,30 +17,31 @@ import QGroundControl.Controls 1.0 /// Use the drag a MissionItemIndicator Rectangle { id: itemDragger - x: itemIndicator.x - _expandMargin - y: itemIndicator.y - _expandMargin - width: itemIndicator.width + (_expandMargin * 2) - height: itemIndicator.height + (_expandMargin * 2) + x: itemIndicator.x - _touchMarginHorizontal + y: itemIndicator.y - _touchMarginVertical + width: itemIndicator.width + (_touchMarginHorizontal * 2) + height: itemIndicator.height + (_touchMarginVertical * 2) color: "transparent" z: QGroundControl.zOrderMapItems + 1 // Above item icons - // These are handy for debugging so left in for now - //border.width: 1 - //border.color: "white" - // Properties which must be specific by consumer property var itemIndicator ///< The mission item indicator to drag around property var itemCoordinate ///< Coordinate we are updating during drag property bool _preventCoordinateBindingLoop: false - property real _expandMargin: ScreenTools.isMobile ? ScreenTools.defaultFontPixelWidth : 0 + + property bool _mobile: true//ScreenTools.isMobile + property real _touchWidth: Math.max(itemIndicator.width, ScreenTools.minTouchPixels) + property real _touchHeight: Math.max(itemIndicator.height, ScreenTools.minTouchPixels) + property real _touchMarginHorizontal: _mobile ? (_touchWidth - itemIndicator.width) / 2 : 0 + property real _touchMarginVertical: _mobile ? (_touchHeight - itemIndicator.height) / 2 : 0 onXChanged: liveDrag() onYChanged: liveDrag() function liveDrag() { if (!itemDragger._preventCoordinateBindingLoop && Drag.active) { - var point = Qt.point(itemDragger.x + _expandMargin + itemIndicator.anchorPoint.x, itemDragger.y + _expandMargin + itemIndicator.anchorPoint.y) + var point = Qt.point(itemDragger.x + _touchMarginHorizontal + itemIndicator.anchorPoint.x, itemDragger.y + _touchMarginVertical + itemIndicator.anchorPoint.y) var coordinate = map.toCoordinate(point) itemDragger._preventCoordinateBindingLoop = true coordinate.altitude = itemCoordinate.altitude @@ -51,13 +52,14 @@ Rectangle { Drag.active: itemDrag.drag.active - MouseArea { - id: itemDrag - anchors.fill: parent - drag.target: parent - drag.minimumX: 0 - drag.minimumY: 0 - drag.maximumX: itemDragger.parent.width - parent.width - drag.maximumY: itemDragger.parent.height - parent.height + QGCMouseArea { + id: itemDrag + anchors.fill: parent + drag.target: parent + drag.minimumX: 0 + drag.minimumY: 0 + drag.maximumX: itemDragger.parent.width - parent.width + drag.maximumY: itemDragger.parent.height - parent.height + preventStealing: true } } diff --git a/src/MissionEditor/MissionItemEditor.qml b/src/MissionEditor/MissionItemEditor.qml index 2b9942d20..e1813762f 100644 --- a/src/MissionEditor/MissionItemEditor.qml +++ b/src/MissionEditor/MissionItemEditor.qml @@ -68,15 +68,21 @@ Rectangle { } - MouseArea { + QGCMouseArea { // The MouseArea for the hamburger is larger than the hamburger image itself in order to provide a larger // touch area on mobile - anchors.top: parent.top - anchors.bottom: editorLoader.top - anchors.leftMargin: -hamburger.anchors.rightMargin - anchors.left: hamburger.left - anchors.right: parent.right - onClicked: hamburgerMenu.popup() + anchors.leftMargin: -_touchMarginHorizontal + anchors.rightMargin: -_touchMarginHorizontal + anchors.topMargin: -_touchMarginVertical + anchors.bottomMargin: -_touchMarginVertical + anchors.fill: hamburger + visible: hamburger.visible + onClicked: hamburgerMenu.popup() + + property real _touchWidth: Math.max(hamburger.width, ScreenTools.minTouchPixels) + property real _touchHeight: Math.max(hamburger.height, ScreenTools.minTouchPixels) + property real _touchMarginHorizontal: ScreenTools.isMobile ? (_touchWidth - hamburger.width) / 2 : 0 + property real _touchMarginVertical: ScreenTools.isMobile ? (_touchHeight - hamburger.height) / 2 : 0 Menu { id: hamburgerMenu diff --git a/src/QmlControls/ToolStrip.qml b/src/QmlControls/ToolStrip.qml index 296dfc4a0..6edd25790 100644 --- a/src/QmlControls/ToolStrip.qml +++ b/src/QmlControls/ToolStrip.qml @@ -16,7 +16,7 @@ import QGroundControl.Palette 1.0 Rectangle { id: _root color: qgcPal.window - width: ScreenTools.defaultFontPixelWidth * 6 + width: ScreenTools.isMobile ? ScreenTools.minTouchPixels : ScreenTools.defaultFontPixelWidth * 6 height: buttonStripColumn.height + (buttonStripColumn.anchors.margins * 2) radius: _radius @@ -172,10 +172,10 @@ Rectangle { } - MouseArea { + QGCMouseArea { // Size of mouse area is expanded to make touch easier - anchors.leftMargin: buttonStripColumn.margins - anchors.rightMargin: buttonStripColumn.margins + anchors.leftMargin: -buttonStripColumn.anchors.margins + anchors.rightMargin: -buttonStripColumn.anchors.margins anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top -- 2.22.0