예제 #1
0
 protected void Rescan()
 {
     try
     {
         checkedImages = Transfer.GetSearchedFiles();
         TagListComboBox.Items.Clear();
         files = FileProcessor.ScanDirectories(path, CheckBoxSubDirectory.IsChecked.Value);
         List <FileInfo> filesToFind = new List <FileInfo>(checkedImages);
         checkedImages.Clear();
         foreach (var file in filesToFind)
         {
             checkedImages.Add(files.Find(x => x.FullName.Split('%')[0].Contains(file.FullName.Split('.')[0].Split('%')[0])));
         }
         if (checkedImages == null)
         {
             System.Windows.MessageBox.Show("АТАТА!");
         }
         Transfer.PutSearchedFiles(checkedImages);
         tags = FileProcessor.GetTagsFromDirectory(files);
         foreach (var tag in tags)
         {
             TagListComboBox.Items.Add(tag);
         }
         checkedPictures      = checkedImages.Count;
         CheckedCount.Content = checkedPictures;
     }
     catch { }
 }
예제 #2
0
 public PictureExplorer()
 {
     InitializeComponent();
     files = FileProcessor.ScanDirectories(path, IsInnerDirectories.IsChecked.Value);
     foreach (var cur in files)
     {
         sortedFiles.Add(cur);
     }
 }
예제 #3
0
 public PictureExplorer(string dirPath)
 {
     InitializeComponent();
     path  = dirPath;
     files = FileProcessor.ScanDirectories(path, IsInnerDirectories.IsChecked.Value);
     foreach (var cur in files)
     {
         sortedFiles.Add(cur);
     }
     //var tagLibrary = TagLib.ReadFromFile(path);
     //var tags = TagLib.GetAllTags(tagLibrary).OrderBy(x => x);
 }
예제 #4
0
 private void IsInnerDirectories_Checked(object sender, RoutedEventArgs e)
 {
     if (checkMarks.Count == 0)
     {
         grid.Children.Clear();
         files = FileProcessor.ScanDirectories(path, IsInnerDirectories.IsChecked.Value);
         sortedFiles.Clear();
         foreach (var cur in files)
         {
             sortedFiles.Add(cur);
         }
         Scan_Click(this, e);
     }
 }
예제 #5
0
        private void Scan_Click(object sender, RoutedEventArgs e)
        {
            //files = FileProcessor.ScanDirectories(path, IsInnerDirectories.IsChecked.Value);
            //List<string> tagsToSearch = new List<string>();
            files = FileProcessor.ScanDirectories(path, IsInnerDirectories.IsChecked.Value);
            sortedFiles.Clear();
            foreach (var cur in files)
            {
                sortedFiles.Add(cur);
            }
            var tagsToSearch = SearchBox.Text.Split(' ');

            //if(SearchBox.Text=="")
            foreach (var tag in tagsToSearch)
            {
                if (tag.Length > 1)
                {
                    if (tag[0] == '-')
                    {
                        var badFiles = sortedFiles.FindAll(x => x.FullName.Contains(tag.Substring(1)));
                        foreach (var file in badFiles)
                        {
                            sortedFiles.Remove(file);
                        }
                    }
                    else
                    {
                        sortedFiles = sortedFiles.FindAll(x => x.FullName.Contains(tag));
                    }
                }
            }
            if (checkMarks.Count == 0)
            {
                redraw();
            }
        }