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
|
import QtQuick 2.0
import Ubuntu.Components 0.1
import "dateExt.js" as DateExt
import "ViewType.js" as ViewType
Page{
id: root
objectName: "DayView"
property var currentDay: new Date()
property bool isCurrentPage: false
Keys.forwardTo: [dayViewPath]
Column {
id: column
anchors.top: parent.top
anchors.topMargin: units.gu(1.5)
width: parent.width; height: parent.height
spacing: units.gu(1)
anchors.fill: parent
ViewHeader{
id: viewHeader
month: currentDay.getMonth()
year: currentDay.getFullYear()
}
TimeLineHeader{
id: dayHeader
type: ViewType.ViewTypeDay
date: currentDay
preferredHighlightBegin: 0.5
preferredHighlightEnd: 0.5
path: Path {
startX: -(dayHeader.width/7); startY: dayHeader.height/2
PathLine { x: (dayHeader.width/7) * 8 ; relativeY: 0; }
}
}
PathViewBase{
id: dayViewPath
objectName: "DayViewPathBase"
property var startDay: currentDay
//This is used to scroll all view together when currentItem scrolls
property var childContentY;
preferredHighlightBegin: 0.5
preferredHighlightEnd: 0.5
width: parent.width
height: column.height - dayViewPath.y
path: Path {
startX: -(dayViewPath.width/1.75); startY: dayViewPath.height/2
PathLine { x: (dayViewPath.width/7) * 11 ; relativeY: 0; }
}
onNextItemHighlighted: {
//next day
currentDay = currentDay.addDays(1);
dayHeader.incrementCurrentIndex()
}
onPreviousItemHighlighted: {
//previous day
currentDay = currentDay.addDays(-1);
dayHeader.decrementCurrentIndex()
}
delegate: TimeLineBaseComponent {
id: timeLineView
objectName: "DayComponent-"+index
type: ViewType.ViewTypeDay
width: parent.width/7 * 5
height: parent.height
z: index == dayViewPath.currentIndex ? 2 : 1
Connections{
target: root
onIsCurrentPageChanged:{
if(root.isCurrentPage){
timeLineView.scrollToCurrentTime();
}
}
}
//get contentY value from PathView, if its not current Item
Binding{
target: timeLineView
property: "contentY"
value: dayViewPath.childContentY;
when: !timeLineView.PathView.isCurrentItem
}
//set PathView's contentY property, if its current item
Binding{
target: dayViewPath
property: "childContentY"
value: contentY
when: timeLineView.PathView.isCurrentItem
}
contentInteractive: timeLineView.PathView.isCurrentItem
startDay: dayViewPath.startDay.addDays(dayViewPath.indexType(index))
}
}
}
}
|