[pygobject] pygtkcompat: Add gdk.pixbuf_get_formats compat code



commit fda8a069d503e63c76a6b1ba285a181822549059
Author: Jose Rostagno <joserostagno vijona com ar>
Date:   Sat May 5 08:52:41 2012 +0200

    pygtkcompat: Add gdk.pixbuf_get_formats compat code
    
    https://bugzilla.gnome.org/show_bug.cgi?id=675489
    
    Signed-off-by: Martin Pitt <martinpitt gnome org>

 gi/pygtkcompat.py         |   20 ++++++++++++++++++++
 tests/test_pygtkcompat.py |    8 ++++++++
 2 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/gi/pygtkcompat.py b/gi/pygtkcompat.py
index 1ac09ae..3e07c50 100644
--- a/gi/pygtkcompat.py
+++ b/gi/pygtkcompat.py
@@ -135,6 +135,26 @@ def enable_gtk(version='2.0'):
     Gdk.pixbuf_new_from_file = GdkPixbuf.Pixbuf.new_from_file
     Gdk.PixbufLoader = GdkPixbuf.PixbufLoader.new_with_type
 
+    orig_get_formats = GdkPixbuf.Pixbuf.get_formats
+
+    def get_formats():
+        formats = orig_get_formats()
+        result = []
+
+        def make_dict(format_):
+            result = {}
+            result['description'] = format_.get_description()
+            result['name'] = format_.get_name()
+            result['mime_types'] = format_.get_mime_types()
+            result['extensions'] = format_.get_extensions()
+            return result
+
+        for format_ in formats:
+            result.append(make_dict(format_))
+        return result
+
+    Gdk.pixbuf_get_formats = get_formats
+
     orig_get_frame_extents = Gdk.Window.get_frame_extents
 
     def get_frame_extents(window):
diff --git a/tests/test_pygtkcompat.py b/tests/test_pygtkcompat.py
index 21ad863..76f7609 100644
--- a/tests/test_pygtkcompat.py
+++ b/tests/test_pygtkcompat.py
@@ -117,6 +117,14 @@ class TestGTKCompat(unittest.TestCase):
         loader = gtk.gdk.PixbufLoader('png')
         loader.close()
 
+    def testPixbufFormats(self):
+        formats = gtk.gdk.pixbuf_get_formats()
+        self.assertEqual(type(formats[0]), dict)
+        self.assertTrue('name' in formats[0])
+        self.assertTrue('description' in formats[0])
+        self.assertTrue('mime_types' in formats[0])
+        self.assertEqual(type(formats[0]['extensions']), list)
+
     def testGdkWindow(self):
         w = gtk.Window()
         w.realize()



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]