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
|
/*
* Copyright (C) 2013-2014 Canonical Ltd
*
* This file is part of Ubuntu Calendar App
*
* Ubuntu Calendar App is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as
* published by the Free Software Foundation.
*
* Ubuntu Calendar App is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.4
import Ubuntu.Components 1.3
import QtOrganizer 5.0
import "dateExt.js" as DateExt
import "colorUtils.js" as Color
MonthComponent {
id: root
objectName: "MonthComponent"
property bool isActive: false
property var modelFilter: invalidFilter
onIsActiveChanged: {
if (isActive && (mainModel.filter === invalidFilter)) {
idleRefresh.reset()
}
}
Timer {
id: idleRefresh
function reset()
{
mainModel.filter = invalidFilter
restart()
}
interval: root.isCurrentItem ? 1000 : 2000
repeat: false
onTriggered: {
mainModel.filter = Qt.binding(function() { return root.modelFilter } )
}
}
InvalidFilter {
id: invalidFilter
}
EventListModel {
id: mainModel
startPeriod: root.monthStartDate.midnight();
endPeriod: root.monthStartDate.addDays((/*monthGrid.rows * cols */ 42 )-1).endOfDay()
filter: invalidFilter
fetchHint: FetchHint {
detailTypesHint: [ Detail.EventTime,
Detail.JournalTime,
Detail.TodoTime
]
}
onModelChanged: {
var eventStatus = mainModel.containsItems(startPeriod,
endPeriod,
86400/*24*60*60*/);
root.updateEvents(eventStatus)
}
onStartPeriodChanged: idleRefresh.reset()
onEndPeriodChanged: idleRefresh.reset()
}
}
|