From 5398907b6f137be5c1a35a622c7d51bc8a3595c0 Mon Sep 17 00:00:00 2001 From: Przemyslaw Brudny Date: Mon, 15 Nov 2021 19:54:55 +0100 Subject: [PATCH] [EGD-7158] Added text paste into Phonebook Added text paste into Phonebook. Added save verification. --- image/assets/lang/Deutsch.json | 5 +- image/assets/lang/English.json | 5 +- image/assets/lang/Espanol.json | 5 +- image/assets/lang/Francais.json | 5 +- image/assets/lang/Polski.json | 5 +- image/assets/lang/Svenska.json | 5 +- .../windows/OptionsMessages.cpp | 2 +- .../windows/NotesOptions.cpp | 8 +- .../ApplicationPhonebook.cpp | 5 +- .../application-phonebook/CMakeLists.txt | 5 +- .../data/PhonebookItemData.hpp | 15 +++ .../data/PhonebookStyle.hpp | 4 + .../ApplicationPhonebook.hpp | 1 + .../models/NewContactModel.cpp | 89 +++++++++++------ .../models/NewContactModel.hpp | 10 +- .../widgets/InputLinesWithLabelIWidget.hpp | 46 --------- ...dget.cpp => InputLinesWithLabelWidget.cpp} | 99 ++++++++++++++----- .../widgets/InputLinesWithLabelWidget.hpp | 48 +++++++++ .../windows/PhonebookInputOptions.cpp | 46 +++++++++ .../windows/PhonebookInputOptions.hpp | 19 ++++ .../windows/PhonebookNewContact.cpp | 21 ++-- module-gui/gui/widgets/ListItem.hpp | 9 +- module-gui/gui/widgets/header/Header.cpp | 2 +- module-gui/gui/widgets/header/Style.hpp | 1 + module-gui/gui/widgets/text/Text.cpp | 13 ++- module-gui/gui/widgets/text/Text.hpp | 2 +- module-gui/gui/widgets/text/TextConstants.hpp | 6 ++ module-utils/utility/Utils.hpp | 5 + 28 files changed, 340 insertions(+), 146 deletions(-) delete mode 100644 module-apps/application-phonebook/widgets/InputLinesWithLabelIWidget.hpp rename module-apps/application-phonebook/widgets/{InputLinesWithLabelIWidget.cpp => InputLinesWithLabelWidget.cpp} (69%) create mode 100644 module-apps/application-phonebook/widgets/InputLinesWithLabelWidget.hpp create mode 100644 module-apps/application-phonebook/windows/PhonebookInputOptions.cpp create mode 100644 module-apps/application-phonebook/windows/PhonebookInputOptions.hpp diff --git a/image/assets/lang/Deutsch.json b/image/assets/lang/Deutsch.json index 87333d33ee1dead7f461c07d7a07c8804831e9f5..74b685be1df5f6a5b9badfdc517768b86bf18a84 100644 --- a/image/assets/lang/Deutsch.json +++ b/image/assets/lang/Deutsch.json @@ -77,6 +77,8 @@ "common_minutes_lower": "minuten", "common_minute_short": "min", "common_paused": "Pausiert", + "common_text_copy": "Text kopieren", + "common_text_paste": "Text einfügen", "locale_12hour_min": "%I:%M %p", "locale_12hour_min_short": "%I:%M", "locale_24hour_min": "%H:%M", @@ -164,8 +166,6 @@ "app_options_contact_edit": "Kontakte ändern", "app_notes_title_main": "Notizen", "app_notes_edit_new_note": "Ändern/Neue Notiz", - "app_notes_copy_text": "Text kopieren", - "app_notes_copy_paste": "Text einfügen", "app_notes_edit": "ÄNDERN", "app_notes_edited": "Geändert", "app_notes_delete_note": "Löschen", @@ -547,6 +547,7 @@ "app_phonebook_new_contact_address": "Adresse", "app_phonebook_new_contact_note": "Notiz", "app_phonebook_new_speed_dial_key": "Kurzwahltaste", + "app_phonebook_new_contact_invalid_number": "Dieser Kontakt kann nicht gespeichert werden.

Die von Ihnen eingegebene Telefonnummer

