diff options
author | Natalia Shubina <natalia.shubina@nokia.com> | 2011-12-22 11:00:18 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-22 05:49:02 +0100 |
commit | 9d33d4088422fd69aa0b7efd0d6eb0a6cd03fecf (patch) | |
tree | 6a1327f078eb03c8f64e65d25b1850ee3cc03c5d /examples | |
parent | 778bf2126327431c06d8bd767d1e2254a6639bab (diff) | |
download | qtlocation-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.qml | 57 | ||||
-rw-r--r-- | examples/declarative/mapviewer/mapviewer.qml | 30 |
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 } } ] |