1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123 | import QtQuick 2.0
import Ubuntu.Components 1.1
import Qt.labs.settings 1.0
import Ubuntu.Components.Pickers 1.0
/*!
\brief MainView with Tabs element.
First Tab has a single Label and
second Tab has a single ToolbarAction.
*/
MainView {
// objectName for functional testing purposes (autopilot-qt5)
objectName: "mainView"
// Note! applicationName needs to match the "name" field of the click manifest
applicationName: "bed2gy.njmcphail"
/*
This property enables the application to change orientation
when the device is rotated. The default is false.
*/
//automaticOrientation: true
// Removes the old toolbar and enables new features of the new header.
useDeprecatedToolbar: false
width: units.gu(75)
height: units.gu(100)
Page {
title: i18n.tr("BED in 2Gy/# Calculator")
Settings {
property alias disclaimer_accepted: accepted.checked
}
Column {
id: disclaimer
visible: !(accepted.checked)
Label {
text: i18n.tr("blah")
}
CheckBox {
id: accepted
checked: false
}
}
Column {
id: ui
visible: accepted.checked
function calculate() {
var total_dose = td.selectedIndex + 1
var fractions = fract.selectedIndex + 1
var alphabeta = (ab.selectedIndex + 1) / 10
var dose_per_fraction = total_dose / fractions
var equiv = total_dose * (alphabeta + dose_per_fraction) / (2 + alphabeta)
result.text = Math.round(equiv * 100) / 100
}
Row {
spacing: units.gu(2)
Picker {
id: td
model: Array.apply(0, Array(80)).map(function (x, y) {
return y + 1
})
delegate: PickerDelegate {
Label {
text: modelData
anchors.centerIn: parent
}
}
circular: false
onSelectedIndexChanged: ui.calculate()
}
Picker {
id: fract
model: Array.apply(0, Array(80)).map(function (x, y) {
return y + 1
})
delegate: PickerDelegate {
Label {
text: modelData
anchors.centerIn: parent
}
}
circular: false
onSelectedIndexChanged: ui.calculate()
}
Picker {
id: ab
model: Array.apply(0, Array(160)).map(function (x, y) {
return (y + 1) / 10
})
delegate: PickerDelegate {
Label {
text: modelData
anchors.centerIn: parent
}
}
circular: false
onSelectedIndexChanged: ui.calculate()
}
AutoRangePicker {
}
}
Label {
id: result
text: ui.calculate()
}
}
}
}
|