diff --git a/src/apps/marble-maps/MainScreen.qml b/src/apps/marble-maps/MainScreen.qml --- a/src/apps/marble-maps/MainScreen.qml +++ b/src/apps/marble-maps/MainScreen.qml @@ -55,7 +55,12 @@ id: mapItem PinchArea { - anchors.fill: parent + anchors { + top: parent.top + left: parent.left + right: parent.right + bottom: dialogContainer.top + } enabled: true onPinchStarted: marbleMaps.handlePinchStarted(pinch.center) @@ -65,12 +70,7 @@ MarbleMaps { id: marbleMaps - anchors { - top: parent.top - left: parent.left - right: parent.right - bottom: dialogContainer.top - } + anchors.fill: parent visible: true focus: true @@ -170,137 +170,136 @@ } } } + } + BorderImage { + anchors.fill: dialogContainer + anchors.margins: -14 + border { top: 14; left: 14; right: 14; bottom: 14 } + source: "qrc:///border_shadow.png" + } - BorderImage { - anchors.fill: dialogContainer - anchors.margins: -14 - border { top: 14; left: 14; right: 14; bottom: 14 } - source: "qrc:///border_shadow.png" + Item { + id: dialogContainer + anchors { + left: parent.left + right: parent.right + bottom: parent.bottom } + height: routeEditor.visible ? routeEditor.height : (placemarkDialog.visible ? placemarkDialog.height : 0) - Item { - id: dialogContainer + RouteEditor { + id: routeEditor anchors { left: parent.left right: parent.right bottom: parent.bottom } - height: routeEditor.visible ? routeEditor.height : (placemarkDialog.visible ? placemarkDialog.height : 0) - - RouteEditor { - id: routeEditor - anchors { - left: parent.left - right: parent.right - bottom: parent.bottom - } - visible: false - } - - PlacemarkDialog { - id: placemarkDialog - anchors { - left: parent.left - right: parent.right - bottom: parent.bottom - } - } - - DeveloperDialog { - id: developerDialog - visible: false - anchors { - left: parent.left - right: parent.right - bottom: parent.bottom - } - } + visible: false } - BoxedText { - id: distanceIndicator - text: "%1 km".arg(zoomToPositionButton.distance < 10 ? zoomToPositionButton.distance.toFixed(1) : zoomToPositionButton.distance.toFixed(0)) + PlacemarkDialog { + id: placemarkDialog anchors { - bottom: zoomToPositionButton.top - horizontalCenter: zoomToPositionButton.horizontalCenter + left: parent.left + right: parent.right + bottom: parent.bottom } - - visible: marbleMaps.positionAvailable && !marbleMaps.positionVisible } - PositionButton { - id: zoomToPositionButton + DeveloperDialog { + id: developerDialog + visible: false anchors { + left: parent.left right: parent.right - rightMargin: 0.005 * root.width - bottom: routeEditorButton.top - bottomMargin: 10 + bottom: parent.bottom } + } + } - iconSource: marbleMaps.positionAvailable ? "qrc:///gps_fixed.png" : "qrc:///gps_not_fixed.png" + BoxedText { + id: distanceIndicator + text: "%1 km".arg(zoomToPositionButton.distance < 10 ? zoomToPositionButton.distance.toFixed(1) : zoomToPositionButton.distance.toFixed(0)) + anchors { + bottom: zoomToPositionButton.top + horizontalCenter: zoomToPositionButton.horizontalCenter + } - onClicked: marbleMaps.centerOnCurrentPosition() + visible: marbleMaps.positionAvailable && !marbleMaps.positionVisible + } - property real distance: 0 + PositionButton { + id: zoomToPositionButton + anchors { + right: parent.right + rightMargin: 0.005 * root.width + bottom: routeEditorButton.top + bottomMargin: 10 + } - function updateIndicator() { - var point = marbleMaps.mapFromItem(zoomToPositionButton, diameter * 0.5, diameter * 0.5); - distance = 0.001 * marbleMaps.distanceFromPointToCurrentLocation(point); - angle = marbleMaps.angleFromPointToCurrentLocation(point); - } + iconSource: marbleMaps.positionAvailable ? "qrc:///gps_fixed.png" : "qrc:///gps_not_fixed.png" + + onClicked: marbleMaps.centerOnCurrentPosition() + + property real distance: 0 - showDirection: marbleMaps.positionAvailable && !marbleMaps.positionVisible + function updateIndicator() { + var point = marbleMaps.mapFromItem(zoomToPositionButton, diameter * 0.5, diameter * 0.5); + distance = 0.001 * marbleMaps.distanceFromPointToCurrentLocation(point); + angle = marbleMaps.angleFromPointToCurrentLocation(point); } - CircularButton { - id: routeEditorButton - anchors { - bottom: dialogContainer.height > 0 ? undefined : parent.bottom - verticalCenter: dialogContainer.height > 0 ? dialogContainer.top : undefined - horizontalCenter: zoomToPositionButton.horizontalCenter - margins: 0.01 * root.width - bottomMargin: 25 - } + showDirection: marbleMaps.positionAvailable && !marbleMaps.positionVisible + } - onClicked: { - if (itemStack.state === "routing") { - itemStack.state = "navigation" - } else if (itemStack.state === "place") { - placemarkDialog.addToRoute() - } else { - itemStack.state = "routing" - } - } - iconSource: "qrc:///directions.png"; - - states: [ - State { - name: "" - AnchorChanges { target: routeEditorButton; anchors.bottom: parent.bottom; anchors.verticalCenter: undefined; } - PropertyChanges { target: routeEditorButton; iconSource: "qrc:///directions.png"; } - }, - State { - name: "routingAction" - when: itemStack.state == "routing" - AnchorChanges { target: routeEditorButton; anchors.bottom: undefined; anchors.verticalCenter: dialogContainer.top; } - PropertyChanges { target: routeEditorButton; iconSource: "qrc:///navigation.png"; } - }, - State { - name: "placeAction" - when: itemStack.state == "place" - AnchorChanges { target: routeEditorButton; anchors.bottom: undefined; anchors.verticalCenter: dialogContainer.top; } - PropertyChanges { target: routeEditorButton; iconSource: placemarkDialog.actionIconSource } - } - ] + CircularButton { + id: routeEditorButton + anchors { + bottom: dialogContainer.height > 0 ? undefined : parent.bottom + verticalCenter: dialogContainer.height > 0 ? dialogContainer.top : undefined + horizontalCenter: zoomToPositionButton.horizontalCenter + margins: 0.01 * root.width + bottomMargin: 25 } - PositionMarker { - id: positionMarker - posX: navigationManager.visible ? navigationManager.snappedPositionMarkerScreenPosition.x : 0 - posY: navigationManager.visible ? navigationManager.snappedPositionMarkerScreenPosition.y : 0 - angle: marbleMaps.angle - visible: navigationManager.visible + onClicked: { + if (itemStack.state === "routing") { + itemStack.state = "navigation" + } else if (itemStack.state === "place") { + placemarkDialog.addToRoute() + } else { + itemStack.state = "routing" + } } + iconSource: "qrc:///directions.png"; + + states: [ + State { + name: "" + AnchorChanges { target: routeEditorButton; anchors.bottom: parent.bottom; anchors.verticalCenter: undefined; } + PropertyChanges { target: routeEditorButton; iconSource: "qrc:///directions.png"; } + }, + State { + name: "routingAction" + when: itemStack.state == "routing" + AnchorChanges { target: routeEditorButton; anchors.bottom: undefined; anchors.verticalCenter: dialogContainer.top; } + PropertyChanges { target: routeEditorButton; iconSource: "qrc:///navigation.png"; } + }, + State { + name: "placeAction" + when: itemStack.state == "place" + AnchorChanges { target: routeEditorButton; anchors.bottom: undefined; anchors.verticalCenter: dialogContainer.top; } + PropertyChanges { target: routeEditorButton; iconSource: placemarkDialog.actionIconSource } + } + ] + } + + PositionMarker { + id: positionMarker + posX: navigationManager.visible ? navigationManager.snappedPositionMarkerScreenPosition.x : 0 + posY: navigationManager.visible ? navigationManager.snappedPositionMarkerScreenPosition.y : 0 + angle: marbleMaps.angle + visible: navigationManager.visible } } diff --git a/src/apps/marble-maps/RoutingManager.qml b/src/apps/marble-maps/RoutingManager.qml --- a/src/apps/marble-maps/RoutingManager.qml +++ b/src/apps/marble-maps/RoutingManager.qml @@ -16,7 +16,6 @@ id: root property var marbleItem: null - property var selectedPlacemark: null marbleMap: marbleItem.marbleMap waypointDelegate: Waypoint {visible: false}