Browse Source

Fix mobile polygon draw

QGC4.4
Don Gagne 9 years ago
parent
commit
c6091ed44e
  1. 18
      src/FlightMap/FlightMap.qml

18
src/FlightMap/FlightMap.qml

@ -349,8 +349,17 @@ Map {
// Add first coordinate // Add first coordinate
polygonPath.push(clickCoordinate) polygonPath.push(clickCoordinate)
} else { } else {
// Update finalized coordinate // Add subsequent coordinate
polygonPath[polygonDrawerPolygon.path.length - 1] = clickCoordinate if (ScreenTools.isMobile) {
// Since mobile has no mouse, the onPositionChangedHandler will not fire. We have to add the coordinate
// here instead.
polygonDrawer.justClicked = false
polygonPath.push(clickCoordinate)
} else {
// The onPositionChanged handler for mouse movement will have already added the coordinate to the array.
// Just update it to the final position
polygonPath[polygonDrawerPolygon.path.length - 1] = clickCoordinate
}
} }
polygonDrawerPolygonSet.path = polygonPath polygonDrawerPolygonSet.path = polygonPath
polygonDrawerPolygon.path = polygonPath polygonDrawerPolygon.path = polygonPath
@ -360,10 +369,15 @@ Map {
} }
onPositionChanged: { onPositionChanged: {
if (ScreenTools.isMobile) {
// We don't track mouse drag on mobile
return
}
if (polygonDrawerPolygon.path.length) { if (polygonDrawerPolygon.path.length) {
var dragCoordinate = _map.toCoordinate(Qt.point(mouse.x, mouse.y)) var dragCoordinate = _map.toCoordinate(Qt.point(mouse.x, mouse.y))
var polygonPath = polygonDrawerPolygon.path var polygonPath = polygonDrawerPolygon.path
if (polygonDrawer.justClicked){ if (polygonDrawer.justClicked){
// Add new drag coordinate
polygonPath.push(dragCoordinate) polygonPath.push(dragCoordinate)
polygonDrawer.justClicked = false polygonDrawer.justClicked = false
} }

Loading…
Cancel
Save