src/Builder4/ClutterFiles.bjs
authorAlan Knowles <alan@roojs.com>
Wed, 20 May 2015 08:58:15 +0000 (16:58 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 20 May 2015 08:58:15 +0000 (16:58 +0800)
src/Builder4/ClutterFiles.vala

src/Builder4/ClutterFiles.bjs
src/Builder4/ClutterFiles.vala

index 2619f96..11ee02d 100644 (file)
@@ -69,7 +69,7 @@
          "$ margin_top" : 5,
          "id" : "+image",
          "* args" : "JsRender.JsRender file",
-         "* init" : "{\n    Gdk.Pixbuf pixbuf= null;\n    \n    var fname = file.getIconFileName(false);\n\n    try {\n        if (FileUtils.test(fname, FileTest.EXISTS)) {\n            pixbuf = new Gdk.Pixbuf.from_file(fname);\n        } \n    } catch (Error e) {\n        // noop\n    \n    }\n    if (pixbuf == null) {\n    \n        if (_this.missing_thumb_pixbuf == null) {\n                var     icon_theme = Gtk.IconTheme.get_default ();\n                _this.missing_thumb_pixbuf = icon_theme.load_icon (\"package-x-generic\", 92, 0);\n                _this.missing_thumb_pixbuf.ref();\n            }\n            pixbuf = _this.missing_thumb_pixbuf;\n\n    }\n\n    var img = new Clutter.Image();\n    img.set_data(pixbuf.get_pixels(),   \n                        pixbuf.has_alpha \n                          ? Cogl.PixelFormat.RGBA_8888\n                          : Cogl.PixelFormat.RGB_888,\n                        pixbuf.get_width (),\n            pixbuf.get_height (),\n                        pixbuf.get_rowstride ()\n    );\n    this.el.set_content(img);\n     // should probably do smarter scaling...\n    \n    \n    this.el.set_size(90, 70);\n}\n",
+         "* init" : "{\n    Gdk.Pixbuf pixbuf= null;\n    \n    var fname = file.getIconFileName(false);\n\n    try {\n        if (FileUtils.test(fname, FileTest.EXISTS)) {\n            pixbuf = new Gdk.Pixbuf.from_file(fname);\n        } \n    } catch (Error e) {\n        // noop\n    \n    }\n    if (pixbuf == null) {\n        \n        try {\n            if (_this.missing_thumb_pixbuf == null) {\n                    var icon_theme = Gtk.IconTheme.get_default ();\n                    _this.missing_thumb_pixbuf = icon_theme.load_icon (\"package-x-generic\", 92, 0);\n                    _this.missing_thumb_pixbuf.ref();\n                }\n                pixbuf = _this.missing_thumb_pixbuf;\n\n        } catch (Error e) {\n        // noop?\n        }\n    }\n\n    var img = new Clutter.Image();\n    img.set_data(pixbuf.get_pixels(),   \n                        pixbuf.has_alpha \n                          ? Cogl.PixelFormat.RGBA_8888\n                          : Cogl.PixelFormat.RGB_888,\n                        pixbuf.get_width (),\n            pixbuf.get_height (),\n                        pixbuf.get_rowstride ()\n    );\n    this.el.set_content(img);\n     // should probably do smarter scaling...\n    \n    \n    this.el.set_size(90, 70);\n}\n",
          "$ x_expand" : true,
          "* pack" : "add_child",
          "xtype" : "Actor",
index a43595e..39f4b55 100644 (file)
@@ -310,14 +310,18 @@ public class Xcls_ClutterFiles : Object
                 
                 }
                 if (pixbuf == null) {
-                
-                    if (_this.missing_thumb_pixbuf == null) {
-                            var     icon_theme = Gtk.IconTheme.get_default ();
-                            _this.missing_thumb_pixbuf = icon_theme.load_icon ("package-x-generic", 92, 0);
-                            _this.missing_thumb_pixbuf.ref();
-                        }
-                        pixbuf = _this.missing_thumb_pixbuf;
+                    
+                    try {
+                        if (_this.missing_thumb_pixbuf == null) {
+                                var icon_theme = Gtk.IconTheme.get_default ();
+                                _this.missing_thumb_pixbuf = icon_theme.load_icon ("package-x-generic", 92, 0);
+                                _this.missing_thumb_pixbuf.ref();
+                            }
+                            pixbuf = _this.missing_thumb_pixbuf;
             
+                    } catch (Error e) {
+                    // noop?
+                    }
                 }
             
                 var img = new Clutter.Image();