Ejemplo n.º 1
0
        /// <summary>
        /// Searches in _SourceFolderPath directory
        /// </summary>
        /// <param name="_SourceFolderPath"></param>
        /// <param name="query"></param>
        private void SearchInFolder(object odesc)
        {
            Descriptor desc = (Descriptor)odesc;
            var query = GetQuery(_QueryBitmap, desc);
            if (!String.IsNullOrEmpty(_SourceFolderPath) && query != null)
            {
                try
                {
                    foreach (var file in (new DirectoryInfo(_SourceFolderPath)).GetFiles())
                    {
                        bool comply = false;
                        Gallery.ImageListViewItem ilvi = new Gallery.ImageListViewItem(file.FullName);
                        //we need to clear the filename form the text property, and set it to picture title
                        ilvi.Text = "Photo title: " + file.Name + Environment.NewLine;
                        ilvi.Tag = new ImageInfo
                        {
                            PhotoID = file.FullName
                        };
                        if (file.IsImage())
                        {

                            foreach (Descriptor descriptor in Enum.GetValues(typeof(Descriptor)))
                            {
                                if (descriptor != Descriptor.NONE && (desc & descriptor) == descriptor)
                                {
                                    double distance = DescriptorTools.CalculateDescriptorDistance(query[descriptor], DescriptorTools.CalculateDescriptor(file, descriptor), descriptor);
                                    //TODO: distance needs to be set per descriptor
                                    if (distance >= 0)
                                    {
                                        comply = true;
                                        //string tmpFileName = TempManager.GetTempFileName();
                                        string tmpFileName = file.FullName;
                                        ((ImageInfo)ilvi.Tag).SetDescriptorDistance(descriptor, distance);
                                        GalleryEntryBuilder(new FileInfo(tmpFileName), ref ilvi, descriptor.ToString() + ": " + distance.ToString("F"));
                                    }
                                }
                            }

                            // after all descriptors touched the file it goes to the gallery if it complies with the query parameters
                            if (comply)
                            {
                                if (ilvGallery.InvokeRequired)
                                {
                                    PopulateGalleryCallback d = new PopulateGalleryCallback(PopulateGallery);
                                    this.Invoke(d, new object[] { ilvi });
                                }
                                else
                                {
                                    ilvGallery.Items.Add(ilvi);
                                }
                            }
                        }
                    }
                }
                catch (UnauthorizedAccessException)
                {
                    // again.. so what.. go go go!
                }
            }
        }
Ejemplo n.º 2
0
 private void PopulateGallery(string path, FlickrNet.Photo photo)
 {
     try
     {
         FileInfo file = new FileInfo(path);
         if (file.IsImage())
         {
             Gallery.ImageListViewItem ilvi = new Gallery.ImageListViewItem();
             ilvi.FileName = file.FullName;
             ilvi.Tag = new ImageInfo
             {
                 PhotoID = photo.PhotoId
             };
             if (ilvGallery.InvokeRequired)
             {
                 PopulateGalleryCallback d = new PopulateGalleryCallback(PopulateGallery);
                 this.Invoke(d, new object[] { ilvi });
             }
             else
             {
                 ilvGallery.Items.Add(ilvi);
             }
         }
     }
     catch (UnauthorizedAccessException)
     {
         // so what ... go go go!!! :P
     }
 }