~pkunal-parmar/ubuntu-calendar-app/Minor-Performance

« back to all changes in this revision

Viewing changes to EventReminder.qml

  • Committer: Kunal Parmar
  • Date: 2013-09-04 13:37:10 UTC
  • mto: This revision was merged to the branch mainline in revision 109.
  • Revision ID: pkunal.parmar@gmail.com-20130904133710-ysaxcuazkjo0l4xj
Theme and some other modification

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (C) 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
 
 
19
 
import QtQuick 2.3
20
 
import Ubuntu.Components 1.1
21
 
import Ubuntu.Components.ListItems 1.0 as ListItem
22
 
 
23
 
Page{
24
 
    id:root
25
 
    objectName: "eventReminder"
26
 
 
27
 
    property var visualReminder: null
28
 
    property var audibleReminder: null
29
 
    property var reminderModel: null
30
 
    property var eventTitle: null
31
 
    property var reminderTime: visualReminder.secondsBeforeStart
32
 
 
33
 
    visible: false
34
 
    flickable: null
35
 
    title: i18n.tr("Reminder")
36
 
 
37
 
    head.backAction: Action{
38
 
        iconName:"back"
39
 
        onTriggered:{
40
 
            visualReminder.repetitionCount = 3;
41
 
            visualReminder.repetitionDelay = 120;
42
 
            visualReminder.message = eventTitle
43
 
            visualReminder.secondsBeforeStart = reminderTime;
44
 
 
45
 
            audibleReminder.repetitionCount = 3;
46
 
            audibleReminder.repetitionDelay = 120;
47
 
            audibleReminder.secondsBeforeStart = reminderTime;
48
 
 
49
 
            pop();
50
 
        }
51
 
    }
52
 
 
53
 
    Flickable {
54
 
        id: _pageFlickable
55
 
 
56
 
        clip: true
57
 
        anchors.fill: parent
58
 
        contentHeight: reminderModel.count * units.gu(7)
59
 
 
60
 
        Column {
61
 
            id: _reminderColumn
62
 
 
63
 
            anchors {
64
 
                top: parent.top
65
 
                left: parent.left
66
 
                right: parent.right
67
 
            }
68
 
 
69
 
            Repeater {
70
 
                id: _reminders
71
 
 
72
 
                model: reminderModel
73
 
 
74
 
                ListItem.Standard {
75
 
                    id: _reminderDelegate
76
 
 
77
 
                    property alias isChecked: reminderCheckbox.checked
78
 
 
79
 
                    text: label
80
 
                    control: CheckBox {
81
 
                        id: reminderCheckbox
82
 
 
83
 
                        checked: root.reminderTime === value
84
 
 
85
 
                        onClicked: {
86
 
                            root.reminderTime = value
87
 
                            if (checked) {
88
 
                                // Ensures only one reminder option is selected
89
 
                                for(var i=0; i<reminderModel.count; i++) {
90
 
                                    if(_reminders.itemAt(i).isChecked &&
91
 
                                            i !== index) {
92
 
                                        _reminders.itemAt(i).isChecked = false
93
 
                                    }
94
 
                                }
95
 
                            }
96
 
 
97
 
                            else {
98
 
                                checked = !checked
99
 
                            }
100
 
                        }
101
 
                    }
102
 
                }
103
 
            }
104
 
        }
105
 
    }
106
 
}