hat ein ungültiges Format.
", "app_phonebook_new_add_to_fav": "Zu Favoriten hinzufügen", "app_phonebook_new_add_to_ice": "Zu ICE hinzufügen", "app_phonebook_check": "AUSWÄHLEN", diff --git a/image/assets/lang/English.json b/image/assets/lang/English.json index 5532d0e79b43f15adb6e55e7c299a5a57c5de2a6..5fb43c11f5d7e3bc07849a828a6a2c12668b53d1 100644 --- a/image/assets/lang/English.json +++ b/image/assets/lang/English.json @@ -80,6 +80,8 @@ "common_minutes_lower": "minutes", "common_minute_short": "min", "common_paused": "Paused", + "common_text_copy": "Copy text", + "common_text_paste": "Paste text", "locale_12hour_min": "%I:%M %p", "locale_12hour_min_short": "%I:%M", "locale_24hour_min": "%H:%M", @@ -136,8 +138,6 @@ "app_options_contact_edit": "Edit Contact", "app_notes_title_main": "Notes", "app_notes_edit_new_note": "Edit/New Note", - "app_notes_copy_text": "Copy text", - "app_notes_copy_paste": "Paste text", "app_notes_edit": "EDIT", "app_notes_edited": "Edited", "app_notes_delete_note": "Delete", @@ -523,6 +523,7 @@ "app_phonebook_new_contact_address": "Address", "app_phonebook_new_contact_note": "Note", "app_phonebook_new_speed_dial_key": "Speed dial key", + "app_phonebook_new_contact_invalid_number": "Cannot save this contact.

The phone number you entered

is in an invalid format.
", "app_phonebook_new_add_to_fav": "Add to favourites", "app_phonebook_new_add_to_ice": "Emergency Contact (ICE)", "app_phonebook_check": "CHECK", diff --git a/image/assets/lang/Espanol.json b/image/assets/lang/Espanol.json index 763473f6d8ce6f03eeb4948ac9f985f54b861eff..d4c395dd1d7454b0b7d0d48f5a134858795a10cb 100644 --- a/image/assets/lang/Espanol.json +++ b/image/assets/lang/Espanol.json @@ -77,6 +77,8 @@ "common_minutes_lower": "minutos", "common_minute_short": "min", "common_paused": "Pausado", + "common_text_copy": "Copiar texto", + "common_text_paste": "Pegar texto", "locale_12hour_min": "%I:%M %p", "locale_12hour_min_short": "%I:%M", "locale_24hour_min": "%H:%M", @@ -164,8 +166,6 @@ "app_options_contact_edit": "Editar contacto", "app_notes_title_main": "Notas", "app_notes_edit_new_note": "Editar/Nueva nota", - "app_notes_copy_text": "Copiar texto", - "app_notes_copy_paste": "Pegar texto", "app_notes_edit": "EDITAR", "app_notes_edited": "Editado", "app_notes_delete_note": "Eliminar", @@ -547,6 +547,7 @@ "app_phonebook_new_contact_address": "Dirección", "app_phonebook_new_contact_note": "Nota", "app_phonebook_new_speed_dial_key": "Tecla de marcación rápida", + "app_phonebook_new_contact_invalid_number": "No se puede guardar este contacto.

El número de teléfono que ingresó

tiene un formato no válido.
", "app_phonebook_new_add_to_fav": "Añadir a favoritos", "app_phonebook_new_add_to_ice": "Añadir a contactos de emergencia", "app_phonebook_check": "MARCAR", diff --git a/image/assets/lang/Francais.json b/image/assets/lang/Francais.json index 85649daac31a4eb48416ea86b810c259cbd2a61b..243e363cd336ae69faa858ab3e69c59977edbfe0 100644 --- a/image/assets/lang/Francais.json +++ b/image/assets/lang/Francais.json @@ -77,6 +77,8 @@ "common_minutes_lower": "minutes", "common_minute_short": "min", "common_paused": "En pause", + "common_text_copy": "Copier le texte", + "common_text_paste": "Coller le texte", "locale_12hour_min": "%I:%M %p", "locale_12hour_min_short": "%I:%M", "locale_24hour_min": "%H:%M", @@ -133,8 +135,6 @@ "app_options_contact_edit": "Modifier le contact", "app_notes_title_main": "Notes", "app_notes_edit_new_note": "Modifier/ajouter une note", - "app_notes_copy_text": "Copier le texte", - "app_notes_copy_paste": "Coller le texte", "app_notes_edit": "MODIFIER", "app_notes_edited": "Modifiée", "app_notes_delete_note": "Supprimer", @@ -514,6 +514,7 @@ "app_phonebook_new_contact_address": "Adresse", "app_phonebook_new_contact_note": "Note", "app_phonebook_new_speed_dial_key": "Touche de numérotation rapide", + "app_phonebook_new_contact_invalid_number": "Impossible d'enregistrer ce contact.

