summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorNatalia Shubina <natalia.shubina@nokia.com>2011-12-22 11:00:18 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-22 05:49:02 +0100
commit9d33d4088422fd69aa0b7efd0d6eb0a6cd03fecf (patch)
tree6a1327f078eb03c8f64e65d25b1850ee3cc03c5d /examples
parent778bf2126327431c06d8bd767d1e2254a6639bab (diff)
downloadqtlocation-9d33d4088422fd69aa0b7efd0d6eb0a6cd03fecf.tar.gz
Add locale capability to mapviewer
Change-Id: I84020e70f33b07fda142e05d17e2624338264cf9 Reviewed-by: Natalia Shubina <natalia.shubina@nokia.com> Reviewed-by: abcd <amos.choy@nokia.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/declarative/mapviewer/content/map/MapComponent.qml57
-rw-r--r--examples/declarative/mapviewer/mapviewer.qml30
2 files changed, 87 insertions, 0 deletions
diff --git a/examples/declarative/mapviewer/content/map/MapComponent.qml b/examples/declarative/mapviewer/content/map/MapComponent.qml
index a98883aa..500eef63 100644
--- a/examples/declarative/mapviewer/content/map/MapComponent.qml
+++ b/examples/declarative/mapviewer/content/map/MapComponent.qml
@@ -69,6 +69,7 @@ Map {
property bool followme: false
property variant scaleLengths: [5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000]
signal showDistance(string distance);
+ signal requestLocale()
Coordinate {
id: brisbaneCoordinate
@@ -112,6 +113,55 @@ Map {
}
}
+ Button {
+ id: languageButton
+ text: "en"
+ width: 30
+ height: 30
+ z: map.z + 2
+ anchors.bottom: zoomSlider.top
+ anchors.bottomMargin: 8
+ anchors.right: zoomSlider.right
+ onClicked: {
+ if (languageMenu.opacity ==1)
+ languageMenu.opacity = 0;
+ else
+ languageMenu.opacity = 1;
+ }
+ }
+
+ Menu {
+ id:languageMenu
+ horizontalOrientation: false
+ autoWidth: true
+ opacity: 0
+ z: map.z + 2
+ width: 100
+ anchors.bottom: languageButton.top
+ anchors.right: languageButton.left
+ onClicked: {
+ opacity = 0
+ switch (button) {
+ case "en": {
+ setLanguage("en");
+ break;
+ }
+ case "fr" : {
+ setLanguage("fr");
+ break;
+ }
+ case "Other": {
+ map.requestLocale()
+ }
+ }
+ }
+ Component.onCompleted: {
+ addItem("en")
+ addItem("fr")
+ addItem("Other")
+ }
+ }
+
property RouteQuery routeQuery: RouteQuery {}
property RouteModel routeModel: RouteModel {
plugin : map.plugin
@@ -960,6 +1010,13 @@ Map {
return dist
}
+ function setLanguage(lang) {
+ map.plugin.locales = lang;
+ if (map.plugin.locales.length > 0) {
+ languageButton.text = map.plugin.locales[0];
+ }
+ }
+
// states of map
states: [
State {
diff --git a/examples/declarative/mapviewer/mapviewer.qml b/examples/declarative/mapviewer/mapviewer.qml
index 8d618e6f..4c787f29 100644
--- a/examples/declarative/mapviewer/mapviewer.qml
+++ b/examples/declarative/mapviewer/mapviewer.qml
@@ -440,6 +440,29 @@ Item {
}
}
+ //Get new locale
+ Dialog {
+ id: localeDialog
+ title: "New Locale"
+ z: backgroundRect.z + 2
+
+ Component.onCompleted: {
+ var obj = [["Language", ""]]
+ setModel(obj)
+ }
+
+ onGoButtonClicked: {
+ page.state = ""
+ messageDialog.state = ""
+ map.setLanguage(dialogModel.get(0).inputText.split(Qt.locale().groupSeparator));
+ }
+
+ onCancelButtonClicked: {
+ page.state = ""
+ }
+ }
+
+
/* GeocodeModel {
id: geocodeModel
plugin : Plugin { name : "nokia"}
@@ -545,6 +568,9 @@ Item {
messageDialog.state = "RouteError";\
page.state = "Message";\
}\
+ onRequestLocale:{\
+ page.state = "Locale";\
+ }\
}',page)
map.plugin = plugin
}
@@ -611,6 +637,10 @@ Item {
State {
name : "MapType"
PropertyChanges { target: mapTypeMenu; y: page.height - mapTypeMenu.height - mainMenu.height }
+ },
+ State {
+ name : "Locale"
+ PropertyChanges { target: localeDialog; opacity: 1 }
}
]