diff options
Diffstat (limited to 'src/extension/internal/gdkpixbuf-input.cpp')
| -rw-r--r-- | src/extension/internal/gdkpixbuf-input.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/extension/internal/gdkpixbuf-input.cpp b/src/extension/internal/gdkpixbuf-input.cpp index e0dc90981..26e6531dd 100644 --- a/src/extension/internal/gdkpixbuf-input.cpp +++ b/src/extension/internal/gdkpixbuf-input.cpp @@ -1,6 +1,7 @@ #include <gdk-pixbuf/gdk-pixbuf.h> +#include <gdkmm/pixbuf.h> +#include <gdkmm/pixbufformat.h> -#include <boost/scoped_ptr.hpp> #include <glib/gprintf.h> #include <glibmm/i18n.h> #include "dir-util.h" @@ -63,7 +64,7 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri) bool embed = ( link.compare( "embed" ) == 0 ); SPDocument *doc = NULL; - boost::scoped_ptr<Inkscape::Pixbuf> pb(Inkscape::Pixbuf::create_from_file(uri)); + std::unique_ptr<Inkscape::Pixbuf> pb(Inkscape::Pixbuf::create_from_file(uri)); // TODO: the pixbuf is created again from the base64-encoded attribute in SPImage. // Find a way to create the pixbuf only once. @@ -163,14 +164,9 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri) void GdkpixbufInput::init(void) { - GSList * formatlist, * formatlisthead; - - /* \todo I'm not sure if I need to free this list */ - for (formatlist = formatlisthead = gdk_pixbuf_get_formats(); - formatlist != NULL; - formatlist = g_slist_next(formatlist)) { - - GdkPixbufFormat *pixformat = (GdkPixbufFormat *)formatlist->data; + static std::vector< Gdk::PixbufFormat > formatlist = Gdk::Pixbuf::get_formats(); + for (auto i: formatlist) { + GdkPixbufFormat *pixformat = i.gobj(); gchar *name = gdk_pixbuf_format_get_name(pixformat); gchar *description = gdk_pixbuf_format_get_description(pixformat); @@ -240,8 +236,6 @@ GdkpixbufInput::init(void) g_strfreev(mimetypes); g_strfreev(extensions); } - - g_slist_free(formatlisthead); } } } } /* namespace Inkscape, Extension, Implementation */ |
