~renatofilho/messaging-app/fix-1489330

« back to all changes in this revision

Viewing changes to src/qml/ThumbnailContact.qml

  • Committer: Renato Araujo Oliveira Filho
  • Date: 2016-05-16 15:53:28 UTC
  • mfrom: (458.1.101 messaging-app)
  • Revision ID: renato.filho@canonical.com-20160516155328-3lkc6f6cob6jgi8k
Trunk merged.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright 2012-2015 Canonical Ltd.
 
3
 *
 
4
 * This file is part of messaging-app.
 
5
 *
 
6
 * messaging-app is free software; you can redistribute it and/or modify
 
7
 * it under the terms of the GNU General Public License as published by
 
8
 * the Free Software Foundation; version 3.
 
9
 *
 
10
 * messaging-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.0
 
20
import Ubuntu.Components 1.3
 
21
import Ubuntu.Contacts 0.1
 
22
 
 
23
Item {
 
24
    id: attachment
 
25
 
 
26
    readonly property int contactsCount:vcardParser.contacts ? vcardParser.contacts.length : 0
 
27
    property string filePath
 
28
    property alias vcard: vcardParser
 
29
    property string contactDisplayName: {
 
30
        if (contactsCount > 0)  {
 
31
            var contact = vcard.contacts[0]
 
32
            if (contact.displayLabel.label && (contact.displayLabel.label != "")) {
 
33
                return contact.displayLabel.label
 
34
            } else if (contact.name) {
 
35
                var contacFullName  = contact.name.firstName
 
36
                if (contact.name.midleName) {
 
37
                    contacFullName += " " + contact.name.midleName
 
38
                }
 
39
                if (contact.name.lastName) {
 
40
                    contacFullName += " " + contact.name.lastName
 
41
                }
 
42
                return contacFullName
 
43
            }
 
44
            return i18n.tr("Unknown contact")
 
45
        }
 
46
        return ""
 
47
    }
 
48
    property string title: {
 
49
        var result = attachment.contactDisplayName
 
50
        if (attachment.contactsCount > 1) {
 
51
            return result + " (+%1)".arg(attachment.contactsCount-1)
 
52
        } else {
 
53
            return result
 
54
        }
 
55
    }
 
56
 
 
57
    signal pressAndHold()
 
58
 
 
59
    height: units.gu(6)
 
60
    width: textEntry.width
 
61
 
 
62
    ContactAvatar {
 
63
        id: avatar
 
64
 
 
65
        anchors {
 
66
            top: parent.top
 
67
            bottom: parent.bottom
 
68
            left: parent.left
 
69
        }
 
70
        contactElement: attachment.contactsCount === 1 ? attachment.vcard.contacts[0] : null
 
71
        fallbackAvatarUrl: attachment.contactsCount === 1 ? "image://theme/contact" : "image://theme/contact-group"
 
72
        fallbackDisplayName: attachment.contactsCount === 1 ? attachment.contactDisplayName : ""
 
73
        width: height
 
74
    }
 
75
    Label {
 
76
        id: label
 
77
 
 
78
        anchors {
 
79
            left: avatar.right
 
80
            leftMargin: units.gu(1)
 
81
            top: avatar.top
 
82
            bottom: avatar.bottom
 
83
            right: parent.right
 
84
            rightMargin: units.gu(1)
 
85
        }
 
86
 
 
87
        verticalAlignment: Text.AlignVCenter
 
88
        text: attachment.title
 
89
        elide: Text.ElideMiddle
 
90
        color: UbuntuColors.lightAubergine
 
91
    }
 
92
    MouseArea {
 
93
        anchors.fill: parent
 
94
        onPressAndHold: {
 
95
            mouse.accept = true
 
96
            attachment.pressAndHold()
 
97
        }
 
98
    }
 
99
    VCardParser {
 
100
        id: vcardParser
 
101
 
 
102
        vCardUrl: attachment ? Qt.resolvedUrl(attachment.filePath) : ""
 
103
    }
 
104
}
 
105