Le numéro de téléphone que vous avez entré

est dans un format invalide.
", "app_phonebook_new_add_to_fav": "Ajouter aux favoris", "app_phonebook_new_add_to_ice": "Ajouter aux contacts d'urgence", "app_phonebook_check": "COCHER", diff --git a/image/assets/lang/Polski.json b/image/assets/lang/Polski.json index fb3e155459f0cff22f5dea834c1626231432f4ab..d0a4e66c55a6a5ab869dcbdbc961704d911e31db 100644 --- a/image/assets/lang/Polski.json +++ b/image/assets/lang/Polski.json @@ -77,6 +77,8 @@ "common_minutes_lower": "minuty", "common_minute_short": "min", "common_paused": "Pauza", + "common_text_copy": "Kopiuj tekst", + "common_text_paste": "Wklej tekst", "locale_12hour_min": "%I:%M %p", "locale_12hour_min_short": "%I:%M", "locale_24hour_min": "%H:%M", @@ -168,8 +170,6 @@ "app_options_contact_edit": "Edytuj kontakt", "app_notes_title_main": "Notatki", "app_notes_edit_new_note": "Edytuj / Dodaj notatkę", - "app_notes_copy_text": "Kopiuj tekst", - "app_notes_copy_paste": "Wklej tekst", "app_notes_edit": "EDYTUJ", "app_notes_edited": "Edytowano", "app_notes_delete_note": "Usuń", @@ -557,6 +557,7 @@ "app_phonebook_new_contact_address": "Adres", "app_phonebook_new_contact_note": "Notatka", "app_phonebook_new_speed_dial_key": "Klawisz szybkiego wybierania", + "app_phonebook_new_contact_invalid_number": "Nie można zapisać tego kontaktu.

Wprowadzony numer telefonu

ma nieprawidłowy format.
", "app_phonebook_new_add_to_ice": "Dodaj do kontaktów ICE", "app_phonebook_check": "ZAZNACZ", "app_phonebook_uncheck": "ODZNACZ", diff --git a/image/assets/lang/Svenska.json b/image/assets/lang/Svenska.json index 9314de84a68a4f28b349303b8c4532559c378d36..ef1f6e828a1297e4eab2855e96f46d86aaff9069 100644 --- a/image/assets/lang/Svenska.json +++ b/image/assets/lang/Svenska.json @@ -65,6 +65,8 @@ "common_today": "Idag", "common_results_prefix": "Resultat: ", "common_search": "SÖK", + "common_text_copy": "Kopiera text", + "common_text_paste": "Klistra in text", "locale_12hour_min": "%I:%M %p", "locale_12hour_min_short": "%I:%M", "locale_24hour_min": "%H:%M", @@ -118,8 +120,6 @@ "app_options_contact_edit": "Redigera kontakt", "app_notes_title_main": "Anteckningar", "app_notes_edit_new_note": "Redigera/Skapa anteckning", - "app_notes_copy_text": "Kopiera text", - "app_notes_copy_paste": "Klistra in text", "app_notes_edit": "REDIGERA", "app_notes_edited": "Redigerad", "app_notes_delete_note": "Radera", @@ -455,6 +455,7 @@ "app_phonebook_new_contact_address": "Adress", "app_phonebook_new_contact_note": "Anteckning", "app_phonebook_new_speed_dial_key": "Förvalsnummer", + "app_phonebook_new_contact_invalid_number": "Det går inte att spara den här kontakten.

Telefonnumret du angav

