[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