import QtQuick 2.0
import QtLocation 5.0
Rectangle {
id: container
property int maxX: parent.width; property int maxY: parent.height
property double latitude
property double longitude
latitude: positionSource.position.coordinate.latitude
longitude: positionSource.position.coordinate.longitude
width: 300; height: 130
color: "blue"
opacity: 0.7
border.color: "black"
border.width: 1
radius: 5
gradient: Gradient {
GradientStop {position: 0.0; color: "grey"}
GradientStop {position: 1.0; color: "black"}
}
MouseArea {
anchors.fill: parent
drag.target: parent
drag.axis: Drag.XandYAxis
drag.minimumX: -(parent.width * (2/3)); drag.maximumX: parent.maxX - (parent.width/3)
drag.minimumY: -(parent.height/2); drag.maximumY: parent.maxY - (parent.height/2)
}
Button {
id: locateButton
text: "Locate & update"
anchors {left: parent.left; leftMargin: 5}
y: 3; height: 32; width: parent.width - 10
onClicked: {
if (positionSource.supportedPositioningMethod ==
PositionSource.NoPositioningMethod) {
positionSource.nmeaSource = "nmealog.txt";
sourceText.text = "(filesource): " + printableMethod(positionSource.supportedPositioningMethod);
}
positionSource.update();
}
}
PositionSource {
id: positionSource
onPositionChanged: { planet.source = "images/sun.png"; }
}
function printableMethod(method) {
if (method == PositionSource.SatellitePositioningMethod)
return "Satellite";
else if (method == PositionSource.NoPositioningMethod)
return "Not available"
else if (method == PositionSource.NonSatellitePositioningMethod)
return "Non-satellite"
else if (method == PositionSource.AllPositioningMethods)
return "Multiple"
return "source error";
}
Grid {
id: locationGrid
columns: 2
anchors {left: parent.left; leftMargin: 5; top: locateButton.bottom; topMargin: 5}
spacing: 5
Text {color: "white"; font.bold: true
text: "Lat:"; style: Text.Raised; styleColor: "black"
}
Text {id: latitudeValue; color: "white"; font.bold: true
text: positionSource.position.coordinate.latitude; style: Text.Raised; styleColor: "black";
}
Text {color: "white"; font.bold: true
text: "Lon:"; style: Text.Raised; styleColor: "black"
}
Text {id: longitudeValue; color: "white"; font.bold: true
text: positionSource.position.coordinate.longitude; style: Text.Raised; styleColor: "black"
}
}
Image {
id: planet
anchors {top: locationGrid.bottom; left: parent.left; leftMargin: locationGrid.anchors.leftMargin}
source: "images/moon.png"
width: 30; height: 30
}
Text {id: sourceText; color: "white"; font.bold: true;
anchors {left: planet.right; leftMargin: 5; verticalCenter: planet.verticalCenter}
text: "Source: " + printableMethod(positionSource.supportedPositioningMethod); style: Text.Raised; styleColor: "black";
}
}