/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/ViewModels/Settings/FoldersViewModel.cs
298 строк
8 KB
yair100
Feature: Separate mouse and touch settings for single click (#18433)
27 апр 2026, 18:39
Не верифицирован
27 апр 2026, 18:39
b90e7da
Код
Авторство
О чём код?
// Copyright (c) Files Community // Licensed under the MIT License. namespace Files.App.ViewModels.Settings { public sealed partial class FoldersViewModel : ObservableObject { private IUserSettingsService UserSettingsService { get; } = Ioc.Default.GetRequiredService<IUserSettingsService>(); public Dictionary<SizeUnitTypes, string> SizeUnitsOptions { get; private set; } = []; public Dictionary<SingleClickOpenMode, string> SingleClickOpenModeOptions { get; private set; } = []; public FoldersViewModel() { SelectedDeleteConfirmationPolicyIndex = (int)DeleteConfirmationPolicy; // Size unit format SizeUnitsOptions.Add(SizeUnitTypes.BinaryUnits, Strings.Binary.GetLocalizedResource()); SizeUnitsOptions.Add(SizeUnitTypes.DecimalUnits, Strings.Decimal.GetLocalizedResource()); SizeUnitFormat = SizeUnitsOptions[UserSettingsService.FoldersSettingsService.SizeUnitFormat]; SingleClickOpenModeOptions.Add(SingleClickOpenMode.Never, Strings.Never.GetLocalizedResource()); SingleClickOpenModeOptions.Add(SingleClickOpenMode.OnlyForTouch, Strings.OnlyForTouch.GetLocalizedResource()); SingleClickOpenModeOptions.Add(SingleClickOpenMode.OnlyForMouse, Strings.OnlyForMouse.GetLocalizedResource()); SingleClickOpenModeOptions.Add(SingleClickOpenMode.Always, Strings.Always.GetLocalizedResource()); SelectedOpenFilesWithSingleClickOption = SingleClickOpenModeOptions[UserSettingsService.FoldersSettingsService.OpenFilesWithSingleClick]; SelectedOpenFoldersWithSingleClickOption = SingleClickOpenModeOptions[UserSettingsService.FoldersSettingsService.OpenFoldersWithSingleClick]; SelectedOpenFoldersInColumnsViewWithSingleClickOption = SingleClickOpenModeOptions[UserSettingsService.FoldersSettingsService.OpenFoldersInColumnsViewWithSingleClick]; } // Properties private int selectedDeleteConfirmationPolicyIndex; public int SelectedDeleteConfirmationPolicyIndex { get => selectedDeleteConfirmationPolicyIndex; set { if (SetProperty(ref selectedDeleteConfirmationPolicyIndex, value)) { OnPropertyChanged(nameof(SelectedDeleteConfirmationPolicyIndex)); DeleteConfirmationPolicy = (DeleteConfirmationPolicies)value; } } } public bool ShowHiddenItems { get => UserSettingsService.FoldersSettingsService.ShowHiddenItems; set { if (value != UserSettingsService.FoldersSettingsService.ShowHiddenItems) { UserSettingsService.FoldersSettingsService.ShowHiddenItems = value; OnPropertyChanged(); } } } public bool ShowProtectedSystemFiles { get => UserSettingsService.FoldersSettingsService.ShowProtectedSystemFiles; set { if (value != UserSettingsService.FoldersSettingsService.ShowProtectedSystemFiles) { UserSettingsService.FoldersSettingsService.ShowProtectedSystemFiles = value; OnPropertyChanged(); } } } public bool AreAlternateStreamsVisible { get => UserSettingsService.FoldersSettingsService.AreAlternateStreamsVisible; set { if (value != UserSettingsService.FoldersSettingsService.AreAlternateStreamsVisible) { UserSettingsService.FoldersSettingsService.AreAlternateStreamsVisible = value; OnPropertyChanged(); } } } public bool ShowDotFiles { get => UserSettingsService.FoldersSettingsService.ShowDotFiles; set { if (value != UserSettingsService.FoldersSettingsService.ShowDotFiles) { UserSettingsService.FoldersSettingsService.ShowDotFiles = value; OnPropertyChanged(); } } } private string selectedOpenFilesWithSingleClickOption; public string SelectedOpenFilesWithSingleClickOption { get => selectedOpenFilesWithSingleClickOption; set { if (SetProperty(ref selectedOpenFilesWithSingleClickOption, value)) { UserSettingsService.FoldersSettingsService.OpenFilesWithSingleClick = SingleClickOpenModeOptions.First(e => e.Value == value).Key; } } } private string selectedOpenFoldersWithSingleClickOption; public string SelectedOpenFoldersWithSingleClickOption { get => selectedOpenFoldersWithSingleClickOption; set { if (SetProperty(ref selectedOpenFoldersWithSingleClickOption, value)) { UserSettingsService.FoldersSettingsService.OpenFoldersWithSingleClick = SingleClickOpenModeOptions.First(e => e.Value == value).Key; } } } private string selectedOpenFoldersInColumnsViewWithSingleClickOption; public string SelectedOpenFoldersInColumnsViewWithSingleClickOption { get => selectedOpenFoldersInColumnsViewWithSingleClickOption; set { if (SetProperty(ref selectedOpenFoldersInColumnsViewWithSingleClickOption, value)) { UserSettingsService.FoldersSettingsService.OpenFoldersInColumnsViewWithSingleClick = SingleClickOpenModeOptions.First(e => e.Value == value).Key; } } } public bool OpenFoldersNewTab { get => UserSettingsService.FoldersSettingsService.OpenFoldersInNewTab; set { if (value != UserSettingsService.FoldersSettingsService.OpenFoldersInNewTab) { UserSettingsService.FoldersSettingsService.OpenFoldersInNewTab = value; OnPropertyChanged(); } } } public bool CalculateFolderSizes { get => UserSettingsService.FoldersSettingsService.CalculateFolderSizes; set { if (value != UserSettingsService.FoldersSettingsService.CalculateFolderSizes) { UserSettingsService.FoldersSettingsService.CalculateFolderSizes = value; OnPropertyChanged(); } } } public bool ScrollToPreviousFolderWhenNavigatingUp { get => UserSettingsService.FoldersSettingsService.ScrollToPreviousFolderWhenNavigatingUp; set { if (value != UserSettingsService.FoldersSettingsService.ScrollToPreviousFolderWhenNavigatingUp) { UserSettingsService.FoldersSettingsService.ScrollToPreviousFolderWhenNavigatingUp = value; OnPropertyChanged(); } } } public bool ShowFileExtensions { get => UserSettingsService.FoldersSettingsService.ShowFileExtensions; set { if (value != UserSettingsService.FoldersSettingsService.ShowFileExtensions) { UserSettingsService.FoldersSettingsService.ShowFileExtensions = value; OnPropertyChanged(); } } } public bool ShowThumbnails { get => UserSettingsService.FoldersSettingsService.ShowThumbnails; set { if (value != UserSettingsService.FoldersSettingsService.ShowThumbnails) { UserSettingsService.FoldersSettingsService.ShowThumbnails = value; OnPropertyChanged(); } } } public DeleteConfirmationPolicies DeleteConfirmationPolicy { get => UserSettingsService.FoldersSettingsService.DeleteConfirmationPolicy; set { if (value != UserSettingsService.FoldersSettingsService.DeleteConfirmationPolicy) { UserSettingsService.FoldersSettingsService.DeleteConfirmationPolicy = value; OnPropertyChanged(); } } } public bool SelectFilesOnHover { get => UserSettingsService.FoldersSettingsService.SelectFilesOnHover; set { if (value != UserSettingsService.FoldersSettingsService.SelectFilesOnHover) { UserSettingsService.FoldersSettingsService.SelectFilesOnHover = value; OnPropertyChanged(); } } } public bool DoubleClickToGoUp { get => UserSettingsService.FoldersSettingsService.DoubleClickToGoUp; set { if (value != UserSettingsService.FoldersSettingsService.DoubleClickToGoUp) { UserSettingsService.FoldersSettingsService.DoubleClickToGoUp = value; OnPropertyChanged(); } } } public bool ShowFileExtensionWarning { get => UserSettingsService.FoldersSettingsService.ShowFileExtensionWarning; set { if (value != UserSettingsService.FoldersSettingsService.ShowFileExtensionWarning) { UserSettingsService.FoldersSettingsService.ShowFileExtensionWarning = value; OnPropertyChanged(); } } } public bool ShowCheckboxesWhenSelectingItems { get => UserSettingsService.FoldersSettingsService.ShowCheckboxesWhenSelectingItems; set { if (value != UserSettingsService.FoldersSettingsService.ShowCheckboxesWhenSelectingItems) { UserSettingsService.FoldersSettingsService.ShowCheckboxesWhenSelectingItems = value; OnPropertyChanged(); } } } private string sizeUnitFormat; public string SizeUnitFormat { get => sizeUnitFormat; set { if (SetProperty(ref sizeUnitFormat, value)) { UserSettingsService.FoldersSettingsService.SizeUnitFormat = SizeUnitsOptions.First(e => e.Value == value).Key; } } } } }