mirror of
https://github.com/cyanfish/naps2.git
synced 2024-09-19 19:57:15 +03:00
56 lines
2.0 KiB
C#
56 lines
2.0 KiB
C#
|
using Eto.Forms;
|
||
|
|
||
|
namespace NAPS2.EtoForms;
|
||
|
|
||
|
public class FileFilters
|
||
|
{
|
||
|
private readonly ImageContext _imageContext;
|
||
|
|
||
|
public FileFilters(ImageContext imageContext)
|
||
|
{
|
||
|
_imageContext = imageContext;
|
||
|
}
|
||
|
|
||
|
public void Set(FileDialog fileDialog, FileFilterGroup groups, string? selectedExt = null)
|
||
|
{
|
||
|
var filters = fileDialog.Filters;
|
||
|
if (groups.HasFlag(FileFilterGroup.AllFiles))
|
||
|
{
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypeAllFiles, ".*"));
|
||
|
}
|
||
|
if (groups.HasFlag(FileFilterGroup.Pdf))
|
||
|
{
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypePdf, ".pdf"));
|
||
|
}
|
||
|
if (groups.HasFlag(FileFilterGroup.AllImages))
|
||
|
{
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypeImageFiles,
|
||
|
".bmp", ".emf", ".exif", ".gif", "jpg", ".jpeg", ".png", ".tiff", ".tif"));
|
||
|
}
|
||
|
if (groups.HasFlag(FileFilterGroup.Image))
|
||
|
{
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypeBmp, ".bmp"));
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypeEmf, ".emf"));
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypeExif, ".exif"));
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypeGif, ".gif"));
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypeJpeg, ".jpg", ".jpeg"));
|
||
|
if (_imageContext.SupportsFormat(ImageFileFormat.Jpeg2000))
|
||
|
{
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypeJp2, ".jp2", ".jpx"));
|
||
|
}
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypePng, ".png"));
|
||
|
filters.Add(new FileFilter(MiscResources.FileTypeTiff, ".tiff", ".tif"));
|
||
|
}
|
||
|
if (selectedExt != null)
|
||
|
{
|
||
|
selectedExt = selectedExt.Replace(".", "");
|
||
|
foreach (var filter in filters)
|
||
|
{
|
||
|
if (filter.Extensions.Any(x => x.Replace(".", "") == selectedExt))
|
||
|
{
|
||
|
fileDialog.CurrentFilter = filter;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|