// my vars (def)
public Gee.ArrayList<Xcls_fileitem> fileitems;
+ public Gdk.Pixbuf missing_thumb_pixbuf;
public signal void open (JsRender.JsRender file);
// ctor
this.el = new Clutter.ScrollActor();
// my vars (dec)
+ this.missing_thumb_pixbuf = null;
// set gobject values
this.el.scroll_mode = Clutter.ScrollMode.VERTICALLY;
// 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 {
+ 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;
+
+ }
+
var img = new Clutter.Image();
img.set_data(pixbuf.get_pixels(),
pixbuf.has_alpha
pixbuf.get_rowstride ()
);
this.el.set_content(img);
+ // should probably do smarter scaling...
-
- this.el.set_size(80, 80.0f);
+ this.el.set_size(90, 70);
} }
// user defined functions