private void RecountTypes() { resultCountByTypeCache.Clear(); resultTotalCountCache = 0; foreach (SearchResult result in search.Results) { var filterType = (result.Type == SearchResultType.File) ? FileSearchFilter.FileTypeToFilterType(result.FileListing.Type) : FilterType.Folder; if (!resultCountByTypeCache.ContainsKey(filterType)) { resultCountByTypeCache[filterType] = 0; } if (search.FiltersEnabled) { if (search.CheckAllFilters(result)) { resultCountByTypeCache[filterType] += 1; resultTotalCountCache += 1; } } else { resultCountByTypeCache[filterType] += 1; resultTotalCountCache += 1; } } typeTree.QueueDraw(); }
public FilterEntry(FileSearchFilter filter) { this.filter = filter; tooltip = new FakeTooltip(this); this.FocusInEvent += this_FocusChangeEvent; this.FocusOutEvent += this_FocusChangeEvent; this.Changed += this_Changed; /* * ListStore store = new ListStore(typeof(string), typeof(string)); * store.AppendValues("(VGA)", "640x480"); * store.AppendValues("(SVGA)", "800x600"); * store.AppendValues("(720p)", "1280x720"); * store.AppendValues("(1080i)", "1920x1080"); * * CellRendererText textCell = new CellRendererText(); * * EntryCompletion completion = new EntryCompletion(); * completion.MinimumKeyLength = 0; * completion.PopupSingleMatch = true; * completion.PopupCompletion = true; * completion.TextColumn = 1; * completion.PackStart(textCell, true); * completion.AddAttribute(textCell, "text", 0); * completion.Model = store; * * this.Completion = completion; */ }
private void Refilter () { FilterType selectedFilterType = FilterType.All; TreeIter i; if (typeTree.Selection.GetSelected(out i)) { selectedFilterType = (FilterType)typeTree.Model.GetValue(i, 2); } foreach (SearchResult result in search.Results) { if (result.Type == SearchResultType.File) { if (selectedFilterType != FilterType.All) { var filterType = FileSearchFilter.FileTypeToFilterType(result.FileListing.Type); result.Visible = (filterType == selectedFilterType); } else { result.Visible = true; } } else if (result.Type == SearchResultType.Directory) { result.Visible = (selectedFilterType == FilterType.All || selectedFilterType == FilterType.Folder); } if (result.Visible) { if (search.FiltersEnabled) { result.Visible = search.CheckAllFilters(result); } else { result.Visible = true; } } } if (resultsFilter != null) { resultsFilter.Refilter(); } }
private void AddFilterRow(FileSearchFilter filter) { FilterWidgetRow newRow = new FilterWidgetRow(filter); newRow.Changed += filter_Changed; this.PackStart(newRow, false, false, 0); newRow.ShowAll(); // XXX: box.ReorderChild(newRow, }
public GithubSourceCodeProvider(string owner, string name, string rootPath, GitUserData data, FileSearchFilter fileSearchFilter) { _repositoryOwner = owner; _repositoryName = name; _localStoragePath = rootPath; _url = $"https://github.com/{_repositoryOwner}/{_repositoryName}.git"; _data = data; _fileSearchFilter = fileSearchFilter; }
public static void GenerateSimpleReport() { ISourceCodeProvider sourceCodeProvider = new FileSystemSourceCodeProvider(); IReportGenerator reportGenerator = new SimpleTextReportGenerator(); List <FileDescriptor> fileDescriptors = sourceCodeProvider.GetFiles(); var directorySearchMask = new DirectorySearchMask(); var fileSearchFilter = new FileSearchFilter(); var reportExtendedInfo = new ReportExtendedInfo(); object result = reportGenerator.Generate(fileDescriptors, directorySearchMask, fileSearchFilter, reportExtendedInfo); }
private IEnumerable <string> GetFiles(CancellationToken token) { List <string> extensions = new List <string>(); if (searchInfo.IncludeImages) { extensions.AddRange(FileHelper.Pics); } if (searchInfo.IncludeAudios) { extensions.AddRange(FileHelper.Audio); } if (searchInfo.IncludeVideos) { extensions.AddRange(FileHelper.Video); } if (searchInfo.IncludeDocuments) { extensions.AddRange(FileHelper.Docs); } searchInfo.CustomFileTypes = searchInfo.CustomFileTypes ?? Enumerable.Empty <string>(); extensions.AddRange(searchInfo.CustomFileTypes); extensions = extensions.Distinct().ToList(); var files = Enumerable.Empty <string>(); var result = Extensions.GetOptimizedFolders(searchInfo.ScanLocations); foreach (var item in result.UniqueFolders.Where(x => x.Include)) { if (token.IsCancellationRequested) { break; } var filter = new FileSearchFilter { SearchOption = item.IncludeSubfolders.HasValue && item.IncludeSubfolders.Value ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly, ExtensionList = new HashSet <string>(extensions), ExcludedList = new HashSet <string>(), MinSize = searchInfo.MinSize, MaxSize = searchInfo.MaxSize, ModifyAfter = searchInfo.ModifiedAfter, ModifyBefore = searchInfo.ModifiedBefore, IncludeHiddenFolders = searchInfo.IncludeHiddenFolders, IncludeSystemFolders = searchInfo.IncludeSystemFolders }; files = files.Concat(SafeFileEnumerator.EnumerateFiles(item.Name, filter, token)); } return(files); }
private void RemoveFilter(FileSearchFilter filter) { search.Filters.Remove(filter); foreach (Widget child in this) { FilterWidgetRow row = (FilterWidgetRow)child; if (row.Filter == filter) { row.Destroy(); if (this.Children.Length == 0) { this.Hide(); } if (FiltersChanged != null) { FiltersChanged(this, EventArgs.Empty); } return; } } }
public FileSystemSourceCodeProvider(string rootDirectoryPath, FileSearchFilter fileSearchFilter) { _rootDirectoryPath = rootDirectoryPath; _fileSearchFilter = fileSearchFilter; }
public static List <object> GeneratePerFolder(this IReportGenerator reportGenerator, List <FileDescriptor> files, DirectorySearchMask directorySearchMask, FileSearchFilter fileSearchFilter, ReportExtendedInfo reportExtendedInfo) { //TODO: here we need to group by folder ILookup <string, FileDescriptor> fileGroups = null; List <object> result = new List <object>(); foreach (IGrouping <string, FileDescriptor> fileGroup in fileGroups) { object report = reportGenerator.Generate(fileGroup.ToList(), directorySearchMask, fileSearchFilter, reportExtendedInfo); result.Add(report); } return(result); }
private void AddFilter(FileSearchFilter filter) { search.Filters.Add(filter); AddFilterRow(filter); }
public FilterWidgetRow(FileSearchFilter filter) : base(0, 0, 1, 1) { TreeIter iter; CellRendererText textCell; ListStore store; this.filter = filter; matchTypeStore = new ListStore(typeof(string), typeof(FileSearchFilterComparison)); textCell = new CellRendererText(); matchTypeComboBox = new ComboBox(); matchTypeComboBox.Model = matchTypeStore; matchTypeComboBox.PackStart(textCell, true); matchTypeComboBox.AddAttribute(textCell, "text", 0); matchTypeComboBox.RowSeparatorFunc = ComboSeparatorFunc; matchTypeComboBox.Changed += MatchTypeChanged; textCell = new CellRendererText(); store = new ListStore(typeof(string), typeof(FilterEntryMode), typeof(FileSearchFilterField)); filterTextEntry = new FilterEntry(filter); filterTextEntry.Changed += FilterTextChanged; fieldComboBox = new ComboBox(); fieldComboBox.PackStart(textCell, true); fieldComboBox.AddAttribute(textCell, "text", 0); fieldComboBox.SetCellDataFunc(textCell, FieldComboDataFunc); store.AppendValues("File Name", FilterEntryMode.String, FileSearchFilterField.FileName); store.AppendValues("Size", FilterEntryMode.Size, FileSearchFilterField.Size); store.AppendValues("-"); store.AppendValues("(Audio)", null); store.AppendValues("Artist", FilterEntryMode.String, FileSearchFilterField.Artist); store.AppendValues("Album", FilterEntryMode.String, FileSearchFilterField.Album); store.AppendValues("Bitrate", FilterEntryMode.Speed, FileSearchFilterField.Bitrate); store.AppendValues("-"); store.AppendValues("(Video)", null); store.AppendValues("Resolution", FilterEntryMode.Dimentions, FileSearchFilterField.Resolution); store.AppendValues("-"); store.AppendValues("(Images)", null); store.AppendValues("Dimentions", FilterEntryMode.Dimentions, FileSearchFilterField.Dimentions); fieldComboBox.Model = store; fieldComboBox.RowSeparatorFunc = ComboSeparatorFunc; fieldComboBox.Changed += FieldChanged; /* * if (fieldComboBox.Model.GetIterFirst(out iter)) { * fieldComboBox.SetActiveIter(iter); * } */ addButton = new Button(); addButton.Relief = ReliefStyle.None; addButton.Image = new Image(Gui.LoadIcon(16, "list-add")); addButton.Clicked += AddButtonClicked; removeButton = new Button(); removeButton.Relief = ReliefStyle.None; removeButton.Image = new Image(Gui.LoadIcon(16, "list-remove")); removeButton.Clicked += RemoveButtonClicked; box = new HBox(); box.PackStart(fieldComboBox, false, false, 0); box.PackStart(matchTypeComboBox, false, false, 3); box.PackStart(filterTextEntry, true, true, 0); box.PackStart(removeButton, false, false, 0); box.PackStart(addButton, false, false, 0); this.TopPadding = 3; this.BottomPadding = 3; this.Add(box); fieldComboBox.Model.GetIterFirst(out iter); do { FileSearchFilterField field = (FileSearchFilterField)fieldComboBox.Model.GetValue(iter, 2); if (field == filter.Field) { fieldComboBox.SetActiveIter(iter); break; } } while (fieldComboBox.Model.IterNext(ref iter)); matchTypeComboBox.Model.GetIterFirst(out iter); do { FileSearchFilterComparison comp = (FileSearchFilterComparison)matchTypeComboBox.Model.GetValue(iter, 1); if (comp == filter.Comparison) { matchTypeComboBox.SetActiveIter(iter); break; } } while (matchTypeComboBox.Model.IterNext(ref iter)); filterTextEntry.Text = filter.Text; }
public object Generate(List <FileDescriptor> files, DirectorySearchMask directorySearchMask, FileSearchFilter fileSearchFilter, ReportExtendedInfo reportExtendedInfo) { throw new System.NotImplementedException(); }