コード例 #1
0
ファイル: SearchResultsPage.cs プロジェクト: tabrath/meshwork
        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();
        }
コード例 #2
0
ファイル: SearchResultsPage.cs プロジェクト: slicol/meshwork
		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();
			}
		}