def METHOD_NAME(self, store, load_fn, target_name, idx, parameters, is_placeholder=False):
    was_loading = self._loading
    sprite, x, y, w, h = load_fn(*parameters,
                                 lambda: GLib.idle_add(
                                     partial(self._reload_icon, parameters, idx, store, load_fn, target_name, was_loading)
                                 ))
    if is_placeholder:
        ctx = cairo.Context(sprite)
        ctx.set_source_rgb(*ORANGE_RGB)
        ctx.rectangle(0, 0, w, h)
        ctx.set_operator(cairo.OPERATOR_IN)
        ctx.fill()
    data = bytes(sprite.get_data())
    # this is painful.
    new_data = bytearray()
    for b, g, r, a in grouper(data, 4):
        new_data += bytes([r, g, b, a])
    self._icon_pixbufs[target_name] = GdkPixbuf.Pixbuf.new_from_data(
        new_data, GdkPixbuf.Colorspace.RGB, True, 8, w, h, sprite.get_stride()
    )
    return self._icon_pixbufs[target_name]