diff -Nru address-book-app-0.2+14.04.20140327/debian/changelog address-book-app-0.2+14.04.20140408.3/debian/changelog --- address-book-app-0.2+14.04.20140327/debian/changelog 2014-04-09 07:36:13.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/debian/changelog 2014-04-09 07:36:13.000000000 +0000 @@ -1,3 +1,11 @@ +address-book-app (0.2+14.04.20140408.3-0ubuntu1) trusty; urgency=low + + [ Renato Araujo Oliveira Filho ] + * Implemented support to run online accounts dialog during the first + run. + + -- Ubuntu daily release Tue, 08 Apr 2014 20:44:57 +0000 + address-book-app (0.2+14.04.20140327-0ubuntu1) trusty; urgency=low [ Renato Araujo Oliveira Filho ] diff -Nru address-book-app-0.2+14.04.20140327/po/address-book-app.pot address-book-app-0.2+14.04.20140408.3/po/address-book-app.pot --- address-book-app-0.2+14.04.20140327/po/address-book-app.pot 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/address-book-app.pot 2014-04-08 20:44:45.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: address-book-app\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-12 14:11+0000\n" +"POT-Creation-Date: 2014-02-19 16:03-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: src/imports/ContactList/ContactListPage.qml:152 +#: src/imports/ContactList/ContactListPage.qml:186 msgid "Add" msgstr "" @@ -45,7 +45,7 @@ msgstr "" #: data/address-book-app.desktop.in:6 data/address-book-app.desktop.in:7 -#: src/imports/ContactList/ContactListPage.qml:53 +#: src/imports/ContactList/ContactListPage.qml:54 msgid "Contacts" msgstr "" @@ -57,7 +57,7 @@ msgid "Country" msgstr "" -#: src/imports/ContactList/ContactListPage.qml:77 +#: src/imports/ContactList/ContactListPage.qml:100 #: src/imports/ContactView/ContactView.qml:157 #: src/imports/Ubuntu/Contacts/ContactSimpleListView.qml:245 msgid "Delete" @@ -91,11 +91,11 @@ msgstr "" #: src/imports/ContactEdit/ContactFetchError.qml:25 -#: src/imports/ContactList/ContactListPage.qml:60 +#: src/imports/ContactList/ContactListPage.qml:61 msgid "Error" msgstr "" -#: src/imports/ContactList/ContactListPage.qml:61 +#: src/imports/ContactList/ContactListPage.qml:62 msgid "Fail to Load contacts" msgstr "" @@ -149,6 +149,10 @@ msgid "Mobile" msgstr "" +#: src/imports/ContactList/OnlineAccountsMessage.qml:48 +msgid "No" +msgstr "" + #: src/imports/ContactEdit/ContactDetailOrganizationsEditor.qml:30 msgid "Organization" msgstr "" @@ -184,8 +188,8 @@ msgid "Save" msgstr "" -#: src/imports/ContactList/ContactListPage.qml:77 -#: src/imports/ContactList/ContactListPage.qml:144 +#: src/imports/ContactList/ContactListPage.qml:100 +#: src/imports/ContactList/ContactListPage.qml:178 msgid "Select" msgstr "" @@ -222,6 +226,20 @@ msgid "Work Mobile" msgstr "" +#: src/imports/ContactList/OnlineAccountsMessage.qml:28 +msgid "" +"Would you like to sync contacts\n" +"from online accounts now?" +msgstr "" + #: src/imports/Ubuntu/Contacts/ContactDetailOnlineAccountTypeModel.qml:70 msgid "Yahoo" msgstr "" + +#: src/imports/ContactList/OnlineAccountsMessage.qml:36 +msgid "Yes" +msgstr "" + +#: src/imports/ContactList/OnlineAccountsMessage.qml:27 +msgid "You have no contacts." +msgstr "" diff -Nru address-book-app-0.2+14.04.20140327/po/ar.po address-book-app-0.2+14.04.20140408.3/po/ar.po --- address-book-app-0.2+14.04.20140327/po/ar.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/ar.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/ast.po address-book-app-0.2+14.04.20140408.3/po/ast.po --- address-book-app-0.2+14.04.20140327/po/ast.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/ast.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/bg.po address-book-app-0.2+14.04.20140408.3/po/bg.po --- address-book-app-0.2+14.04.20140327/po/bg.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/bg.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/bn.po address-book-app-0.2+14.04.20140408.3/po/bn.po --- address-book-app-0.2+14.04.20140327/po/bn.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/bn.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/br.po address-book-app-0.2+14.04.20140408.3/po/br.po --- address-book-app-0.2+14.04.20140327/po/br.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/br.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/ca.po address-book-app-0.2+14.04.20140408.3/po/ca.po --- address-book-app-0.2+14.04.20140327/po/ca.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/ca.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/ckb.po address-book-app-0.2+14.04.20140408.3/po/ckb.po --- address-book-app-0.2+14.04.20140327/po/ckb.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/ckb.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:28+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/cs.po address-book-app-0.2+14.04.20140408.3/po/cs.po --- address-book-app-0.2+14.04.20140327/po/cs.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/cs.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/de.po address-book-app-0.2+14.04.20140408.3/po/de.po --- address-book-app-0.2+14.04.20140327/po/de.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/de.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/es.po address-book-app-0.2+14.04.20140408.3/po/es.po --- address-book-app-0.2+14.04.20140327/po/es.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/es.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/fi.po address-book-app-0.2+14.04.20140408.3/po/fi.po --- address-book-app-0.2+14.04.20140327/po/fi.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/fi.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/fr.po address-book-app-0.2+14.04.20140408.3/po/fr.po --- address-book-app-0.2+14.04.20140327/po/fr.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/fr.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/gl.po address-book-app-0.2+14.04.20140408.3/po/gl.po --- address-book-app-0.2+14.04.20140327/po/gl.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/gl.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/he.po address-book-app-0.2+14.04.20140408.3/po/he.po --- address-book-app-0.2+14.04.20140327/po/he.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/he.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/hr.po address-book-app-0.2+14.04.20140408.3/po/hr.po --- address-book-app-0.2+14.04.20140327/po/hr.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/hr.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/hu.po address-book-app-0.2+14.04.20140408.3/po/hu.po --- address-book-app-0.2+14.04.20140327/po/hu.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/hu.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/it.po address-book-app-0.2+14.04.20140408.3/po/it.po --- address-book-app-0.2+14.04.20140327/po/it.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/it.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/ja.po address-book-app-0.2+14.04.20140408.3/po/ja.po --- address-book-app-0.2+14.04.20140327/po/ja.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/ja.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/km.po address-book-app-0.2+14.04.20140408.3/po/km.po --- address-book-app-0.2+14.04.20140327/po/km.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/km.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/ms.po address-book-app-0.2+14.04.20140408.3/po/ms.po --- address-book-app-0.2+14.04.20140327/po/ms.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/ms.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/nl.po address-book-app-0.2+14.04.20140408.3/po/nl.po --- address-book-app-0.2+14.04.20140327/po/nl.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/nl.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/pt_BR.po address-book-app-0.2+14.04.20140408.3/po/pt_BR.po --- address-book-app-0.2+14.04.20140327/po/pt_BR.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/pt_BR.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:28+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/ru.po address-book-app-0.2+14.04.20140408.3/po/ru.po --- address-book-app-0.2+14.04.20140327/po/ru.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/ru.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/sl.po address-book-app-0.2+14.04.20140408.3/po/sl.po --- address-book-app-0.2+14.04.20140327/po/sl.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/sl.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/ta.po address-book-app-0.2+14.04.20140408.3/po/ta.po --- address-book-app-0.2+14.04.20140327/po/ta.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/ta.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/tr.po address-book-app-0.2+14.04.20140408.3/po/tr.po --- address-book-app-0.2+14.04.20140327/po/tr.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/tr.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/ug.po address-book-app-0.2+14.04.20140408.3/po/ug.po --- address-book-app-0.2+14.04.20140327/po/ug.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/ug.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/uk.po address-book-app-0.2+14.04.20140408.3/po/uk.po --- address-book-app-0.2+14.04.20140327/po/uk.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/uk.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/po/zh_HK.po address-book-app-0.2+14.04.20140408.3/po/zh_HK.po --- address-book-app-0.2+14.04.20140327/po/zh_HK.po 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/po/zh_HK.po 2014-04-08 20:44:33.000000000 +0000 @@ -14,7 +14,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-03-25 07:27+0000\n" +"X-Launchpad-Export-Date: 2014-04-02 06:50+0000\n" "X-Generator: Launchpad (build 16967)\n" #: src/imports/ContactList/ContactListPage.qml:152 diff -Nru address-book-app-0.2+14.04.20140327/src/app/addressbookapp.cpp address-book-app-0.2+14.04.20140408.3/src/app/addressbookapp.cpp --- address-book-app-0.2+14.04.20140327/src/app/addressbookapp.cpp 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/src/app/addressbookapp.cpp 2014-04-08 20:44:45.000000000 +0000 @@ -30,9 +30,12 @@ #include #include #include +#include #include +#define ADDRESS_BOOK_FIRST_RUN_KEY "first-run" + static void printUsage(const QStringList& arguments) { qDebug() << "usage:" @@ -86,7 +89,9 @@ : QGuiApplication(argc, argv), m_view(0), m_contentComm(0), - m_pickingMode(false) + m_syncMonitor(0), + m_pickingMode(false), + m_testMode(false) { setOrganizationName("com.ubuntu.address-book"); setApplicationName("AddressBookApp"); @@ -138,6 +143,7 @@ } else { qCritical("Library qttestability load failed!"); } + m_testMode = true; } else { m_contentComm = new ContentCommunicator(this); } @@ -193,11 +199,14 @@ } } + connectWithSyncMonitor(); return true; } AddressBookApp::~AddressBookApp() { + unsetFirstRun(); + if (m_view) { delete m_view; } @@ -226,6 +235,24 @@ } } +bool AddressBookApp::isFirstRun() const +{ + if (m_testMode) { + return false; + } else { + QSettings settings; + return settings.value(ADDRESS_BOOK_FIRST_RUN_KEY, true).toBool(); + } +} + +void AddressBookApp::unsetFirstRun() const +{ + // mark first run as false + QSettings settings; + settings.setValue(ADDRESS_BOOK_FIRST_RUN_KEY, false); + settings.sync(); +} + void AddressBookApp::parseUrl(const QString &arg) { QUrl url = QUrl::fromPercentEncoding(arg.toUtf8()); @@ -362,3 +389,46 @@ return imgThread->outputFile(); } + +void AddressBookApp::connectWithSyncMonitor() +{ + m_syncMonitor = new QDBusInterface("com.canonical.SyncMonitor", + "/com/canonical/SyncMonitor", + "com.canonical.SyncMonitor"); + if (m_syncMonitor->lastError().isValid()) { + qWarning() << "Fail to connect with sync monitor:" << m_syncMonitor->lastError(); + } + connect(m_syncMonitor, SIGNAL(stateChanged()), SIGNAL(syncingChanged())); + connect(m_syncMonitor, SIGNAL(enabledServicesChanged()), SIGNAL(syncEnabledChanged())); + Q_EMIT syncEnabledChanged(); + Q_EMIT syncingChanged(); +} + +void AddressBookApp::startSync() const +{ + if (m_syncMonitor && !isSyncing()) { + m_syncMonitor->call("sync", QStringList() << "contacts"); + } +} + +bool AddressBookApp::isSyncing() const +{ + if (m_syncMonitor) { + return (m_syncMonitor->property("state").toString() == "syncing"); + } else { + return false; + } +} + +bool AddressBookApp::syncEnabled() const +{ + if (m_syncMonitor) { + QStringList enabledServices = m_syncMonitor->property("enabledServices").toStringList(); + Q_FOREACH(const QString &value, enabledServices) { + if (value == "contacts") { + return true; + } + } + } + return false; +} diff -Nru address-book-app-0.2+14.04.20140327/src/app/addressbookapp.h address-book-app-0.2+14.04.20140408.3/src/app/addressbookapp.h --- address-book-app-0.2+14.04.20140327/src/app/addressbookapp.h 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/src/app/addressbookapp.h 2014-04-08 20:44:45.000000000 +0000 @@ -17,21 +17,31 @@ #ifndef ADDRESSBOOK_APP_H #define ADDRESSBOOK_APP_H -#include -#include -#include +#include +#include +#include +#include class ContentCommunicator; class AddressBookApp : public QGuiApplication { Q_OBJECT + Q_PROPERTY(bool firstRun READ isFirstRun CONSTANT) + Q_PROPERTY(bool syncing READ isSyncing NOTIFY syncingChanged) + Q_PROPERTY(bool syncEnabled READ syncEnabled NOTIFY syncEnabledChanged) public: AddressBookApp(int &argc, char **argv); virtual ~AddressBookApp(); bool setup(); + bool isSyncing() const; + bool syncEnabled() const; + +Q_SIGNALS: + void syncingChanged(); + void syncEnabledChanged(); public Q_SLOTS: void activateWindow(); @@ -39,16 +49,24 @@ void parseUrl(const QString &arg); void onViewStatusChanged(QQuickView::Status status); void returnVcard(const QUrl &url); + bool isFirstRun() const; + void unsetFirstRun() const; + + // sync monitor + void startSync() const; private: void callQMLMethod(const QString name, QStringList args); + void connectWithSyncMonitor(); private: QQuickView *m_view; ContentCommunicator *m_contentComm; + QDBusInterface *m_syncMonitor; QString m_initialArg; bool m_viewReady; bool m_pickingMode; + bool m_testMode; }; #endif diff -Nru address-book-app-0.2+14.04.20140327/src/app/main.cpp address-book-app-0.2+14.04.20140408.3/src/app/main.cpp --- address-book-app-0.2+14.04.20140327/src/app/main.cpp 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/src/app/main.cpp 2014-04-08 20:44:45.000000000 +0000 @@ -18,11 +18,14 @@ #include "addressbookapp.h" // Qt -#include +#include int main(int argc, char** argv) { - QGuiApplication::setApplicationName("Address Book App"); + QCoreApplication::setOrganizationName("Canonical"); + QCoreApplication::setOrganizationDomain("canonical.com"); + QCoreApplication::setApplicationName("Address Book App"); + AddressBookApp application(argc, argv); if (!application.setup()) { diff -Nru address-book-app-0.2+14.04.20140327/src/imports/Common/ContactDetailGroupBase.qml address-book-app-0.2+14.04.20140408.3/src/imports/Common/ContactDetailGroupBase.qml --- address-book-app-0.2+14.04.20140327/src/imports/Common/ContactDetailGroupBase.qml 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/src/imports/Common/ContactDetailGroupBase.qml 2014-04-08 20:44:45.000000000 +0000 @@ -51,6 +51,24 @@ } } + function filterDetails(details) { + var result = [] + for(var d in details) { + var isEmpty = true + for(var f in root.fields) { + var fieldValue = details[d].value(root.fields[f]) + if (fieldValue && (String(fieldValue) !== "")) { + isEmpty = false + break; + } + } + if (!isEmpty) { + result.push(details[d]) + } + } + return result + } + onContactChanged: reloadDetails(true) onDetailTypeChanged: reloadDetails(true) Connections { @@ -68,24 +86,6 @@ property var values: root.showEmpty && root.details ? root.details : filterDetails(root.details) - function filterDetails(details) { - var result = [] - for(var d in details) { - var isEmpty = true - for(var f in root.fields) { - var fieldValue = details[d].value(root.fields[f]) - if (fieldValue && (String(fieldValue) !== "")) { - isEmpty = false - break; - } - } - if (!isEmpty) { - result.push(details[d]) - } - } - return result - } - onValuesChanged: { if (!values) { root.inputFields = [] diff -Nru address-book-app-0.2+14.04.20140327/src/imports/ContactEdit/ContactDetailSyncTargetEditor.qml address-book-app-0.2+14.04.20140408.3/src/imports/ContactEdit/ContactDetailSyncTargetEditor.qml --- address-book-app-0.2+14.04.20140327/src/imports/ContactEdit/ContactDetailSyncTargetEditor.qml 2014-03-27 18:19:43.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/src/imports/ContactEdit/ContactDetailSyncTargetEditor.qml 2014-04-08 20:44:45.000000000 +0000 @@ -53,7 +53,7 @@ property real myHeight: sources.containerHeight + units.gu(4) + label.height detail: contact ? contact.detail(ContactDetail.SyncTarget) : null - implicitHeight: isNewContact ? myHeight : 0 + implicitHeight: isNewContact && (sourceModel.contacts.length > 1) ? myHeight : 0 ContactModel { id: sourceModel diff -Nru address-book-app-0.2+14.04.20140327/src/imports/ContactList/CMakeLists.txt address-book-app-0.2+14.04.20140408.3/src/imports/ContactList/CMakeLists.txt --- address-book-app-0.2+14.04.20140327/src/imports/ContactList/CMakeLists.txt 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/src/imports/ContactList/CMakeLists.txt 2014-04-08 20:44:45.000000000 +0000 @@ -1,6 +1,7 @@ set(CONTACT_LIST_QMLS ContactListPage.qml ContactExporter.qml + OnlineAccountsMessage.qml ) install(FILES ${CONTACT_LIST_QMLS} diff -Nru address-book-app-0.2+14.04.20140327/src/imports/ContactList/ContactListPage.qml address-book-app-0.2+14.04.20140408.3/src/imports/ContactList/ContactListPage.qml --- address-book-app-0.2+14.04.20140327/src/imports/ContactList/ContactListPage.qml 2014-03-27 18:19:43.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/src/imports/ContactList/ContactListPage.qml 2014-04-08 20:44:45.000000000 +0000 @@ -15,10 +15,12 @@ */ import QtQuick 2.0 +import QtContacts 5.0 + import Ubuntu.Components 0.1 import Ubuntu.Components.ListItems 0.1 as ListItem import Ubuntu.Contacts 0.1 as ContactsUI -import QtContacts 5.0 +import Ubuntu.Components.Popups 0.1 as Popups Page { id: mainPage @@ -26,7 +28,9 @@ property bool pickMode: false property bool pickMultipleContacts: false + property var onlineAccountsMessageDialog: null property QtObject contactIndex: null + property bool syncEnabled: application.syncEnabled property var contactModel: contactList.listModel ? contactList.listModel : null function createEmptyContact(phoneNumber) { @@ -51,6 +55,25 @@ title: i18n.tr("Contacts") + Component { + id: onlineAccountsDialog + + OnlineAccountsMessage { + id: onlineAccountsMessage + onCanceled: { + mainPage.onlineAccountsMessageDialog = null + PopupUtils.close(onlineAccountsMessage) + application.unsetFirstRun() + } + onAccepted: { + Qt.openUrlExternally("settings:///system/online-accounts") + mainPage.onlineAccountsMessageDialog = null + PopupUtils.close(onlineAccountsMessage) + application.unsetFirstRun() + } + } + } + ContactsUI.ContactListView { id: contactList objectName: "contactListView" @@ -68,12 +91,14 @@ } swipeToDelete: !pickMode - ActivityIndicator { - id: activity - - anchors.centerIn: parent - running: contactList.loading && (contactList.count === 0) - visible: running + onCountChanged: { + if ((count > 0) && mainPage.onlineAccountsMessageDialog) { + // Because of some contacts can take longer to arrive due the dbus delay, + // we need to destroy the online account dialog if this happen + PopupUtils.close(mainPage.onlineAccountsMessageDialog) + mainPage.onlineAccountsMessageDialog = null + application.unsetFirstRun() + } } onContactClicked: { @@ -117,6 +142,26 @@ } onError: pageStack.contactModelError(error) + + + Column { + id: indicator + + anchors.centerIn: parent + spacing: units.gu(2) + visible: (contactList.loading || application.syncing) && (contactList.count === 0) + + ActivityIndicator { + id: activity + + anchors.horizontalCenter: parent.horizontalCenter + running: indicator.visible + } + Label { + anchors.horizontalCenter: activity.horizontalCenter + text: contactList.loading ? i18n.tr("Loading...") : i18n.tr("Syncing...") + } + } } tools: ToolbarItems { @@ -124,10 +169,20 @@ locked: contactList.isInSelectionMode ToolbarButton { + objectName: "Sync" + visible: mainPage.syncEnabled + action: Action { + text: application.syncing ? i18n.tr("Syncing") : i18n.tr("Sync") + iconName: "reload" + enabled: !application.syncing + onTriggered: application.startSync() + } + } + ToolbarButton { action: Action { objectName: "selectButton" text: i18n.tr("Select") - iconSource: "artwork:/select.png" + iconName: "select" onTriggered: contactList.startSelection() } } @@ -135,7 +190,7 @@ objectName: "Add" action: Action { text: i18n.tr("Add") - iconSource: "artwork:/add.png" + iconName: "add" onTriggered: { var newContact = mainPage.createEmptyContact("") pageStack.push(Qt.resolvedUrl("../ContactEdit/ContactEditor.qml"), @@ -151,6 +206,16 @@ contactList.returnToBounds() } + onSyncEnabledChanged: { + // close online account dialog if any account get registered + // while the app is running + if (syncEnabled && mainPage.onlineAccountsMessageDialog) { + PopupUtils.close(mainPage.onlineAccountsMessageDialog) + mainPage.onlineAccountsMessageDialog = null + application.unsetFirstRun() + } + } + Connections { target: pageStack onContactRequested: { @@ -202,7 +267,12 @@ Component.onCompleted: { if (pickMode) { contactList.startSelection() + } else if ((contactList.count === 0) && + application.firstRun && + !mainPage.syncEnabled) { + mainPage.onlineAccountsMessageDialog = PopupUtils.open(onlineAccountsDialog, null) } + if (TEST_DATA != "") { contactList.listModel.importContacts("file://" + TEST_DATA) } diff -Nru address-book-app-0.2+14.04.20140327/src/imports/ContactList/OnlineAccountsMessage.qml address-book-app-0.2+14.04.20140408.3/src/imports/ContactList/OnlineAccountsMessage.qml --- address-book-app-0.2+14.04.20140327/src/imports/ContactList/OnlineAccountsMessage.qml 1970-01-01 00:00:00.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/src/imports/ContactList/OnlineAccountsMessage.qml 2014-04-08 20:44:45.000000000 +0000 @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2014 Canonical, Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import QtQuick 2.0 +import Ubuntu.Components 0.1 +import Ubuntu.Components.Popups 0.1 as Popups + +Popups.Dialog { + width: units.gu(40) + height: units.gu(71) + + signal canceled() + signal accepted() + title: i18n.tr("You have no contacts.") + text: i18n.tr("Would you like to sync contacts\nfrom online accounts now?") + Button { + objectName: "onlineAccountsDialog.yesButton" + anchors { + left: parent.left + right: parent.right + margins: units.gu(1) + } + text: i18n.tr("Yes") + onClicked: accepted() + } + + Button { + objectName: "onlineAccountsDialog.noButton" + anchors { + left: parent.left + right: parent.right + margins: units.gu(1) + } + gradient: UbuntuColors.greyGradient + text: i18n.tr("No") + onClicked: canceled() + } +} diff -Nru address-book-app-0.2+14.04.20140327/src/imports/ContactView/ContactDetailSyncTargetView.qml address-book-app-0.2+14.04.20140408.3/src/imports/ContactView/ContactDetailSyncTargetView.qml --- address-book-app-0.2+14.04.20140327/src/imports/ContactView/ContactDetailSyncTargetView.qml 2014-03-27 18:19:43.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/src/imports/ContactView/ContactDetailSyncTargetView.qml 2014-04-08 20:44:45.000000000 +0000 @@ -16,15 +16,51 @@ import QtQuick 2.0 import Ubuntu.Components 0.1 -import QtContacts 5.0 as QtContacts +import QtContacts 5.0 ContactDetailGroupWithTypeView { id: root + // does not show the field if there is only one addressbook + function filterDetails(details) { + var result = [] + + if (sourceModel.contacts.length <= 1) { + return result; + } + + for(var d in details) { + var isEmpty = true + for(var f in root.fields) { + var fieldValue = details[d].value(root.fields[f]) + if (fieldValue && (String(fieldValue) !== "")) { + isEmpty = false + break; + } + } + if (!isEmpty) { + result.push(details[d]) + } + } + return result + } + title: i18n.tr("Addressbook") defaultIcon: "image://theme/contact-group" - detailType: QtContacts.ContactDetail.SyncTarget + detailType: ContactDetail.SyncTarget typeModel: null - fields: [ QtContacts.SyncTarget.SyncTarget ] + fields: [ SyncTarget.SyncTarget ] + + ContactModel { + id: sourceModel + + manager: QTCONTACTS_MANAGER_OVERRIDE && QTCONTACTS_MANAGER_OVERRIDE != "" ? QTCONTACTS_MANAGER_OVERRIDE : "galera" + filter: DetailFilter { + detail: ContactDetail.Type + field: Type.TypeField + value: Type.Group + matchFlags: DetailFilter.MatchExactly + } + } } diff -Nru address-book-app-0.2+14.04.20140327/tests/autopilot/address_book_app/emulators/main_window.py address-book-app-0.2+14.04.20140408.3/tests/autopilot/address_book_app/emulators/main_window.py --- address-book-app-0.2+14.04.20140327/tests/autopilot/address_book_app/emulators/main_window.py 2014-03-27 18:19:32.000000000 +0000 +++ address-book-app-0.2+14.04.20140408.3/tests/autopilot/address_book_app/emulators/main_window.py 2014-04-08 20:44:45.000000000 +0000 @@ -20,8 +20,17 @@ """An emulator class that makes it easy to interact with the app.""" def get_contact_list_page(self): - return self. wait_select_single("ContactListPage", - objectName="contactListPage") + # ContactListPage is the only page that can appears multiple times + # Ex.: During the pick mode we alway push a new contactListPage, to preserve + # the current application status + pages = self.select_many("ContactListPage", + objectName="contactListPage") + + # alway return the page without pickMode + for p in pages: + if not p.pickMode: + return p + return None def get_contact_edit_page(self): return self.wait_select_single(ContactEditor,