3
3
import "dateTimeUtils.js" as DateTime
6
id: monthView // id for internal reference
7
9
property bool portraitMode: width < height
8
10
property real weeksInView: 8
9
11
property int weekStartDay: 1 // Monday, FIXME: depends on locale / user settings
11
id: monthView // id for internal reference
13
13
// private properties
14
property real weekHeight: height / weeksInView | 0
15
property int indexOrigin: count / 2
16
property var timeOrigin: (new Date()).weekStart(weekStartDay)
17
property var today: (new Date()).midnight()
17
property real weekHeight: monthView.height / monthView.weeksInView | 0
18
property int indexOrigin: monthView.count / 2
19
property var timeOrigin: (new Date()).weekStart(monthView.weekStartDay)
20
property var today: (new Date()).midnight()
25
model: 1041 // weeks for about +-10y
30
property var weekOrigin: internal.timeOrigin.addDays((index - internal.indexOrigin) * 7)
33
height: internal.weekHeight
44
property var dayOrigin: weekOrigin.addDays(index)
45
property bool isToday: internal.today.getTime() == dayOrigin.getTime()
47
width: weekItem.width / 7
48
height: weekItem.height - 1
49
color: isToday ? "#c94212" : dayOrigin.getMonth() % 2 ? "#c4c4c4" : "#e0e0e0"
52
anchors.centerIn: parent
53
text: dayOrigin.getDate()
54
color: isToday ? "white" : dayOrigin.getDay() == 0 ? "#c94212" : "#404040"
19
61
Timer { // make sure today is updated at midnight
24
67
var newDate = (new Date()).midnight()
25
if (today < newDate) today = newDate
31
model: 1041 // weeks for about +-10y
36
property var weekOrigin: timeOrigin.addDays((index - indexOrigin) * 7)
46
property var dayOrigin: weekOrigin.addDays(index)
47
property bool isToday: today.getTime() == dayOrigin.getTime()
48
width: weekItem.width / 7
49
height: weekItem.height - 1
50
color: isToday ? "#c94212" : dayOrigin.getMonth() % 2 ? "#c4c4c4" : "#e0e0e0"
52
anchors.centerIn: parent
53
text: dayOrigin.getDate()
54
color: isToday ? "white" : dayOrigin.getDay() == 0 ? "#c94212" : "#404040"
62
Component.onCompleted: {
63
positionViewAtIndex(indexOrigin, ListView.Center)
68
if (internal.today < newDate) internal.today = newDate
72
Component.onCompleted: positionViewAtIndex(internal.indexOrigin, ListView.Center)