[f21/master] Remove anaconda_make_pixbuf

Vratislav Podzimek vpodzime at redhat.com
Wed Aug 27 06:47:23 UTC 2014


On Tue, 2014-08-26 at 16:55 -0400, David Shea wrote:
> This function is not needed as of gdk-pixbuf-2.31.0. Use
> gdk_pixbuf_new_from_bytes instead.
> 
> There hasn't been a fedora release since the function was added, so
> leaving the widgets version number alone.
> ---
>  pyanaconda/ui/gui/__init__.py |  5 +++--
>  widgets/src/widgets-common.c  | 47 -------------------------------------------
>  widgets/src/widgets-common.h  |  2 --
>  3 files changed, 3 insertions(+), 51 deletions(-)
> 
> diff --git a/pyanaconda/ui/gui/__init__.py b/pyanaconda/ui/gui/__init__.py
> index 117879b..e235b74 100644
> --- a/pyanaconda/ui/gui/__init__.py
> +++ b/pyanaconda/ui/gui/__init__.py
> @@ -23,7 +23,7 @@ import meh.ui.gui
>  
>  from contextlib import contextmanager
>  
> -from gi.repository import Gdk, Gtk, AnacondaWidgets, Keybinder, GdkPixbuf
> +from gi.repository import Gdk, Gtk, AnacondaWidgets, Keybinder, GdkPixbuf, GLib
>  
>  from pyanaconda.i18n import _
>  from pyanaconda.constants import IPMI_ABORTED
> @@ -261,7 +261,8 @@ class MainWindow(Gtk.Window):
>          self.connect("delete-event", self._on_delete_event)
>  
>          # Create a black, 50% opacity pixel that will be scaled to fit the lightbox overlay
> -        self._transparent_base  = AnacondaWidgets.make_pixbuf([0, 0, 0, 127], True, 1, 1, 1)
> +        self._transparent_base = GdkPixbuf.Pixbuf.new_from_bytes(GLib.Bytes.new([0, 0, 0, 127]),
> +                GdkPixbuf.Colorspace.RGB, True, 8, 1, 1, 1)
>  
>          # Contain everything in an overlay so the window can be overlayed with the transparency
>          # for the lightbox effect
> diff --git a/widgets/src/widgets-common.c b/widgets/src/widgets-common.c
> index 52ef240..d965d79 100644
> --- a/widgets/src/widgets-common.c
> +++ b/widgets/src/widgets-common.c
> @@ -48,50 +48,3 @@ const gchar *anaconda_get_widgets_datadir(void) {
>      else
>          return env_value;
>  }
> -
> -static void free_pixbuf(guchar *pixels, gpointer data) {
> -    g_free(pixels);
> -}
> -
> -/**
> - * anaconda_make_pixbuf:
> - * @data: (array): The data that would be passed to gdk_pixbuf_new_from_data() were
> - * that actually possible
> - * @has_alpha: Whether the data has an opacity channel
> - * @width: Width of the image in pixels, must be > 0
> - * @height: Height of the image in pixels, must be > 0
> - * @rowstride: Distance in bytes between row starts
> - *
> - * Create a GdkPixbuf in a way that actually works in gobject-introspection bindings.
> - *
> - * See also: https://bugzilla.gnome.org/show_bug.cgi?id=732297
> - *
> - * colorspace and bits_per_sample are not provided as parameters because it would break
> - * something if they were ever not GDK_COLORSPACE_RGB and 8, respectively.
> - *
> - * Returns: (transfer full): A new GdkPixbuf
> - *
> - * Since: 3.0
> - */
> -GdkPixbuf * anaconda_make_pixbuf(const guint8 *data, gboolean has_alpha,
> -        int width, int height, int rowstride) {
> -    guchar *data_copy;
> -
> -    /* Length of the data is max_y * rowstride + max_x * n_channels */
> -    size_t data_len = (width * rowstride) + (height * (has_alpha ? 4 : 3));
> -
> -    /* Create a copy of the data because whoever wrote gdk-pixbuf doesn't understand
> -     * reference ownership. */
> -    data_copy = g_malloc(data_len);
> -    memcpy(data_copy, data, data_len);
> -    return gdk_pixbuf_new_from_data(data_copy,
> -            GDK_COLORSPACE_RGB,
> -            has_alpha,
> -            8,
> -            width,
> -            height,
> -            rowstride,
> -            free_pixbuf,
> -            NULL
> -            );
> -}
> diff --git a/widgets/src/widgets-common.h b/widgets/src/widgets-common.h
> index d3aa488..5dd7c1b 100644
> --- a/widgets/src/widgets-common.h
> +++ b/widgets/src/widgets-common.h
> @@ -26,8 +26,6 @@
>  G_BEGIN_DECLS
>  
>  const gchar *anaconda_get_widgets_datadir(void);
> -GdkPixbuf * anaconda_make_pixbuf(const guint8 *data, gboolean has_alpha,
> -        int width, int height, int rowstride);
>  
>  G_END_DECLS
>  
Looks good to me, just one minor request -- could you please add a
comment explaining the parameters passed to new_from_bytes? They were
quite cryptic before and now there is an extra magic '8'.

-- 
Vratislav Podzimek

Anaconda Rider | RHCE | Red Hat, Inc. | Brno - Czech Republic




More information about the anaconda-patches mailing list