Esempio n. 1
0
        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);
                    }
                }
            }
        }
Esempio n. 2
0
            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()));
            }
Esempio n. 3
0
        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();
        }