[Merge] lp:~renatofilho/address-book-app/fix-1371243 into lp:~phablet-team/address-book-app/staging
Renato Araujo Oliveira Filho
renato.filho at canonical.com
Tue Sep 30 21:40:49 UTC 2014
Diff comments:
> === modified file 'src/imports/ContactList/ContactExporter.qml'
> --- src/imports/ContactList/ContactExporter.qml 2014-05-06 13:18:07 +0000
> +++ src/imports/ContactList/ContactExporter.qml 2014-09-30 20:22:25 +0000
> @@ -20,15 +20,15 @@
> Item {
> id: root
>
> - property var contacts: []
> property var contactModel
> property var outputFile
>
> - signal completed(int error)
> + signal contactExported(int error, string url)
> + signal contactFetched(var contacts)
fixed.
>
> - function start() {
> + function start(contacts) {
> if (!contactModel) {
> - console.log("No contact model defined")
> + console.error("No contact model defined")
> return
just code style decision.
> }
>
> @@ -48,6 +48,7 @@
> priv.currentQueryId = contactModel.fetchContacts(ids)
> }
> }
> +
> Item {
> id: priv
>
> @@ -58,15 +59,18 @@
>
> onExportCompleted: {
> priv.currentQueryId = -1
> - root.completed(error)
> + root.contactExported(error, root.outputFile)
> }
>
> onContactsFetched: {
> // currentQueryId == -2 is used during a fetch using "memory" manager
> if ((priv.currentQueryId == -2) || (requestId == priv.currentQueryId)) {
> - root.contactModel.exportContacts(root.outputFile,
> - [],
> - fetchedContacts)
> + if (root.outputFile !== "") {
> + root.contactModel.exportContacts(root.outputFile,
> + [],
> + fetchedContacts)
> + }
> + root.contactFetched(fetchedContacts)
> }
> }
> }
>
> === modified file 'src/imports/ContactList/ContactListPage.qml'
> --- src/imports/ContactList/ContactListPage.qml 2014-09-18 23:08:25 +0000
> +++ src/imports/ContactList/ContactListPage.qml 2014-09-30 20:22:25 +0000
> @@ -463,7 +463,7 @@
> contactList.selectAll()
> }
> }
> - visible: contactList.isInSelectionMode
> + visible: contactList.multipleSelection
> },
> Action {
> objectName: "share"
> @@ -478,13 +478,7 @@
> contacts.push(items.get(i).model.contact)
> }
>
> - if (mainPage.pickMode) {
> - contactExporter.exportContacts(contacts)
> - mainPage.pickMode = false
> - } else {
> - pageStack.push(Qt.resolvedUrl("../ContactShare/ContactSharePage.qml"),
> - { contactModel: contactList.listModel, contacts: contacts })
> - }
> + contactExporter.start(contacts)
> contactList.endSelection()
> }
> },
> @@ -628,39 +622,41 @@
> }
> }
>
> - QtObject {
> + ContactExporter {
> id: contactExporter
>
> property var activeTransfer: null
> readonly property bool active: activeTransfer && (activeTransfer.state === ContentHub.ContentTransfer.InProgress && activeTransfer.direction === ContentHub.ContentTransfer.Import)
> readonly property bool isMultiple: activeTransfer && (activeTransfer.selectionType === ContentHub.ContentTransfer.Multiple)
>
> - function exportContacts(contacts)
> - {
> - if (activeTransfer) {
> - var exportUrl = "file:///tmp/address_book_app_export.vcf"
> - mainPage.contactModel.exportCompleted.connect(contactExporter.onExportCompleted)
> - mainPage.contactModel.exportContacts(exportUrl, [], contacts)
> - } else {
> - console.error("Export requested with noo active transfer")
> - }
> - }
> -
> - function onExportCompleted(error, url)
> - {
> - mainPage.contactModel.exportCompleted.disconnect(contactExporter.onExportCompleted)
> + contactModel: contactList.listModel
> + outputFile: mainPage.pickMode ? "file:///tmp/address_book_app_export.vcf" : ""
> + onContactExported: {
> + // send contacts back to source app (pick mode)
> if (error === ContactModel.ExportNoError) {
> var obj = Qt.createQmlObject("import Ubuntu.Content 0.1; ContentItem { url: '" + url + "' }", contactExporter)
> - activeTransfer.items = [obj]
> - activeTransfer.state = ContentHub.ContentTransfer.Charged
> + if (activeTransfer) {
> + activeTransfer.items = [obj]
> + activeTransfer.state = ContentHub.ContentTransfer.Charged
> + } else {
> + console.error("No active transfer")
> + }
> } else {
> console.error("Fail to export contacts:" + error)
> }
> activeTransfer = null
> - pickMode = false
> + mainPage.pickMode = false
> mainPage.state = "defautl"
> application.returnVcard(url)
> }
> +
> + onContactFetched: {
> + // Share contacts to an application chosen by the user
> + if (!mainPage.pickMode) {
> + pageStack.push(Qt.resolvedUrl("../ContactShare/ContactSharePage.qml"),
> + { contactModel: contactExporter.contactModel, contacts: contacts })
> + }
> + }
> }
>
> Component.onCompleted: {
>
> === modified file 'src/imports/ContactShare/ContactSharePage.qml'
> --- src/imports/ContactShare/ContactSharePage.qml 2014-07-24 12:22:13 +0000
> +++ src/imports/ContactShare/ContactSharePage.qml 2014-09-30 20:22:25 +0000
> @@ -35,7 +35,7 @@
> onPeerSelected: {
> picker.curTransfer = peer.request();
> if (picker.curTransfer.state === ContentHub.ContentTransfer.InProgress) {
> - var vCardUrl = "file:///tmp/vcard_" + encodeURIComponent(contact.contactId) + ".vcf"
> + var vCardUrl = "file:///tmp/vcard_" + encodeURIComponent(picker.contacts[0].contactId) + ".vcf"
yes this is the filename which will contains the contacts. Will not be visible by the user.
> picker.contactModel.exportContacts(vCardUrl, [], picker.contacts)
> }
> }
>
--
https://code.launchpad.net/~renatofilho/address-book-app/fix-1371243/+merge/235708
Your team Ubuntu Phablet Team is subscribed to branch lp:~phablet-team/address-book-app/staging.
More information about the Ubuntu-reviews
mailing list