Builder4/ClutterFiles.bjs
authorAlan Knowles <alan@roojs.com>
Tue, 9 Dec 2014 06:01:19 +0000 (14:01 +0800)
committerAlan Knowles <alan@roojs.com>
Tue, 9 Dec 2014 06:01:19 +0000 (14:01 +0800)
Builder4/ClutterFiles.vala

Builder4/ClutterFiles.bjs
Builder4/ClutterFiles.vala

index 935b823..4831be0 100644 (file)
@@ -67,7 +67,7 @@
                                     "$ margin_top" : 5,
                                     "id" : "+image",
                                     "* args" : "JsRender.JsRender file",
-                                    "* init" : "{\n    Gdk.Pixbuf pixbuf;\n    var fname = file.getIconFileName(false);\n\n    if (FileUtils.test(fname, FileTest.EXISTS)) {\n        pixbuf = new Gdk.Pixbuf.from_file(fname);\n    } else {\n        var     icon_theme = Gtk.IconTheme.get_default ();\n       pixbuf = icon_theme.load_icon (\"package-x-generic\", 92, 0);\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;\n    var fname = file.getIconFileName(false);\n\n    if (FileUtils.test(fname, FileTest.EXISTS)) {\n        pixbuf = new Gdk.Pixbuf.from_file(fname);\n    } else {\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",
                                     "$ x_expand" : true,
                                     "* pack" : "add_child",
                                     "xtype" : "Actor",
index 15db828..7169a24 100644 (file)
@@ -296,8 +296,12 @@ public class Xcls_ClutterFiles : Object
                 if (FileUtils.test(fname, FileTest.EXISTS)) {
                     pixbuf = new Gdk.Pixbuf.from_file(fname);
                 } else {
-                    var     icon_theme = Gtk.IconTheme.get_default ();
-                   pixbuf = icon_theme.load_icon ("package-x-generic", 92, 0);
+                    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;
             
                 }