From ee1deee9a2293a82829efc724ad448aa9a210ae1 Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Fri, 20 Feb 2015 17:23:18 +0100 Subject: Reformat mapviewer example code. Make code to follow qml coding conventions. Use switch instead of if-else statement. Add helper.js with common functions. Change-Id: Iba989d3677fa428b45609f24a82b26ef7cefe675 Reviewed-by: Alex Blasche --- examples/location/mapviewer/mapviewer.qml | 525 +++++++++++++++--------------- 1 file changed, 267 insertions(+), 258 deletions(-) (limited to 'examples/location/mapviewer/mapviewer.qml') diff --git a/examples/location/mapviewer/mapviewer.qml b/examples/location/mapviewer/mapviewer.qml index d5ad89e1..338c717a 100644 --- a/examples/location/mapviewer/mapviewer.qml +++ b/examples/location/mapviewer/mapviewer.qml @@ -43,14 +43,10 @@ import QtQuick.Controls 1.3 import QtLocation 5.3 import QtPositioning 5.2 import "content/map" +import "helper.js" as Helper ApplicationWindow { id: appWindow - title: qsTr("Mapviewer") - height: 640 - width: 360 - visible: true - property variant map property variant minimap property variant parameters @@ -59,203 +55,8 @@ ApplicationWindow { property variant fromCoordinate: QtPositioning.coordinate(59.9483, 10.7695) property variant toCoordinate: QtPositioning.coordinate(59.9645, 10.671) - Address { - id :fromAddress - street: "Sandakerveien 116" - city: "Oslo" - country: "Norway" - state : "" - postalCode: "0484" - } - - Address { - id: toAddress - street: "Holmenkollveien 140" - city: "Oslo" - country: "Norway" - postalCode: "0791" - } - - menuBar: MainMenu { - id: mainMenu - - onSelectProvider: { - stackView.pop() - for (var i = 0; i < providerMenu.items.length; i++) { - providerMenu.items[i].checked = providerMenu.items[i].text === providerName - } - - if (minimap) { - minimap.destroy() - minimap = null - } - - createMap(providerName) - if (map.error === Map.NoError) { - selectMapType(map.activeMapType) - toolsMenu.createMenu(map); - } else { - mapTypeMenu.clear(); - toolsMenu.clear(); - } - } - - onSelectMapType: { - stackView.pop(page) - for (var i = 0; i < mapTypeMenu.items.length; i++) { - mapTypeMenu.items[i].checked = mapTypeMenu.items[i].text === mapType.name - } - map.activeMapType = mapType - } - - - onSelectTool: { - if (tool === "AddressRoute") { - stackView.push({ item: Qt.resolvedUrl("RouteAddress.qml") , - properties: { "plugin": map.plugin, - "toAddress": toAddress, - "fromAddress": fromAddress}}) - stackView.currentItem.showRoute.connect(showRoute) - stackView.currentItem.showMessage.connect(showMessage) - stackView.currentItem.closeForm.connect(closeForm) - } else if (tool === "CoordinateRoute") { - stackView.push({ item: Qt.resolvedUrl("RouteCoordinate.qml") , - properties: { "toCoordinate": toCoordinate, - "fromCoordinate": fromCoordinate}}) - stackView.currentItem.showRoute.connect(showRoute) - stackView.currentItem.closeForm.connect(closeForm) - } else if (tool === "Geocode") { - stackView.push({ item: Qt.resolvedUrl("Geocode.qml") , - properties: { "address": fromAddress}}) - stackView.currentItem.showPlace.connect(showPlace) - stackView.currentItem.closeForm.connect(closeForm) - } else if (tool === "RevGeocode") { - stackView.push({ item: Qt.resolvedUrl("ReverseGeocode.qml") , - properties: { "coordinate": fromCoordinate}}) - stackView.currentItem.showPlace.connect(showPlace) - stackView.currentItem.closeForm.connect(closeForm) - } else if (tool === "Language") { - stackView.push({ item: Qt.resolvedUrl("Locale.qml") , - properties: { "locale": map.plugin.locales[0]}}) - stackView.currentItem.selectLanguage.connect(setLanguage) - stackView.currentItem.closeForm.connect(closeForm) - } - } - - onToggleMapState: { - stackView.pop(page) - if (state === "FollowMe") { - map.followme =! map.followme - page.state = "" - } else if (state === "MiniMap") { - toggleMiniMapState() - isMiniMap = minimap - } - } - - function toggleMiniMapState() { - if (minimap) { - minimap.destroy() - minimap = null - } else { - minimap = Qt.createQmlObject ('import "content/map"; MiniMap{ z: map.z + 2 }', map) - } - page.state = "" - } - - //! [routerequest0] - function showRoute(startCoordinate, endCoordinate) { - // clear away any old data in the query - map.routeQuery.clearWaypoints(); - - // add the start and end coords as waypoints on the route - map.routeQuery.addWaypoint(startCoordinate) - map.routeQuery.addWaypoint(endCoordinate) - map.routeQuery.travelModes = RouteQuery.CarTravel - map.routeQuery.routeOptimizations = RouteQuery.FastestRoute - //! [routerequest0] - - //! [routerequest0 feature weight] - for (var i=0; i<9; i++) { - map.routeQuery.setFeatureWeight(i, 0) - } - //for (var i=0; i" - text +="Longitude: " + longitude + "
" + "
" - if (street) text +="Street: "+ street + "
" - if (district) text +="District: "+ district +"
" - if (city) text +="City: "+ city + "
" - if (county) text +="County: "+ county + "
" - if (state) text +="State: "+ state + "
" - if (countryCode) text +="Country code: "+ countryCode + "
" - if (country) text +="Country: "+ country + "
" - if (postalCode) text +="PostalCode: "+ postalCode + "
" - return text - } - - function createMap(provider){ + function createMap(provider) + { var plugin if (parameters && parameters.length>0) @@ -270,34 +71,35 @@ ApplicationWindow { map = Qt.createQmlObject ('import QtLocation 5.3;\ import "content/map";\ + import "helper.js" as Helper;\ MapComponent{\ width: page.width;\ height: page.height;\ onFollowmeChanged: {mainMenu.isFollowMe = map.followme}\ onSupportedMapTypesChanged: {mainMenu.mapTypeMenu.createMenu(map)}\ onCoordinatesCaptured: {\ - var text = "" + qsTr("Latitude:") + " " + roundNumber(latitude,4) + "
" + qsTr("Longitude:") + " " + roundNumber(longitude,4);\ - showMessage(qsTr("Coordinates"),text);\ + var text = "" + qsTr("Latitude:") + " " + Helper.roundNumber(latitude,4) + "
" + qsTr("Longitude:") + " " + Helper.roundNumber(longitude,4);\ + stackView.showMessage(qsTr("Coordinates"),text);\ }\ onGeocodeFinished:{\ if (map.geocodeModel.status == GeocodeModel.Ready) {\ if (map.geocodeModel.count == 0) {\ - showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode"));\ + stackView.showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode"));\ } else if (map.geocodeModel.count > 1) { \ - showMessage(qsTr("Ambiguous geocode"), map.geocodeModel.count + " " + \ + stackView.showMessage(qsTr("Ambiguous geocode"), map.geocodeModel.count + " " + \ qsTr("results found for the given address, please specify location"));\ } else { \ - showMessage(qsTr("Location"), geocodeMessage(),page);\ + stackView.showMessage(qsTr("Location"), geocodeMessage(),page);\ ;}\ } else if (map.geocodeModel.status == GeocodeModel.Error) {\ - showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode")); \ + stackView.showMessage(qsTr("Geocode Error"),qsTr("Unsuccessful geocode")); \ }\ }\ onRouteError: {\ - showMessage(qsTr("Route Error"),qsTr("Unable to find a route for the given points"),page);\ + stackView.showMessage(qsTr("Route Error"),qsTr("Unable to find a route for the given points"),page);\ }\ onShowGeocodeInfo:{\ - showMessage(qsTr("Location"),geocodeMessage(),page);\ + stackView.showMessage(qsTr("Location"),geocodeMessage(),page);\ }\ onErrorChanged: {\ if (map.error != Map.NoError) {\ @@ -306,7 +108,7 @@ ApplicationWindow { if (map.error == Map.MissingRequiredParameterError) \ message += "
" + qsTr("or see") + " \'mapviewer --help\' "\ + qsTr("how to pass plugin parameters.");\ - showMessage(title,message);\ + stackView.showMessage(title,message);\ }\ }\ onShowMainMenu: {\ @@ -322,14 +124,15 @@ ApplicationWindow { itemPopupMenu.show("Point",coordinate);\ }\ onShowRouteList: {\ - showRouteListPage(); + stackView.showRouteListPage(); }\ }',page) map.plugin = plugin; map.zoomLevel = (map.maximumZoomLevel - map.minimumZoomLevel)/2 } - function getPlugins(){ + function getPlugins() + { var plugin = Qt.createQmlObject ('import QtLocation 5.3; Plugin {}', appWindow) var tempPlugin var myArray = new Array() @@ -342,7 +145,8 @@ ApplicationWindow { return myArray } - function initializeProvders(pluginParameters) { + function initializeProvders(pluginParameters) + { var parameters = new Array() for (var prop in pluginParameters){ var parameter = Qt.createQmlObject('import QtLocation 5.3; PluginParameter{ name: "'+ prop + '"; value: "' + pluginParameters[prop]+'"}',appWindow) @@ -357,24 +161,176 @@ ApplicationWindow { } } - MapPopupMenu { - id: mapPopupMenu - onItemClicked: { + title: qsTr("Mapviewer") + height: 640 + width: 360 + visible: true + menuBar: mainMenu + + Address { + id :fromAddress + street: "Sandakerveien 116" + city: "Oslo" + country: "Norway" + state : "" + postalCode: "0484" + } + + Address { + id: toAddress + street: "Holmenkollveien 140" + city: "Oslo" + country: "Norway" + postalCode: "0791" + } + + MainMenu { + id: mainMenu + + function toggleMiniMapState() + { + if (minimap) { + minimap.destroy() + minimap = null + } else { + minimap = Qt.createQmlObject ('import "content/map"; MiniMap{ z: map.z + 2 }', map) + } + } + + //! [routerequest0] + function showRoute(startCoordinate, endCoordinate) + { + // clear away any old data in the query + map.routeQuery.clearWaypoints(); + + // add the start and end coords as waypoints on the route + map.routeQuery.addWaypoint(startCoordinate) + map.routeQuery.addWaypoint(endCoordinate) + map.routeQuery.travelModes = RouteQuery.CarTravel + map.routeQuery.routeOptimizations = RouteQuery.FastestRoute + //! [routerequest0] + + //! [routerequest0 feature weight] + for (var i=0; i<9; i++) { + map.routeQuery.setFeatureWeight(i, 0) + } + //for (var i=0; i" + qsTr("Distance:") + " " + distance) + var distance = Helper.formatDistance(coordinate1.distanceTo(coordinate2)); + stackView.showMessage(qsTr("Distance"),"" + qsTr("Distance:") + " " + distance) break case "drawImage": map.addGeoItem("ImageItem") @@ -427,36 +431,13 @@ ApplicationWindow { console.log("Unsupported operation") } } - - function show(coordinate) { - stackView.pop(page) - markerPopupMenu.markersCount = map.markers.length - markerPopupMenu.update() - markerPopupMenu.popup() - } - - function askForCoordinate() { - stackView.push({ item: Qt.resolvedUrl("ReverseGeocode.qml") , - properties: { "title": qsTr("New Coordinate"), - "coordinate": map.markers[map.currentMarker].coordinate}}) - stackView.currentItem.showPlace.connect(moveMarker) - stackView.currentItem.closeForm.connect(closeForm) - } - - function moveMarker(coordinate) - { - map.markers[map.currentMarker].coordinate = coordinate; - map.center = coordinate; - stackView.pop(page) - } - } ItemPopupMenu { - id: itemPopupMenu - function show(type,coordinate) { + function show(type,coordinate) + { stackView.pop(page) itemPopupMenu.type = type itemPopupMenu.update() @@ -467,7 +448,7 @@ ApplicationWindow { stackView.pop(page) switch (item) { case "showRouteInfo": - showRouteListPage() + stackView.showRouteListPage() break; case "deleteRoute": map.routeModel.reset(); @@ -482,10 +463,8 @@ ApplicationWindow { console.log("Unsupported operation") } } - } - StackView { id: stackView anchors.fill: parent @@ -493,5 +472,35 @@ ApplicationWindow { initialItem: Item { id: page } + + function showMessage(title,message,backPage) + { + push({ item: Qt.resolvedUrl("Message.qml") , + properties: { + "title" : title, + "message" : message, + "backPage" : backPage + }}) + currentItem.closeForm.connect(closeMessage) + } + + function closeMessage(backPage) + { + pop(backPage) + } + + function closeForm() + { + pop(page) + } + + function showRouteListPage() + { + push({ item: Qt.resolvedUrl("RouteList.qml") , + properties: { + "routeModel" : map.routeModel + }}) + currentItem.closeForm.connect(closeForm) + } } } -- cgit v1.2.3