TizenRefApp-6805 Implement text copy functionality in the Contact Details 84/82184/4
authorNataliia Kamyshna <n.kamyshna@samsung.com>
Mon, 1 Aug 2016 10:51:05 +0000 (13:51 +0300)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Wed, 3 Aug 2016 10:16:55 +0000 (03:16 -0700)
Change-Id: I031be9b6849e0bec21b760978d34b823802c8290
Signed-off-by: Nataliia Kamyshna <n.kamyshna@samsung.com>
52 files changed:
contacts-app/res/po/ar.po
contacts-app/res/po/az.po
contacts-app/res/po/bg.po
contacts-app/res/po/ca.po
contacts-app/res/po/cs.po
contacts-app/res/po/da.po
contacts-app/res/po/de.po
contacts-app/res/po/el_GR.po
contacts-app/res/po/en.po
contacts-app/res/po/en_PH.po
contacts-app/res/po/en_US.po
contacts-app/res/po/es_ES.po
contacts-app/res/po/es_US.po
contacts-app/res/po/et.po
contacts-app/res/po/eu.po
contacts-app/res/po/fi.po
contacts-app/res/po/fr.po
contacts-app/res/po/fr_CA.po
contacts-app/res/po/ga.po
contacts-app/res/po/gl.po
contacts-app/res/po/hi.po
contacts-app/res/po/hr.po
contacts-app/res/po/hu.po
contacts-app/res/po/hy.po
contacts-app/res/po/is.po
contacts-app/res/po/it_IT.po
contacts-app/res/po/ja_JP.po
contacts-app/res/po/ka.po
contacts-app/res/po/kk.po
contacts-app/res/po/ko_KR.po
contacts-app/res/po/lt.po
contacts-app/res/po/lv.po
contacts-app/res/po/mk.po
contacts-app/res/po/nb.po
contacts-app/res/po/nl.po
contacts-app/res/po/pl.po
contacts-app/res/po/pt_BR.po
contacts-app/res/po/pt_PT.po
contacts-app/res/po/ro.po
contacts-app/res/po/ru_RU.po
contacts-app/res/po/sk.po
contacts-app/res/po/sl.po
contacts-app/res/po/sr.po
contacts-app/res/po/sv.po
contacts-app/res/po/tr_TR.po
contacts-app/res/po/uk.po
contacts-app/res/po/uz.po
contacts-app/res/po/zh_CN.po
contacts-app/res/po/zh_HK.po
contacts-app/res/po/zh_TW.po
lib-contacts/inc/Contacts/Details/FieldItem.h
lib-contacts/src/Contacts/Details/FieldItem.cpp

index 9b6179a..fe637fb 100644 (file)
@@ -232,6 +232,9 @@ msgstr "إرسال بريد إلكتروني"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "اختر التاريخ"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "نسخ"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "الأسماء"
 
index d31db69..f0ab918 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Elektron məktubu göndər"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Tarixi təyin et"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Köçür"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Adlar"
 
index 288187c..5aee14b 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Изпращане на еmail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Задаване на дата"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Копиране"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Телефонен указател"
 
index 7e2d10d..cc2a863 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Envia missatge o correu electrònic"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Definir data"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copia"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contactes"
 
index f497a0f..8e09c49 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Odeslat e-mail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Nastavit datum"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopírovat"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontakty"
 
index f6b28ac..e1b9a2f 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Send e-mail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Angiv dato"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopiér"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontakter"
 
index 697ed18..b5bbac8 100644 (file)
@@ -232,6 +232,9 @@ msgstr "E-Mail senden"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Datum einstellen"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopieren"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontakte"
 
index 9643f03..ca302be 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Αποστολή email"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Ορισμός ημερομηνίας"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Αντιγραφή"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Επαφές"
 
index 9c26e2f..7154246 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Send email"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Set date"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copy"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contacts"
 
index 627bfc9..8d4fc5a 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Send Email"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Set date"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copy"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contacts"
 
index 50ed0db..2c11123 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Send email"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Set date"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copy"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contacts"
 
index d1c3d8a..7fc3c7b 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Enviar correo electrónico"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "FECHA"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copiar"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contactos"
 
index 5bcfca3..c5b045e 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Enviar correo"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Definir fecha"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copiar"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contactos"
 
index 9a9fb78..cd3c919 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Saada e-kiri"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Määra kuupäev"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopeeri"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontaktid"
 
index 09be61f..9ba453b 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Bidali mezu elektronikoa"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Ezarri data"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopiatu"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontaktuak"
 
index d67426b..2b89b7f 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Lähetä sähköpostiviesti"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Aseta päivämäärä"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopioi"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Yhteystiedot"
 
index b5616c0..5c6905b 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Envoyer un e-mail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Définir la date"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copier"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contacts"
 
index dc5cc1f..ea3260c 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Envoyer un courriel"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Définir la date"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copier"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contacts"
 
index 9ace1b3..bebd6b9 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Seol r-phost"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Socraigh dáta"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Cóipeáil"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Teagmhálaithe"
 
index 901ea12..2049603 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Enviar correo electrónico"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Definir data"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copiar"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contactos"
 
