~pkunal-parmar/ubuntu-calendar-app/ICalImport

« back to all changes in this revision

Viewing changes to EventListModel.qml

  • Committer: Sergio Schvezov
  • Date: 2014-01-18 23:29:11 UTC
  • mto: This revision was merged to the branch mainline in revision 184.
  • Revision ID: sergio.schvezov@canonical.com-20140118232911-p3jdkkomszdl2l70
Adding cmake 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (C) 2013-2014 Canonical Ltd
3
 
 *
4
 
 * This file is part of Ubuntu Calendar App
5
 
 *
6
 
 * Ubuntu Calendar App is free software: you can redistribute it and/or modify
7
 
 * it under the terms of the GNU General Public License version 3 as
8
 
 * published by the Free Software Foundation.
9
 
 *
10
 
 * Ubuntu Calendar App is distributed in the hope that it will be useful,
11
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
 * GNU General Public License for more details.
14
 
 *
15
 
 * You should have received a copy of the GNU General Public License
16
 
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
 
 */
18
 
import QtQuick 2.3
 
1
import QtQuick 2.0
 
2
import "dateExt.js" as DateExt
 
3
 
19
4
import QtOrganizer 5.0
20
5
 
 
6
//http://qt.gitorious.org/qt/qtpim/blobs/master/examples/organizer/qmlorganizerlistview/qmlorganizerlistview.qml
21
7
OrganizerModel {
22
8
    id: eventModel
23
9
    manager:"eds"
24
10
 
25
 
    property var listeners:[];
26
 
    property bool isLoading: false
27
 
 
28
 
    function addModelChangeListener(listener){
29
 
        listeners.push(listener);
30
 
    }
31
 
 
32
 
    function removeModelChangeListener(listener) {
33
 
        var i = listeners.indexOf(listener);
34
 
        if(i != -1) {
35
 
            listeners.splice(i, 1);
36
 
        }
37
 
    }
38
 
 
39
 
    function getItems(startDate, endDate){
40
 
        return itemsByTimePeriod(startDate,endDate);
41
 
    }
42
 
 
43
 
    function startLoadingTimer() {
44
 
        var newObject = Qt.createQmlObject("import QtQuick 2.3; Timer {interval: 1000; running: true; repeat: false;}",
45
 
            eventModel, "EventListMode.qml");
46
 
        newObject.onTriggered.connect( function(){
47
 
            var items = getItems(eventModel.startPeriod, eventModel.endPeriod);
48
 
            if( isLoading == true && items.length === 0) {
49
 
                isLoading = false;
50
 
                modelChanged();
51
 
            }
52
 
            newObject.destroy();
53
 
        });
54
 
    }
55
 
 
56
 
 
57
 
    onModelChanged: {
58
 
        isLoading = false
59
 
        if(listeners === undefined){
60
 
            return;
61
 
        }
62
 
        for(var i=0; i < listeners.length ;++i){
63
 
            (listeners[i])();
64
 
        }
65
 
    }
66
 
 
67
 
    function getCollections(){
68
 
        var cals = [];
69
 
        var collections = eventModel.collections;
70
 
        for(var i = 0 ; i < collections.length ; ++i) {
71
 
            var cal = collections[i];
72
 
            if( cal.extendedMetaData("collection-type") === "Calendar" ) {
73
 
                cals.push(cal);
74
 
            }
75
 
        }
76
 
        return cals;
77
 
        }
78
 
 
79
 
    onStartPeriodChanged: {
80
 
        isLoading = true
81
 
    }
82
 
 
83
 
    onIsLoadingChanged: {
84
 
        if( isLoading ) {
85
 
            startLoadingTimer();
86
 
        }
 
11
    signal reloaded
 
12
 
 
13
    onItemCountChanged:{
 
14
        reloaded();
87
15
    }
88
16
}