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

« back to all changes in this revision

Viewing changes to ContactChoicePopup.qml

  • Committer: Kunal Parmar
  • Date: 2013-10-16 13:17:29 UTC
  • mto: This revision was merged to the branch mainline in revision 152.
  • Revision ID: pkunal.parmar@gmail.com-20131016131729-hd4zy7m6jl2qlsmw
Day view all component act as one

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
19
 
import Ubuntu.Components 1.1
20
 
import Ubuntu.Components.Popups 1.0
21
 
import Ubuntu.Components.ListItems 1.0
22
 
import Ubuntu.Components.Themes.Ambiance 1.0
23
 
import QtOrganizer 5.0
24
 
import QtContacts 5.0
25
 
 
26
 
import "Defines.js" as Defines
27
 
 
28
 
Popover {
29
 
    id: root
30
 
    objectName: "contactPopover"
31
 
 
32
 
    signal contactSelected(var contact);
33
 
 
34
 
    Label {
35
 
        id: noContact
36
 
        anchors.centerIn: parent
37
 
        text: i18n.tr("No contact")
38
 
        visible: contactModel.contacts.length === 0
39
 
    }
40
 
 
41
 
    UnionFilter {
42
 
        id: filter
43
 
        filters: [
44
 
            DetailFilter{
45
 
                detail: ContactDetail.Name
46
 
                field: Name.FirstName
47
 
                matchFlags: Filter.MatchContains
48
 
                value: searchBox.text
49
 
            },
50
 
            DetailFilter{
51
 
                detail: ContactDetail.Name
52
 
                field: Name.LastName
53
 
                matchFlags: Filter.MatchContains
54
 
                value: searchBox.text
55
 
            },
56
 
            DetailFilter{
57
 
                detail: ContactDetail.DisplayLabel
58
 
                field: DisplayLabel.Label
59
 
                matchFlags: Filter.MatchContains
60
 
                value: searchBox.text
61
 
            }
62
 
        ]
63
 
    }
64
 
 
65
 
    ContactModel {
66
 
        id: contactModel
67
 
        manager: "galera"
68
 
        filter: filter
69
 
        autoUpdate: true
70
 
    }
71
 
 
72
 
    Column {
73
 
        anchors.top: parent.top
74
 
        anchors.left: parent.left
75
 
        anchors.right: parent.right
76
 
        anchors.margins: units.gu(1)
77
 
 
78
 
        TextField {
79
 
            id: searchBox
80
 
            objectName: "contactPopoverInput"
81
 
            focus: true
82
 
            width: parent.width
83
 
            placeholderText: i18n.tr("Search contact")
84
 
            primaryItem: Icon {
85
 
                 height: parent.height*0.5
86
 
                 width: parent.height*0.5
87
 
                 anchors.verticalCenter: parent.verticalCenter
88
 
                 name:"find"
89
 
             }
90
 
        }
91
 
 
92
 
        ListView {
93
 
            id: contactList
94
 
            objectName: "contactPopoverList"
95
 
            width: parent.width
96
 
            model: contactModel
97
 
            height: units.gu(30)
98
 
            clip: true
99
 
            delegate: Standard{
100
 
                objectName: "contactPopoverList%1".arg(index)
101
 
                property var item: contactModel.contacts[index]
102
 
                height: units.gu(4)
103
 
                text: item ? item.displayLabel.label : ""
104
 
 
105
 
                onClicked: {
106
 
                    root.contactSelected(item);
107
 
                    onClicked: PopupUtils.close(root)
108
 
                }
109
 
            }
110
 
        }
111
 
    }
112
 
}