är i ett ogiltigt format.
", "app_phonebook_new_add_to_fav": "Lägg till bland favoriter", "app_phonebook_new_add_to_ice": "Lägg till bland ICE (kontakter i fall av olycka)", "app_phonebook_check": "MARKERA", diff --git a/module-apps/application-messages/windows/OptionsMessages.cpp b/module-apps/application-messages/windows/OptionsMessages.cpp index 21aedc2b15497ddf8bafa6c0baecbb30feb2e7b3..67142ab6a616423e909746542245e9e9073ae9f2 100644 --- a/module-apps/application-messages/windows/OptionsMessages.cpp +++ b/module-apps/application-messages/windows/OptionsMessages.cpp @@ -78,7 +78,7 @@ std::list newMessageWindowOptions(app::ApplicationMessages *app, if (Clipboard::getInstance().gotData()) { options.emplace_back(utils::translate("sms_paste"), [=](gui::Item &item) { - text->addText(Clipboard::getInstance().paste()); + text->addText(Clipboard::getInstance().paste(), gui::AdditionType::perBlock); app->returnToPreviousWindow(); return true; }); diff --git a/module-apps/application-notes/windows/NotesOptions.cpp b/module-apps/application-notes/windows/NotesOptions.cpp index a5962338cc9aa7a2b3113c31f9880fa2969dfb64..3828538705d94775e1082cf5a54335a1de7316bb 100644 --- a/module-apps/application-notes/windows/NotesOptions.cpp +++ b/module-apps/application-notes/windows/NotesOptions.cpp @@ -66,7 +66,7 @@ namespace app::notes { std::list options; addOption( - {"app_notes_copy_text"}, + {"common_text_copy"}, [application, textWidget](gui::Item &item) { if (textWidget != nullptr) { Clipboard::getInstance().copy(textWidget->getText()); @@ -91,7 +91,7 @@ namespace app::notes { std::list options; addOption( - {"app_notes_copy_text"}, + {"common_text_copy"}, [application, textWidget](gui::Item &item) { if (textWidget != nullptr) { Clipboard::getInstance().copy(textWidget->getText()); @@ -101,10 +101,10 @@ namespace app::notes }, options); addOption( - {"app_notes_copy_paste"}, + {"common_text_paste"}, [application, textWidget](gui::Item &item) { if (textWidget != nullptr) { - textWidget->addText(Clipboard::getInstance().paste()); + textWidget->addText(Clipboard::getInstance().paste(), gui::AdditionType::perBlock); } application->returnToPreviousWindow(); return true; diff --git a/module-apps/application-phonebook/ApplicationPhonebook.cpp b/module-apps/application-phonebook/ApplicationPhonebook.cpp index afe9948459010727b2b302e916c3d9ce88b942e4..a97868f008769486a9ef65c1248f2c6b7f3a3f5c 100644 --- a/module-apps/application-phonebook/ApplicationPhonebook.cpp +++ b/module-apps/application-phonebook/ApplicationPhonebook.cpp @@ -13,6 +13,7 @@ #include "windows/PhonebookSearch.hpp" #include "windows/PhonebookSearchResults.hpp" #include "windows/PhonebookIceContacts.hpp" +#include "windows/PhonebookInputOptions.hpp" #include #include #include @@ -129,7 +130,9 @@ namespace app windowsFactory.attach(gui::window::name::ice_contacts, [](ApplicationCommon *app, const std::string &name) { return std::make_unique(app); }); - + windowsFactory.attach(gui::window::name::input_options, [](ApplicationCommon *app, const std::string &name) { + return std::make_unique(app, name); + }); windowsFactory.attach(gui::window::name::new_contact, [](ApplicationCommon *app, const std::string &name) { return std::make_unique(app); }); diff --git a/module-apps/application-phonebook/CMakeLists.txt b/module-apps/application-phonebook/CMakeLists.txt index da94b8ae824385e1407e340a66c8410485842519..a863710887653eefb17eb29a104e3fd4df993efe 100644 --- a/module-apps/application-phonebook/CMakeLists.txt +++ b/module-apps/application-phonebook/CMakeLists.txt @@ -21,13 +21,14 @@ target_sources(application-phonebook widgets/ContactFlagsWidget.cpp widgets/InformationWidget.cpp widgets/InputBoxWithLabelAndIconWidget.cpp - widgets/InputLinesWithLabelIWidget.cpp + widgets/InputLinesWithLabelWidget.cpp widgets/OutputLinesTextWithLabelWidget.cpp widgets/PhonebookItem.cpp widgets/PhonebookListView.cpp windows/PhonebookContactDetails.cpp windows/PhonebookContactOptions.cpp windows/PhonebookIceContacts.cpp + windows/PhonebookInputOptions.cpp windows/PhonebookMainWindow.cpp windows/PhonebookNamecardOptions.cpp windows/PhonebookNewContact.cpp @@ -41,7 +42,7 @@ target_sources(application-phonebook widgets/ContactListItem.hpp widgets/InformationWidget.hpp widgets/InputBoxWithLabelAndIconWidget.hpp - widgets/InputLinesWithLabelIWidget.hpp + widgets/InputLinesWithLabelWidget.hpp widgets/OutputLinesTextWithLabelWidget.hpp widgets/PhonebookItem.hpp widgets/PhonebookListView.hpp diff --git a/module-apps/application-phonebook/data/PhonebookItemData.hpp b/module-apps/application-phonebook/data/PhonebookItemData.hpp index f9db08a874891578dbd35d82dd993c359371d12c..fc30fd7e130ff6382503b667c874dad341c10c96 100644 --- a/module-apps/application-phonebook/data/PhonebookItemData.hpp +++ b/module-apps/application-phonebook/data/PhonebookItemData.hpp @@ -60,3 +60,18 @@ class PhonebookSearchRequest : public gui::SwitchData PhonebookSearchRequest() = default; std::shared_ptr result = nullptr; }; + +class PhonebookInputOptionData : public gui::SwitchData +{ + private: + gui::Text *inputText; + + public: + explicit PhonebookInputOptionData(gui::Text *inputText) : inputText(inputText) + {} + + gui::Text *getInputText() + { + return inputText; + } +}; diff --git a/module-apps/application-phonebook/data/PhonebookStyle.hpp b/module-apps/application-phonebook/data/PhonebookStyle.hpp index 80e13a1b92f0326726acff956b1b55dba526f576..a68ead1a8e0932b0b257d3ccc4e1aade403d4989 100644 --- a/module-apps/application-phonebook/data/PhonebookStyle.hpp +++ b/module-apps/application-phonebook/data/PhonebookStyle.hpp @@ -112,6 +112,10 @@ namespace phonebookStyle inline constexpr uint32_t span_size = 8; inline constexpr uint32_t line_spacing = 15; inline constexpr int32_t underline_padding = 4; + + inline constexpr auto minimum_signs_limit = 31U; + inline constexpr auto medium_signs_limit = 40U; + inline constexpr auto max_signs_limit = 200U; } // namespace inputLinesWithLabelWidget namespace outputLinesTextWithLabelWidget diff --git a/module-apps/application-phonebook/include/application-phonebook/ApplicationPhonebook.hpp b/module-apps/application-phonebook/include/application-phonebook/ApplicationPhonebook.hpp index b88cc41d91f109c52f8abd6aa9c3733ea4c05822..b58dbd90fc0ee91eda8621c7eb375e552d7fd1b4 100644 --- a/module-apps/application-phonebook/include/application-phonebook/ApplicationPhonebook.hpp +++ b/module-apps/application-phonebook/include/application-phonebook/ApplicationPhonebook.hpp @@ -12,6 +12,7 @@ namespace gui::window::name inline constexpr auto contact = "Contact"; inline constexpr auto contact_options = "Options"; inline constexpr auto namecard_options = "Namecard Options"; + inline constexpr auto input_options = "Input Options"; inline constexpr auto new_contact = "New"; inline constexpr auto search = "Search"; inline constexpr auto search_results = "SearchResults"; diff --git a/module-apps/application-phonebook/models/NewContactModel.cpp b/module-apps/application-phonebook/models/NewContactModel.cpp index e8d9cc42fae4cf7a130fdb3c856d4e4af760a727..153259764c61671b6f43d66b43b35f96d4310ec9 100644 --- a/module-apps/application-phonebook/models/NewContactModel.cpp +++ b/module-apps/application-phonebook/models/NewContactModel.cpp @@ -3,14 +3,12 @@ #include "NewContactModel.hpp" -#include "AppWindow.hpp" #include "application-phonebook/widgets/ContactListItem.hpp" #include "application-phonebook/widgets/InputBoxWithLabelAndIconWidget.hpp" -#include "application-phonebook/widgets/InputLinesWithLabelIWidget.hpp" +#include "application-phonebook/widgets/InputLinesWithLabelWidget.hpp" +#include "application-phonebook/ApplicationPhonebook.hpp" -#include -#include