index 23d0308..fa25dfb 100644 (file)
@@ -232,6 +232,9 @@ msgstr "ईमेल भेजें"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "तिथि सेट करें"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "कॉपी करें"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "संपर्क"
 
index 7645fff..d7aaab8 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Pošalji email"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Postavi datum"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopiraj"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Imenik"
 
index 642604a..3e4e906 100644 (file)
@@ -232,6 +232,9 @@ msgstr "E-mail küldése"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Dátum beállítása"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Másol"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Névjegyek"
 
index 0612739..677c0b0 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Ուղարկել էլ. փոստ"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Դնել թվական"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Պատճենել"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Կոնտակտներ"
 
index 75a6699..0eae89d 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Senda tölvupóst"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Veldu dag"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Afrita"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Tengiliðir"
 
index 27fdf22..8182014 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Invia e-mail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Imposta data"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copia"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Rubrica"
 
index 8ac29b9..acfd020 100644 (file)
@@ -232,6 +232,9 @@ msgstr "メール送信"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "日付を設定"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "コピー"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "連絡先"
 
index 55225ec..40f075d 100644 (file)
@@ -232,6 +232,9 @@ msgstr "ელ. წერილის გაგზავნა"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "თარიღის დაყენება"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "ასლი"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "კონტაქტები"
 
index 1e2c54d..dd415ed 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Email жіберу"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Күнді орнату"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Көшіру"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Контактілер"
 
index c6a2f22..62b40e9 100644 (file)
@@ -232,6 +232,9 @@ msgstr "이메일 보내기"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "날짜 설정"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "복사"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "연락처"
 
index 8ccaf25..4bc504e 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Siųsti el. laišką"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Nustatykite datą"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopijuoti"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Adresatai"
 
index fa6b098..52f4ca8 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Sūtīt e-pasta ziņu"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Iestatīt datumu"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopēt"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontakti"
 
index f9d246a..b2f780d 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Прати е-пошта"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Одреди датум"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Копирај"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Именик"
 
index dbd296b..871b0b0 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Send e-post"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Angi dato"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopier"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontakter"
 
index 754fb4d..3269faa 100644 (file)
@@ -232,6 +232,9 @@ msgstr "E-mail verzenden"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Datum instellen"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopiëren"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contacten"
 
index e8ad9db..b35587e 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Wyślij e-mail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Ustaw datę"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopiuj"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontakty"
 
index 7bfdfcf..9575dbb 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Enviar e-mail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Definir data"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copiar"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contatos"
 
index aaa5202..b31e329 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Enviar e-mail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Definir data"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copiar"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contactos"
 
index 1738a7f..344778b 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Trimitere email"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Setați data"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Copiere"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Contacte"
 
index b6a8294..190ac4a 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Отправить E-mail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Выберите дату"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Копировать"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Контакты"
 
index 1cf5533..c85e3ec 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Odoslať e-mail"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Nastavte dátum"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopírovať"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontakty"
 
index e8b5fae..1c9caf9 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Pošlji e-pošto"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Nastavite datum"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopiraj"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Imenik"
 
index 74d87a7..6941d2e 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Pošalji e-poruku"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Podesi datum"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopiraj"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontakti"
 
index ccda853..4f15325 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Skicka e-post"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Ställ in datum"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopiera"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontakter"
 
index 1b70bf2..74c9965 100644 (file)
@@ -232,6 +232,9 @@ msgstr "E-posta gönder"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Tarihi ayarla"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Kopyala"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Rehber"
 
index 0c8d8aa..07944e2 100644 (file)
@@ -232,6 +232,9 @@ msgstr "Надіслати Email"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Оберіть дату"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Копіювати"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Контакти"
 
index 423ccd8..b03ceeb 100644 (file)
@@ -232,6 +232,9 @@ msgstr "E-pochta yub."
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "Sana o‘rnatish"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "Nusxa olish"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "Kontaktlar"
 
index 64008e7..ab7e748 100644 (file)
@@ -232,6 +232,9 @@ msgstr "发送邮件"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "设置日期"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "复制"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "联系人"
 
index 9e40d22..c2eb00c 100644 (file)
@@ -232,6 +232,9 @@ msgstr "發送電子郵件"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "設定日期"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "複製"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "聯絡人"
 
index b715bc0..15081c2 100644 (file)
@@ -232,6 +232,9 @@ msgstr "傳送電子郵件"
 msgid "IDS_TPLATFORM_HEADER_SET_DATE"
 msgstr "設定日期"
 
+msgid "IDS_TPLATFORM_OPT_COPY"
+msgstr "複製"
+
 msgid "IDS_PB_TAB_CONTACTS"
 msgstr "聯絡人"
 
index c237d11..2357ede 100644 (file)
@@ -77,13 +77,21 @@ namespace Contacts
                        virtual Ux::SelectResult getDefaultResult() const override;
 
                        /**
+                        * @see GenItem::onLongpressed()
+                        */
+                       virtual bool onLongpressed() override;
+
+                       /**
                         * @see ContactField::UpdatedCallback
                         */
                        virtual void onFieldUpdated(Model::ContactField &field, contacts_changed_e change);
 
                private:
