Improve journey info page layout
[harbour-pedalo.git] / qml / pages / JourneyInfo.qml
1 import QtQuick 2.0
2 import Sailfish.Silica 1.0
3 import "../components"
4
5 Page {
6     id: journeyInfoPage
7     property string title: "Journey info"
8     property var start: new Date()
9     property int duration: 0
10     property int overtook: -1
11     property int overtakenby: -1
12     property int index: -1
13
14     property real shortlineRatio: 0.6
15     property real shortlineMin: Theme.fontSizeSmall * 10
16     property real shortlineMax: width
17
18     property real widelineRatio: 0.6
19     property real widelineMin: Theme.fontSizeSmall * 10
20     property real widelineMax: width
21
22     onDurationChanged: {
23         var structured = new Date(0, 0, 0, 0, parseInt(duration / 60))
24         durationTime.value = Qt.formatTime(structured, 'hh:mm')
25         endTime.time = new Date(0, 0, 0, start.getHours() + structured.getHours(), start.getMinutes() + structured.getMinutes())
26     }
27
28     onStartChanged: {
29         startDate.value = Qt.formatDate(start, 'd MMM yyyy')
30         startTime.value = Qt.formatTime(start, 'hh:mm')
31
32         var structured = new Date(0, 0, 0, 0, parseInt(duration / 60))
33         endTime.time = new Date(0, 0, 0, start.getHours() + structured.getHours(), start.getMinutes() + structured.getMinutes())
34     }
35
36     // The effective value will be restricted by ApplicationWindow.allowedOrientations
37     allowedOrientations: Orientation.All
38
39     SilicaFlickable {
40         id: journeyEditView
41         anchors.fill: parent
42         contentHeight: journeyEditColumn.implicitHeight
43
44         VerticalScrollDecorator {}
45
46         Column {
47             id: journeyEditColumn
48             spacing: Theme.paddingLarge
49             width: parent.width
50
51             PageHeader {
52                 title: journeyInfoPage.title
53             }
54
55             InfoRow {
56                 id: startDate
57                 label: "Date"
58                 value: Qt.formatDate(start, 'd MMM yyyy')
59                 width: parent.width
60                 labelTextBold: true
61                 midlineRatio: shortlineRatio
62                 midlineMin: shortlineMin
63                 midlineMax: shortlineMax
64             }
65
66             InfoRow {
67                 id: startTime
68                 label: qsTr("Start time")
69                 value: Qt.formatTime(start, 'hh:mm')
70                 width: parent.width
71                 labelTextBold: true
72                 midlineRatio: shortlineRatio
73                 midlineMin: shortlineMin
74                 midlineMax: shortlineMax
75             }
76
77             InfoRow {
78                 id: endTime
79                 property date time: new Date()
80                 label: qsTr("End time")
81                 value: Qt.formatTime(time, 'hh:mm')
82                 width: parent.width
83                 enabled: false
84                 onTimeChanged: {
85                     value = Qt.formatTime(time, 'hh:mm')
86                 }
87                 labelTextBold: true
88                 midlineRatio: shortlineRatio
89                 midlineMin: shortlineMin
90                 midlineMax: shortlineMax
91             }
92
93             InfoRow {
94                 id: durationTime
95                 label: qsTr("Duration")
96                 value: Qt.formatTime(new Date(0, 0, 0, 0, parseInt(duration / 60)), 'hh:mm')
97                 width: parent.width
98                 enabled: false
99                 labelTextBold: true
100                 midlineRatio: shortlineRatio
101                 midlineMin: shortlineMin
102                 midlineMax: shortlineMax
103             }
104
105             InfoRow {
106                 id: faster
107                 width: parent.width
108                 label: qsTr("Cycles which you overtook")
109                 value: "" + overtook
110                 labelTextBold: true
111                 midlineRatio: widelineRatio
112                 midlineMin: widelineMin
113                 midlineMax: widelineMax
114             }
115
116             InfoRow {
117                 id: slower
118                 width: parent.width
119                 label: qsTr("Cycles which overtook you")
120                 value: "" + overtakenby
121                 labelTextBold: true
122                 midlineRatio: widelineRatio
123                 midlineMin: widelineMin
124                 midlineMax: widelineMax
125             }
126         }
127     }
128 }