public void Add(SafeUri uri) { if (ImageFile.HasLoader(uri)) { //Console.WriteLine ("using image loader {0}", uri.ToString ()); Add(new FilePhoto(uri)); } else { GLib.FileInfo info = FileFactory.NewForUri(uri).QueryInfo("standard::type,standard::content-type", FileQueryInfoFlags.None, null); if (info.FileType == FileType.Directory) { new DirectoryLoader(this, uri); } else { // FIXME ugh... if (info.ContentType == "text/xml" || info.ContentType == "application/xml" || info.ContentType == "application/rss+xml" || info.ContentType == "text/plain") { new RssLoader(this, uri); } } } }
void InfoLoaded(GLib.Object o, GLib.AsyncResult res) { List <FilePhoto> items = new List <FilePhoto> (); foreach (GLib.FileInfo info in file.EnumerateChildrenFinish(res)) { SafeUri i = new SafeUri(file.GetChild(info.Name).Uri); Hyena.Log.DebugFormat("testing uri = {0}", i); if (ImageFile.HasLoader(i)) { items.Add(new FilePhoto(i)); } } ThreadAssist.ProxyToMain(() => collection.Add(items.ToArray())); }
protected void LoadItems(System.IO.FileInfo [] files) { List <IPhoto> items = new List <IPhoto> (); foreach (var f in files) { if (ImageFile.HasLoader(new SafeUri(f.FullName))) { Hyena.Log.Debug(f.FullName); items.Add(new FilePhoto(new SafeUri(f.FullName))); } } list = items; this.Reload(); }