void gimp_item_parasite_detach (GimpItem *item, const gchar *name) { const GimpParasite *parasite; g_return_if_fail (GIMP_IS_ITEM (item)); g_return_if_fail (name != NULL); parasite = gimp_parasite_list_find (item->parasites, name); if (! parasite) return; if (gimp_parasite_is_undoable (parasite)) { gimp_image_undo_push_item_parasite_remove (item->image, _("Remove Parasite from Item"), item, gimp_parasite_name (parasite)); } else if (gimp_parasite_is_persistent (parasite)) { gimp_image_undo_push_cantundo (item->image, _("Remove Parasite from Item")); } gimp_parasite_list_remove (item->parasites, name); }
const GimpParasite * gimp_item_parasite_find (const GimpItem *item, const gchar *name) { g_return_val_if_fail (GIMP_IS_ITEM (item), NULL); return gimp_parasite_list_find (item->parasites, name); }
const GimpParasite * gimp_parasite_find (Gimp *gimp, const gchar *name) { g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL); g_return_val_if_fail (name != NULL, NULL); return gimp_parasite_list_find (gimp->parasites, name); }
void gimp_parasite_list_remove (GimpParasiteList *list, const gchar *name) { g_return_if_fail (GIMP_IS_PARASITE_LIST (list)); if (list->table) { GimpParasite *parasite; parasite = (GimpParasite *) gimp_parasite_list_find (list, name); if (parasite) { g_hash_table_remove (list->table, name); g_signal_emit (list, parasite_list_signals[REMOVE], 0, parasite); gimp_parasite_free (parasite); } } }