private bool Step()
    {
        Photo  photo;
        Pixbuf thumbnail;
        int    count;
        bool   ongoing = true;

        if (importer == null)
        {
            return(false);
        }

        try {
            // FIXME this is really just an incredibly ugly way of dealing
            // with the recursive DoImport loops we sometimes get into
            ongoing = importer.Step(out photo, out thumbnail, out count);
        } catch (ImportException e) {
            System.Console.WriteLine(e);
            return(false);
        }

        if (photo == null || thumbnail == null)
        {
            Console.WriteLine("Could not import file");
        }
        else
        {
            //icon_scrolled.Visible = true;
            collection.Add(photo);

            //grid.AddThumbnail (thumbnail);
        }

        if (thumbnail != null)
        {
            thumbnail.Dispose();
        }

        if (count < total)
        {
            UpdateProgressBar(count + 1, total);
        }

        if (ongoing && total > 0)
        {
            return(true);
        }
        else
        {
            System.Console.WriteLine("Stopping");
            if (progress_bar != null)
            {
                progress_bar.Text = Catalog.GetString("Done Loading");
            }

            AllowFinish = true;
            return(false);
        }
    }
        public void FindMissing()
        {
            int i;

            missing.Clear();

            for (i = 0; i < source.Count; i++)
            {
                IBrowsableItem item = source [i];
                string         path = item.DefaultVersionUri.LocalPath;
                if (!File.Exists(path) || (new FileInfo(path).Length == 0))
                {
                    missing.Add(item);
                }
            }
        }