[Pidgin] #12639: Room information from roomlist not used for "Add Chat" dialog

Pidgin trac at pidgin.im
Thu Sep 16 02:15:53 EDT 2010


#12639: Room information from roomlist not used for "Add Chat" dialog
--------------------+-------------------------------------------------------
Reporter:  stefanb  |        Type:  enhancement           
  Status:  new      |   Component:  libpurple             
 Version:  2.7.3    |    Keywords:  API room roomlist chat
--------------------+-------------------------------------------------------
 The room information collected by querying the room list isn't used to
 generate the defaults for the "Add Chat" dialog. UI clients can only
 provide the chat name when they call prpl_info->get_chat_info_defaults().

 It seems that this is not a problem for the default protocols, because the
 chat name is also the information you need to send to the server to join
 the channel. But in OCS2007R2 Group Chat the human readable name is just
 descriptive, whereas the URI is the authoritative identifier for the room.
 For the roomlist query we return the URI and name for each room.

 The limitations of the get_chat_info_defaults() API cause the following
 problems for the pidgin-sipe plugin:

  - the protocol plugin must fill a private cache that maps "NAME -> URI"
 while processing the roomlist response

  - get_chat_info_defaults() uses the private cache to reverse map the name
 back to the URI which is stored in the purple chat information. Names
 don't have to be unique, so this scheme can return the wrong URI.

  - There is no way to pre-fill the "Alias" entry field of the "Add
 Chat..." dialog. In case of pidgin-sipe the descriptive chat name would be
 a good candidate for the alias.
    [This might be a misunderstanding on my side. I couldn't find an API
 where the chat alias can be generated from the room information]

 It would be nice to have a new callback as an alternative for
 get_chat_info_defaults(), e.g.
 {{{
     GHashTable *roomlist_room_to_chat_info_defaults(PurpleRoomlistRoom
 *room);
     char *roomlist_room_to_chat_alias(PurpleRoomlistRoom *room);
 }}}
 The first callback would be used to fill the chat defaults. The second
 callback would be used to fill the alias field. They could be combined if
 the hard-coded key "alias" would represent the alias.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/12639>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list