Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
                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;
                     */
                }
Exemplo n.º 3
0
		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();
			}
		}
Exemplo n.º 4
0
        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;
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 8
0
        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;
 }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
 private void AddFilter(FileSearchFilter filter)
 {
     search.Filters.Add(filter);
     AddFilterRow(filter);
 }
Exemplo n.º 12
0
            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;
            }
Exemplo n.º 13
0
 public object Generate(List <FileDescriptor> files, DirectorySearchMask directorySearchMask, FileSearchFilter fileSearchFilter, ReportExtendedInfo reportExtendedInfo)
 {
     throw new System.NotImplementedException();
 }