Commit 1d0f517f authored by DonLakeFlyer's avatar DonLakeFlyer

Use new QGCMouseArea and minTouchPixels

parent 1f77b2f7
...@@ -17,30 +17,31 @@ import QGroundControl.Controls 1.0 ...@@ -17,30 +17,31 @@ import QGroundControl.Controls 1.0
/// Use the drag a MissionItemIndicator /// Use the drag a MissionItemIndicator
Rectangle { Rectangle {
id: itemDragger id: itemDragger
x: itemIndicator.x - _expandMargin x: itemIndicator.x - _touchMarginHorizontal
y: itemIndicator.y - _expandMargin y: itemIndicator.y - _touchMarginVertical
width: itemIndicator.width + (_expandMargin * 2) width: itemIndicator.width + (_touchMarginHorizontal * 2)
height: itemIndicator.height + (_expandMargin * 2) height: itemIndicator.height + (_touchMarginVertical * 2)
color: "transparent" color: "transparent"
z: QGroundControl.zOrderMapItems + 1 // Above item icons 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 // Properties which must be specific by consumer
property var itemIndicator ///< The mission item indicator to drag around property var itemIndicator ///< The mission item indicator to drag around
property var itemCoordinate ///< Coordinate we are updating during drag property var itemCoordinate ///< Coordinate we are updating during drag
property bool _preventCoordinateBindingLoop: false 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() onXChanged: liveDrag()
onYChanged: liveDrag() onYChanged: liveDrag()
function liveDrag() { function liveDrag() {
if (!itemDragger._preventCoordinateBindingLoop && Drag.active) { 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) var coordinate = map.toCoordinate(point)
itemDragger._preventCoordinateBindingLoop = true itemDragger._preventCoordinateBindingLoop = true
coordinate.altitude = itemCoordinate.altitude coordinate.altitude = itemCoordinate.altitude
...@@ -51,13 +52,14 @@ Rectangle { ...@@ -51,13 +52,14 @@ Rectangle {
Drag.active: itemDrag.drag.active Drag.active: itemDrag.drag.active
MouseArea { QGCMouseArea {
id: itemDrag id: itemDrag
anchors.fill: parent anchors.fill: parent
drag.target: parent drag.target: parent
drag.minimumX: 0 drag.minimumX: 0
drag.minimumY: 0 drag.minimumY: 0
drag.maximumX: itemDragger.parent.width - parent.width drag.maximumX: itemDragger.parent.width - parent.width
drag.maximumY: itemDragger.parent.height - parent.height drag.maximumY: itemDragger.parent.height - parent.height
preventStealing: true
} }
} }
...@@ -68,15 +68,21 @@ Rectangle { ...@@ -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 // The MouseArea for the hamburger is larger than the hamburger image itself in order to provide a larger
// touch area on mobile // touch area on mobile
anchors.top: parent.top anchors.leftMargin: -_touchMarginHorizontal
anchors.bottom: editorLoader.top anchors.rightMargin: -_touchMarginHorizontal
anchors.leftMargin: -hamburger.anchors.rightMargin anchors.topMargin: -_touchMarginVertical
anchors.left: hamburger.left anchors.bottomMargin: -_touchMarginVertical
anchors.right: parent.right anchors.fill: hamburger
onClicked: hamburgerMenu.popup() 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 { Menu {
id: hamburgerMenu id: hamburgerMenu
......
...@@ -16,7 +16,7 @@ import QGroundControl.Palette 1.0 ...@@ -16,7 +16,7 @@ import QGroundControl.Palette 1.0
Rectangle { Rectangle {
id: _root id: _root
color: qgcPal.window color: qgcPal.window
width: ScreenTools.defaultFontPixelWidth * 6 width: ScreenTools.isMobile ? ScreenTools.minTouchPixels : ScreenTools.defaultFontPixelWidth * 6
height: buttonStripColumn.height + (buttonStripColumn.anchors.margins * 2) height: buttonStripColumn.height + (buttonStripColumn.anchors.margins * 2)
radius: _radius radius: _radius
...@@ -172,10 +172,10 @@ Rectangle { ...@@ -172,10 +172,10 @@ Rectangle {
} }
MouseArea { QGCMouseArea {
// Size of mouse area is expanded to make touch easier // Size of mouse area is expanded to make touch easier
anchors.leftMargin: buttonStripColumn.margins anchors.leftMargin: -buttonStripColumn.anchors.margins
anchors.rightMargin: buttonStripColumn.margins anchors.rightMargin: -buttonStripColumn.anchors.margins
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment