Merge lp:~renatofilho/address-book-app/fix-1380094 into lp:~phablet-team/address-book-app/staging

Proposed by Renato Araujo Oliveira Filho
Status: Merged
Merge reported by: Renato Araujo Oliveira Filho
Merged at revision: not available
Proposed branch: lp:~renatofilho/address-book-app/fix-1380094
Merge into: lp:~phablet-team/address-book-app/staging
Diff against target: 252 lines (+68/-54)
7 files modified
src/imports/Ubuntu/Contacts/ContactAvatar.qml (+2/-2)
src/imports/Ubuntu/Contacts/ContactDelegate.qml (+3/-5)
src/imports/Ubuntu/Contacts/ContactListView.qml (+0/-14)
src/imports/Ubuntu/Contacts/ContactPreviewPage.qml (+7/-13)
src/imports/Ubuntu/Contacts/ContactSimpleListView.qml (+1/-17)
src/imports/Ubuntu/Contacts/Contacts.js (+55/-1)
src/imports/Ubuntu/Contacts/MostCalledModel.qml (+0/-2)
To merge this branch: bzr merge lp:~renatofilho/address-book-app/fix-1380094
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Needs Fixing
Ubuntu Phablet Team Pending
Review via email: mp+238186@code.launchpad.net

Commit message

Format contact preview page title based on designer spec.

1- Name
2- Company
3- Phone
4- Email
5- Alias
6- No name

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/imports/Ubuntu/Contacts/ContactAvatar.qml'
2--- src/imports/Ubuntu/Contacts/ContactAvatar.qml 2014-08-21 00:45:37 +0000
3+++ src/imports/Ubuntu/Contacts/ContactAvatar.qml 2014-10-14 18:54:07 +0000
4@@ -37,7 +37,7 @@
5 function reload()
6 {
7 img.avatarUrl = Qt.binding(function() { return ContactsJS.getAvatar(contactElement, fallbackAvatarUrl) })
8- initialsLabel.contactDisplayName = Qt.binding(function() { return ContactsJS.formatToDisplay(contactElement, ContactDetail.Name, [Name.FirstName, Name.LastName], fallbackDisplayName) })
9+ initialsLabel.contactDisplayName = Qt.binding(function() { return ContactsJS.formatToDisplayWithDetails(contactElement, ContactDetail.Name, [Name.FirstName, Name.LastName], fallbackDisplayName) })
10 }
11
12 radius: "medium"
13@@ -47,7 +47,7 @@
14 id: initialsLabel
15 objectName: "avatarInitials"
16
17- property string contactDisplayName: ContactsJS.formatToDisplay(contactElement, ContactDetail.Name, [Name.FirstName, Name.LastName], fallbackDisplayName)
18+ property string contactDisplayName: ContactsJS.formatToDisplayWithDetails(contactElement, ContactDetail.Name, [Name.FirstName, Name.LastName], fallbackDisplayName)
19
20 anchors.centerIn: parent
21 text: Contacts.contactInitialsFromString(contactDisplayName)
22
23=== modified file 'src/imports/Ubuntu/Contacts/ContactDelegate.qml'
24--- src/imports/Ubuntu/Contacts/ContactDelegate.qml 2014-09-02 19:23:05 +0000
25+++ src/imports/Ubuntu/Contacts/ContactDelegate.qml 2014-10-14 18:54:07 +0000
26@@ -26,12 +26,10 @@
27 property bool showAvatar: true
28 property bool isCurrentItem: false
29 property string defaultAvatarUrl: ""
30- property string defaultTitle: ""
31- property int titleDetail: ContactDetail.Name
32- property variant titleFields: [ Name.FirstName, Name.LastName ]
33 property bool detailsShown: false
34 property int loaderOpacity: 0.0
35 property bool flicking: false
36+ readonly property string displayLabel: contact ? ContactsJS.formatToDisplay(contact, "") : ""
37
38 signal clicked(int index, QtObject contact)
39 signal pressAndHold(int index, QtObject contact)
40@@ -84,7 +82,7 @@
41 id: avatar
42
43 contactElement: contact
44- fallbackDisplayName: name.text
45+ fallbackDisplayName: root.displayLabel
46 anchors {
47 left: parent.left
48 top: parent.top
49@@ -107,7 +105,7 @@
50
51 }
52 color: UbuntuColors.lightAubergine
53- text: contact ? ContactsJS.formatToDisplay(contact, root.titleDetail, root.titleFields, "") : root.defaultTitle
54+ text: root.displayLabel != "" ? root.displayLabel : i18n.dtr("address-book-app", "No name")
55 elide: Text.ElideRight
56 }
57
58
59=== modified file 'src/imports/Ubuntu/Contacts/ContactListView.qml'
60--- src/imports/Ubuntu/Contacts/ContactListView.qml 2014-08-27 22:40:35 +0000
61+++ src/imports/Ubuntu/Contacts/ContactListView.qml 2014-10-14 18:54:07 +0000
62@@ -69,20 +69,6 @@
63 */
64 property alias showAvatar: view.showAvatar
65 /*!
66- \qmlproperty int titleDetail
67-
68- This property holds the contact detail which will be used to display the contact title in the delegate
69- By default this is set to ContactDetail.Name.
70- */
71- property alias titleDetail: view.titleDetail
72- /*!
73- \qmlproperty list<int> titleFields
74-
75- This property holds the list of all fields which will be used to display the contact title in the delegate
76- By default this is set to [ Name.FirstName, Name.LastName ]
77- */
78- property alias titleFields: view.titleFields
79- /*!
80 \qmlproperty list<SortOrder> sortOrders
81
82 This property holds a list of sort orders used by the contacts model.
83
84=== modified file 'src/imports/Ubuntu/Contacts/ContactPreviewPage.qml'
85--- src/imports/Ubuntu/Contacts/ContactPreviewPage.qml 2014-09-17 18:36:48 +0000
86+++ src/imports/Ubuntu/Contacts/ContactPreviewPage.qml 2014-10-14 18:54:07 +0000
87@@ -20,6 +20,7 @@
88 import Ubuntu.Components.ListItems 1.0 as ListItem
89 import Ubuntu.Contacts 0.1 as ContactsUI
90 import Ubuntu.Components.Popups 1.0 as Popups
91+import "Contacts.js" as ContactsJS
92
93 Page {
94 id: root
95@@ -27,22 +28,15 @@
96 property QtObject contact: null
97 property alias extensions: extensionsContents.children
98
99- function formatNameToDisplay(contact) {
100- if (!contact) {
101- return ""
102- }
103- if (contact.name) {
104- var detail = contact.name
105- return (detail.firstName + " " + detail.lastName).trim()
106- } else if (contact.displayLabel && contact.displayLabel.label && contact.displayLabel.label !== "") {
107- return contact.displayLabel.label
108- } else {
109- return ""
110+ title: ContactsJS.formatToDisplay(contact, i18n.dtr("address-book-app", "No name"))
111+
112+ Connections {
113+ target: contact
114+ onContactChanged: {
115+ root.title = ContactsJS.formatToDisplay(contact, i18n.dtr("address-book-app", "No name"))
116 }
117 }
118
119- title: formatNameToDisplay(contact)
120-
121 Flickable {
122 id: flickable
123
124
125=== modified file 'src/imports/Ubuntu/Contacts/ContactSimpleListView.qml'
126--- src/imports/Ubuntu/Contacts/ContactSimpleListView.qml 2014-09-04 18:21:29 +0000
127+++ src/imports/Ubuntu/Contacts/ContactSimpleListView.qml 2014-10-14 18:54:07 +0000
128@@ -54,20 +54,6 @@
129 property bool showAvatar: true
130
131 /*!
132- \qmlproperty int titleDetail
133-
134- This property holds the contact detail which will be used to display the contact title in the delegate
135- By default this is set to ContactDetail.Name.
136- */
137- property int titleDetail: ContactDetail.DisplayLabel
138- /*!
139- \qmlproperty list<int> titleFields
140-
141- This property holds the list of all fields which will be used to display the contact title in the delegate
142- By default this is set to [ Name.FirstName, Name.LastName ]
143- */
144- property variant titleFields: [ DisplayLabel.Label ]
145- /*!
146 \qmlproperty list<SortOrder> sortOrders
147
148 This property holds a list of sort orders used by the contacts model.
149@@ -101,7 +87,7 @@
150 detailTypesHint: {
151 var hints = [ ContactDetail.Tag, // sections
152 ContactDetail.PhoneNumber, // expansion
153- contactListView.titleDetail ]
154+ ContactDetail.DisplayLabel ]
155
156 if (contactListView.showAvatar) {
157 hints.push(ContactDetail.Avatar)
158@@ -292,8 +278,6 @@
159 selected: contactListView.multiSelectionEnabled && contactListView.isSelected(contactDelegate)
160 selectionMode: contactListView.isInSelectionMode
161 defaultAvatarUrl: contactListView.defaultAvatarImageUrl
162- titleDetail: contactListView.titleDetail
163- titleFields: contactListView.titleFields
164 isCurrentItem: ListView.isCurrentItem
165
166 // actions
167
168=== modified file 'src/imports/Ubuntu/Contacts/Contacts.js'
169--- src/imports/Ubuntu/Contacts/Contacts.js 2014-07-05 22:00:02 +0000
170+++ src/imports/Ubuntu/Contacts/Contacts.js 2014-10-14 18:54:07 +0000
171@@ -2,7 +2,8 @@
172 var phoneTypeModel = null
173
174 // Format contact name to be displayed
175-function formatToDisplay(contact, contactDetail, detailFields, defaultTitle) {
176+function formatToDisplayWithDetails(contact, contactDetail, detailFields, defaultTitle)
177+{
178 if (!contact) {
179 return defaultTitle
180 }
181@@ -28,6 +29,59 @@
182 return values
183 }
184
185+function formatToDisplay(contact, defaultTitle)
186+{
187+ if (!contact) {
188+ return defaultTitle
189+ }
190+
191+ var detail = contact.detail(ContactDetail.DisplayLabel)
192+ if (detail && (detail.label.length > 0)) {
193+ return detail.label
194+ }
195+
196+ detail = contact.detail(ContactDetail.Name)
197+ if (detail) {
198+ var fullName = (detail.firstName + " " + detail.lastName).trim()
199+ if (fullName.length > 0) {
200+ return fullName
201+ }
202+ }
203+
204+ detail = contact.detail(ContactDetail.Organization)
205+ if (detail) {
206+ if (detail.name && (detail.name.length > 0)) {
207+ return detail.name
208+ }
209+ }
210+
211+ var details = contact.details(ContactDetail.PhoneNumber)
212+ if (details.length > 0) {
213+ detail = details[0]
214+ if (detail.number && detail.number.length > 0) {
215+ return detail.number
216+ }
217+ }
218+
219+ details = contact.details(ContactDetail.Email)
220+ if (details.length > 0) {
221+ detail = details[0]
222+ if (detail.emailAddress && detail.emailAddress.length > 0) {
223+ return detail.emailAddress
224+ }
225+ }
226+
227+ details = contact.details(ContactDetail.OnlineAccount)
228+ if (details.length > 0) {
229+ detail = details[0]
230+ if (detail.accountUri && detail.accountUri.length > 0) {
231+ return detail.accountUri
232+ }
233+ }
234+
235+ return defaultTitle
236+}
237+
238 function getAvatar(contact, defaultValue)
239 {
240 // use this verbose mode to avoid problems with binding loops
241
242=== modified file 'src/imports/Ubuntu/Contacts/MostCalledModel.qml'
243--- src/imports/Ubuntu/Contacts/MostCalledModel.qml 2014-09-04 20:34:55 +0000
244+++ src/imports/Ubuntu/Contacts/MostCalledModel.qml 2014-10-14 18:54:07 +0000
245@@ -75,8 +75,6 @@
246
247 defaultAvatarUrl: "image://theme/contacts"
248 width: parent ? parent.width : 0
249- titleDetail: ContactDetail.DisplayLabel
250- titleFields: [ DisplayLabel.Label ]
251 isCurrentItem: root.currentIndex === index
252 locked: true
253

Subscribers

People subscribed via source and target branches