feat(contacts): richer edit-dialog avatar picker (preview, chips, image, icons)
Four refinements now that the two-column layout has room: 1. Image mode shows a large circular preview of the chosen picture (or a placeholder circle with an add-photo glyph, or a broken-image glyph if the file went missing), the filename, and centered Choose/Remove buttons — instead of a bare button. 2. The live-preview avatar is larger (r20 → r26) and the address is now middle-truncated (head + tail) so both ends read, like the real list row. 3. Badge mode shows the two actual chips — Z (shielded) and T (transparent) — with labels, making clear the badge is auto-picked from the address type, rather than a line of text. 4. The Badge/Icon/Image segmented control gains glyphs (badge / palette / image) beside its labels via a small two-font inline control (the shared SegmentedControl helper is single-font). Adds contact_avatar_shielded / _transparent keys and rewords the badge hint (the chips now carry the Z/T meaning); +8-language translations, all within the existing CJK subset. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1236,7 +1236,9 @@ void I18n::loadBuiltinEnglish()
|
||||
strings_["contact_avatar_badge"] = "Badge";
|
||||
strings_["contact_avatar_icon"] = "Icon";
|
||||
strings_["contact_avatar_image"] = "Image";
|
||||
strings_["contact_avatar_badge_hint"] = "Uses the address-type badge — Z for shielded, T for transparent.";
|
||||
strings_["contact_avatar_badge_hint"] = "The badge is chosen automatically from the address type.";
|
||||
strings_["contact_avatar_shielded"] = "Shielded";
|
||||
strings_["contact_avatar_transparent"] = "Transparent";
|
||||
strings_["contact_avatar_choose"] = "Choose image\xE2\x80\xA6";
|
||||
strings_["contact_avatar_remove"] = "Remove";
|
||||
strings_["contact_avatar_image_hint"] = "The image is copied into the app so it stays available if the original moves.";
|
||||
|
||||
Reference in New Issue
Block a user