Mercurial > pidgin.yaz
diff libpurple/request.c @ 29821:50dbd779f1bb
Deprecate purple_request_field_list_add() in favor of the new
purple_request_field_list_add_icon() which now works whether or not icons
are being provided.
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Sun, 16 Nov 2008 10:10:17 +0000 |
parents | 2d04fb25c6db |
children | cc1e35fa774d |
line wrap: on
line diff
--- a/libpurple/request.c Sun Nov 16 10:06:26 2008 +0000 +++ b/libpurple/request.c Sun Nov 16 10:10:17 2008 +0000 @@ -823,14 +823,7 @@ purple_request_field_list_add(PurpleRequestField *field, const char *item, void *data) { - g_return_if_fail(field != NULL); - g_return_if_fail(item != NULL); - g_return_if_fail(data != NULL); - g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); - - field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); - - g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); + purple_request_field_list_add_icon(field, item, NULL, data); } void @@ -840,12 +833,30 @@ g_return_if_fail(field != NULL); g_return_if_fail(item != NULL); g_return_if_fail(data != NULL); - g_return_if_fail(icon_path != NULL); g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); + if (icon_path) + { + if (field->u.list.icons == NULL) + { + GList *l; + for (l = field->u.list.items ; l != NULL ; l = l->next) + { + /* Order doesn't matter, because we're just + * filing in blank items. So, we use + * g_list_prepend() because it's faster. */ + field->u.list.icons = g_list_prepend(field->u.list.icons, NULL); + } + } + field->u.list.icons = g_list_append(field->u.list.icons, g_strdup(icon_path)); + } + else if (field->u.list.icons) + { + /* Keep this even with the items list. */ + field->u.list.icons = g_list_append(field->u.list.icons, NULL); + } + field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); - field->u.list.icons = g_list_append(field->u.list.icons, g_strdup(icon_path)); - g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); }