+                       void onMenuDismissed(Evas_Object *obj, void *eventInfo);
+                       void updateSelecting(bool isSelecting);
                        Model::ContactObject &m_Object;
                        Model::ContactField &m_Field;
+                       bool m_IsSelecting;
                };
        }
 }
index 6ef2167..b705e9d 100644 (file)
@@ -21,6 +21,9 @@
 #include "Contacts/Model/ContactTextField.h"
 #include "Contacts/Common/Strings.h"
 
+#include "Ui/Menu.h"
+#include "Utils/Callback.h"
+
 #include <app_i18n.h>
 
 using namespace Contacts;
@@ -29,9 +32,11 @@ using namespace Contacts::Model;
 using namespace std::placeholders;
 
 #define DATE_BUFFER_SIZE 32
+#define TEXT_BUFFER_SIZE 128
+#define TAG_BACKING "<backing=on><backing_color=#00ddff99>"
 
 FieldItem::FieldItem(ContactObject &object)
-       : m_Object(object), m_Field(*object.getField(0))
+       : m_Object(object), m_Field(*object.getField(0)), m_IsSelecting(false)
 {
 }
 
@@ -56,7 +61,14 @@ char *FieldItem::getText(Evas_Object *parent, const char *part)
        if (strcmp(part, "elm.text") == 0) {
                switch (m_Field.getType()) {
                        case TypeText:
+                       {
+                               if (m_IsSelecting) {
+                                       char buffer[TEXT_BUFFER_SIZE];
+                                       snprintf(buffer, sizeof(buffer), TAG_BACKING "%s", m_Field.cast<ContactTextField>().getValue());
+                                       return strdup(buffer);
+                               }
                                return Utils::safeDup(m_Field.cast<ContactTextField>().getValue());
+                       }
                        case TypeDate:
                        {
                                tm date = m_Field.cast<ContactDateField>().getValue();
@@ -91,9 +103,75 @@ Ux::SelectResult FieldItem::getDefaultResult() const
        return { m_Object.getSubType(), m_Object.getRecordId() };
 }
 
+bool FieldItem::onLongpressed()
+{
+       static bool isFieldCopyable[] = {
+               /* [FieldFavorite]     = */ false,
+               /* [FieldDisplayName]  = */ false,
+               /* [FieldImage]        = */ false,
+               /* [FieldName]         = */ false,
+               /* [FieldPhoneticName] = */ false,
+               /* [FieldCompany]      = */ false,
+               /* [FieldNumber]       = */ true,
+               /* [FieldEmail]        = */ true,
+               /* [FieldAddress]      = */ true,
+               /* [FieldUrl]          = */ true,
+               /* [FieldMessenger]    = */ true,
+               /* [FieldEvent]        = */ false,
+               /* [FieldNote]         = */ true,
+               /* [FieldNickname]     = */ false,
+               /* [FieldRelationship] = */ false,
+               /* [FieldRingtone]     = */ false
+       };
+
+       if (!isFieldCopyable[m_Object.getId()]) {
+               return false;
+       }
+
+       updateSelecting(true);
+
+       auto menu = new Ui::Menu();
+       menu->create(getParent()->getEvasObject());
+       menu->addItem("IDS_TPLATFORM_OPT_COPY", [this] {
+               const char *text = m_Field.cast<ContactTextField>().getValue();
+               if (text) {
+                       elm_cnp_selection_set(getParent()->getEvasObject(), ELM_SEL_TYPE_CLIPBOARD,
+                                       ELM_SEL_FORMAT_TEXT, text, strlen(text));
+               }
+       });
+
+       int x, y, w, h;
+       Evas_Object *rect = elm_object_item_track(getObjectItem());
+       evas_object_geometry_get(rect, &x, &y, &w, &h);
+       elm_object_item_untrack(getObjectItem());
+
+       Evas_Object *obj = menu->getEvasObject();
+       evas_object_smart_callback_add(obj, "dismissed",
+                       makeCallback(&FieldItem::onMenuDismissed), this);
+       elm_ctxpopup_horizontal_set(obj, EINA_TRUE);
+       elm_object_style_set(obj, "default");
+       evas_object_move(obj, x, y + h / 2);
+       evas_object_show(obj);
+
+       return true;
+}
+
 void FieldItem::onFieldUpdated(ContactField &field, contacts_changed_e change)
 {
        if (&field == &m_Field) {
                elm_genlist_item_fields_update(getObjectItem(), "elm.text", ELM_GENLIST_ITEM_FIELD_TEXT);
        }
 }
+
+void FieldItem::onMenuDismissed(Evas_Object *obj, void *eventInfo)
+{
+       updateSelecting(false);
+}
+
+void FieldItem::updateSelecting(bool isSelecting)
+{
+       if (m_IsSelecting != isSelecting) {
+               m_IsSelecting = isSelecting;
+               elm_genlist_item_fields_update(getObjectItem(), "elm.text", ELM_GENLIST_ITEM_FIELD_TEXT);
+       }
+}