Builder4/ClutterFiles.bjs
authorAlan Knowles <alan@roojs.com>
Tue, 9 Dec 2014 05:58:26 +0000 (13:58 +0800)
committerAlan Knowles <alan@roojs.com>
Tue, 9 Dec 2014 05:58:26 +0000 (13:58 +0800)
Builder4/ClutterFiles.vala

Builder4/ClutterFiles.bjs
Builder4/ClutterFiles.vala

index bcd1aee..935b823 100644 (file)
@@ -67,7 +67,7 @@
                                     "$ margin_top" : 5,
                                     "id" : "+image",
                                     "* args" : "JsRender.JsRender file",
-                                    "* init" : "{\n    var pixbuf = new Gdk.Pixbuf.from_file(file.getIconFileName(true));\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        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",
                                     "$ x_expand" : true,
                                     "* pack" : "add_child",
                                     "xtype" : "Actor",
@@ -79,8 +79,8 @@
                                 },
                                 {
                                     "* ctor" : "new Clutter.Text.full(\"Sans 10px\", file.nickType(),new Clutter.Color.from_string(\"#fff\"))",
-                                    "* args" : "JsRender.JsRender file",
                                     "id" : "+typetitle",
+                                    "* args" : "JsRender.JsRender file",
                                     "$ x_expand" : true,
                                     "* pack" : "add_child",
                                     "xtype" : "Text",
@@ -91,8 +91,8 @@
                                 },
                                 {
                                     "* ctor" : "new Clutter.Text.full(\"Sans 10px\", file.nickName(),new Clutter.Color.from_string(\"#fff\"))",
-                                    "* args" : "JsRender.JsRender file",
                                     "id" : "+title",
+                                    "* args" : "JsRender.JsRender file",
                                     "$ x_expand" : true,
                                     "* pack" : "add_child",
                                     "xtype" : "Text",
index feff12a..15db828 100644 (file)
@@ -290,7 +290,17 @@ public class Xcls_ClutterFiles : Object
             // init method 
 
             {
-                var pixbuf = new Gdk.Pixbuf.from_file(file.getIconFileName(true));
+                Gdk.Pixbuf pixbuf;
+                var fname = file.getIconFileName(false);
+            
+                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);
+            
+                }
+            
                 var img = new Clutter.Image();
                 img.set_data(pixbuf.get_pixels(),   
                                     pixbuf.has_alpha