[haiku-bugs] Re: [Haiku] #9374: People GUI should support vCard contacts

  • From: "Barrett" <trac@xxxxxxxxxxxx>
  • Date: Thu, 20 Jun 2013 11:14:08 -0000

#9374: People GUI should support vCard contacts
---------------------------+-----------------------------------------------
   Reporter:  heidi        |      Owner:  stippi
       Type:  enhancement  |     Status:  new
   Priority:  normal       |  Milestone:  R1
  Component:  User         |    Version:  R1/alpha4.1
  Interface                |   Keywords:  People, contacts, GUI, vCard, GCI
 Resolution:               |   Blocking:
 Blocked By:               |   Platform:  All
Has a Patch:  0            |
---------------------------+-----------------------------------------------

Comment (by Barrett):

 Just to let you know i've not abandoned my gsoc project, i've continued to
 develop it during the last 2 years.

 While i think useful for the actual People the possibility to edit fields
 from filetypes, i think it's a completely bad approach for a VCard based
 Person format. VCard is a lot complex, and besides that some fields are
 just "as is", the format already specify a way to define custom fields.
 Basically any field put with the X- prefix is an extension, i don't think
 there's any control on it. So if for example people add an attribute for
 every field we easily end up with a messy attribute list. In my actual
 implementation, low level things are all handed by the translators, so i
 think the best approach is to split the formats, making the actual person
 format behave as stippi defined it, just for compatibility reasons. The
 "new" Person format that i would call "vPerson" should behave differently.
 You have a basic set of fields (such as MAIL or FN), which the user can't
 modify, and some extensions which the user should be able to configure in
 some way. I think the best approach is another tab, named maybe
 "Additional data" or something similar, where the user is able to define
 an extension by just clicking a button "Add a custom field". Those will
 result into a low level X-WHATEVER field, where you named it in high level
 "WHATEVER". Another option is to let the user select from People itself
 which fields will be turned into file attributes.

 This is just an option, from another point of view, People could just
 don't care about extensions, and just let them show in the app, leaving to
 expert users the work to edit the vCard file and add the extensions they
 want. Obviously some common extensions are already supported out-of-the-
 box by my own version of People, X-GENDER is the first extensions that
 comes to mind, for extensions like it, the treatment will be just as the
 other standard fields, i think there are no doubts about it.

 About attributes, i would just stop with the idea of making them the
 container of informations, as said one just should not edit the attribute
 informations, which in my opinion are provided to make easy to search not
 to edit the contacts in Tracker, in any case a translator for the actual
 format is provided, and one could just trade the new complete format with
 the old simple customizable format. Also i'm not sure that every vcard
 field should be turned into an attribute, just because it could easily
 become messy. In any case, to configure attributes from FileTypes is not
 so easy and transparent for the user. So from my vision of all that, the
 vcard translator, will just overwrite attributes without any care of the
 content in it, since it's just a simplified representation of the vCard
 fields.

 Talking about my actual implementation, i just got lost with the idea of
 making the People GUI simple, and that's why i wanted a new mockup, i
 think the tab-columnlistview approach is ok, and it would take a few hours
 for me to implement it.

 About the BContact format, it's just actually a lot similar to vCard,
 since it's a from scratch work, i just feel convenient to adhere to vCard
 where we can. Let me show you an example :

 in vcard you have the N field that contains name and surname separated by
 semicolon (N:John;Doe) and it's represented as a B_CONTACT_NAME (a
 BStringContactField specifically) field containing the same string.

--
Ticket URL: <http://dev.haiku-os.org/ticket/9374#comment:5>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: