aboutsummaryrefslogtreecommitdiff
path: root/qml/pages/QuantityPage.qml
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2013-12-07 17:33:25 +0200
committerOskari Timperi <oskari.timperi@iki.fi>2013-12-07 17:33:25 +0200
commitef5baad9ff47cfe32bb4f97368e0b3148765caa6 (patch)
tree87d59ecc69e7981489e16aeed62115b4a4927223 /qml/pages/QuantityPage.qml
parent3aeb00f43988ae607082cdabe124b9d5e123e33c (diff)
downloadunitmaster-ef5baad9ff47cfe32bb4f97368e0b3148765caa6.tar.gz
unitmaster-ef5baad9ff47cfe32bb4f97368e0b3148765caa6.zip
shuffle stuff around and add directory for tests
Diffstat (limited to 'qml/pages/QuantityPage.qml')
-rw-r--r--qml/pages/QuantityPage.qml136
1 files changed, 0 insertions, 136 deletions
diff --git a/qml/pages/QuantityPage.qml b/qml/pages/QuantityPage.qml
deleted file mode 100644
index 0d5c4de..0000000
--- a/qml/pages/QuantityPage.qml
+++ /dev/null
@@ -1,136 +0,0 @@
-import QtQuick 2.0
-import Sailfish.Silica 1.0
-import "helpers.js" as Helpers
-
-Page {
- id: page
-
- property string modelFilename
- property string quantityName
-
- function formatText(value, unit) {
- return "%1 %2".arg(value.toPrecision(5)).arg(pluralize(unit, value));
- }
-
- function updateResult() {
- var f = parseFloat(fromField.text);
-
- if (fromField.text.length === 0) {
- f = 0.0;
- }
-
- if (fromCombo.value.length === 0 || toCombo.value.length === 0)
- return;
-
- var model = modelLoader.item;
-
- var fromUnit = model.get(fromCombo.currentIndex).title;
- var toUnit = model.get(toCombo.currentIndex).title;
-
- var result = model.from(fromUnit, f);
- result = model.to(toUnit, result);
-
- resultLabel.text = formatText(result, toUnit);
- }
-
- function pluralize(s, n) {
- if (n !== 1) {
- if (s === "inch") {
- return "inches";
- } else if (s === "foot") {
- return "feet";
- } else if (s === "celcius") {
- return s;
- }
- return s + "s";
- }
-
- return s;
- }
-
- function makeTitle(title, abbr) {
- if (abbr.length > 0) {
- return "%1 (%2)".arg(title).arg(abbr);
- }
-
- return title;
- }
-
- Component.onCompleted: {
- modelLoader.setSource(modelFilename);
- }
-
- Loader {
- id: modelLoader
- onLoaded: {
- fromRepeater.model = modelLoader.item;
- toRepeater.model = modelLoader.item;
- }
- }
-
- Column {
- id: column
- spacing: Theme.paddingLarge
- anchors.fill: parent
-
- PageHeader {
- title: Helpers.capitalize(page.quantityName)
- }
-
- ComboBox {
- id: fromCombo
- width: parent.width
- label: "From"
- menu: ContextMenu {
- Repeater {
- id: fromRepeater
- delegate: MenuItem {
- text: makeTitle(title, abbr)
- }
- }
- }
- onValueChanged: updateResult()
- }
-
- TextField {
- id: fromField
- width: parent.width
- placeholderText: "enter " + pluralize(fromRepeater.model.get(fromCombo.currentIndex).title, 0)
- inputMethodHints: Qt.ImhFormattedNumbersOnly
- EnterKey.onClicked: {
- parent.focus = true;
- updateResult();
- }
- onTextChanged: {
- updateResult();
- }
- }
-
- ComboBox {
- id: toCombo
- width: parent.width
- label: "To"
- menu: ContextMenu {
- Repeater {
- id: toRepeater
- delegate: MenuItem {
- text: makeTitle(title, abbr)
- }
- }
- }
- onValueChanged: updateResult()
- }
-
- SectionHeader {
- text: "Result"
- }
-
- Label {
- id: resultLabel
- height: Theme.itemSizeSmall
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
-}
-
-