From 7cd201d355f9048a783a5a0e6f3b8394a6ce2c30 Mon Sep 17 00:00:00 2001 From: Noraa Junker Date: Fri, 19 Dec 2025 03:30:01 +0100 Subject: [PATCH] Remove ISettingsUtils and ISettingsPath interfaces (#44331) ## Summary of the Pull Request This PR removes the ISettingsUtils and ISettingsPath interfaces to reduce some complexity. They only existed so the classes can be used with moq. But this is also possible by using virtual methods which is cleaner. ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [x] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx --- .../AdvancedPasteSettings.cs | 2 +- .../CmdNotFoundSettings.cs | 2 +- .../ColorPickerSettings.cs | 2 +- .../ColorPickerSettingsVersion1.cs | 2 +- .../EnvironmentVariablesSettings.cs | 2 +- .../Settings.UI.Library/HostsSettings.cs | 2 +- .../Settings.UI.Library/ISettingsPath.cs | 17 ---------- .../Settings.UI.Library/ISettingsUtils.cs | 33 ------------------- .../Settings.UI.Library/MouseJumpSettings.cs | 2 +- .../MouseWithoutBordersSettings.cs | 2 +- .../Settings.UI.Library/PeekSettings.cs | 2 +- .../PowerLauncherSettings.cs | 2 +- .../Settings.UI.Library/PowerOcrSettings.cs | 2 +- .../Settings.UI.Library/SettingPath.cs | 7 +++- .../Settings.UI.Library/SettingsFactory.cs | 6 ++-- .../SettingsRepository`1.cs | 4 +-- .../Settings.UI.Library/SettingsUtils.cs | 16 +++++---- .../Utilities/CommandLineUtils.cs | 4 +-- ...SetAdditionalSettingsCommandLineCommand.cs | 2 +- .../Utilities/SetSettingCommandLineCommand.cs | 2 +- .../Settings.UI.Library/WorkspacesSettings.cs | 2 +- .../BackCompatTestProperties.cs | 4 +-- .../Mocks/ISettingsUtilsMocks.cs | 5 +-- .../ModelsTests/SettingsRepositoryTest.cs | 2 +- .../ViewModelTests/ColorPicker.cs | 2 +- .../ViewModelTests/FancyZones.cs | 6 ++-- .../ViewModelTests/General.cs | 4 +-- .../ViewModelTests/ImageResizer.cs | 6 ++-- .../PowerLauncherViewModelTest.cs | 4 +-- .../ViewModelTests/PowerPreview.cs | 6 ++-- .../ViewModelTests/PowerRename.cs | 6 ++-- .../ViewModelTests/ShortcutGuide.cs | 10 +++--- .../Helpers/HotkeyConflictIgnoreHelper.cs | 2 +- .../Settings.UI/SettingsXAML/App.xaml.cs | 2 +- .../OOBE/Views/OobeShellPage.xaml.cs | 2 +- .../ViewModels/AdvancedPasteViewModel.cs | 4 +-- .../ViewModels/AlwaysOnTopViewModel.cs | 4 +-- .../Settings.UI/ViewModels/CmdPalViewModel.cs | 2 +- .../ViewModels/ColorPickerViewModel.cs | 4 +-- .../ViewModels/CropAndLockViewModel.cs | 4 +-- .../EnvironmentVariablesViewModel.cs | 4 +-- .../ViewModels/FancyZonesViewModel.cs | 4 +-- .../ViewModels/FileLocksmithViewModel.cs | 4 +-- .../Settings.UI/ViewModels/HostsViewModel.cs | 4 +-- .../ViewModels/ImageResizerViewModel.cs | 4 +-- .../ViewModels/KeyboardManagerViewModel.cs | 4 +-- .../ViewModels/MeasureToolViewModel.cs | 4 +-- .../ViewModels/MouseUtilsViewModel.cs | 4 +-- .../MouseWithoutBordersViewModel.cs | 4 +-- .../ViewModels/NewPlusViewModel.cs | 6 ++-- .../Settings.UI/ViewModels/PeekViewModel.cs | 4 +-- .../ViewModels/PowerAccentViewModel.cs | 4 +-- .../ViewModels/PowerOcrViewModel.cs | 4 +-- .../ViewModels/PowerRenameViewModel.cs | 4 +-- .../ViewModels/ShortcutConflictViewModel.cs | 2 +- .../ViewModels/ShortcutGuideViewModel.cs | 4 +-- .../ViewModels/WorkspacesViewModel.cs | 4 +-- .../Settings.UI/ViewModels/ZoomItViewModel.cs | 4 +-- 58 files changed, 112 insertions(+), 154 deletions(-) delete mode 100644 src/settings-ui/Settings.UI.Library/ISettingsPath.cs delete mode 100644 src/settings-ui/Settings.UI.Library/ISettingsUtils.cs diff --git a/src/settings-ui/Settings.UI.Library/AdvancedPasteSettings.cs b/src/settings-ui/Settings.UI.Library/AdvancedPasteSettings.cs index ca9cdacff6..be001fd9d6 100644 --- a/src/settings-ui/Settings.UI.Library/AdvancedPasteSettings.cs +++ b/src/settings-ui/Settings.UI.Library/AdvancedPasteSettings.cs @@ -31,7 +31,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library Name = ModuleName; } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/CmdNotFoundSettings.cs b/src/settings-ui/Settings.UI.Library/CmdNotFoundSettings.cs index 1f48b218c9..e7e1bf8281 100644 --- a/src/settings-ui/Settings.UI.Library/CmdNotFoundSettings.cs +++ b/src/settings-ui/Settings.UI.Library/CmdNotFoundSettings.cs @@ -25,7 +25,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library Name = ModuleName; } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file ArgumentNullException.ThrowIfNull(settingsUtils); diff --git a/src/settings-ui/Settings.UI.Library/ColorPickerSettings.cs b/src/settings-ui/Settings.UI.Library/ColorPickerSettings.cs index b601b75baa..6935e0afbc 100644 --- a/src/settings-ui/Settings.UI.Library/ColorPickerSettings.cs +++ b/src/settings-ui/Settings.UI.Library/ColorPickerSettings.cs @@ -33,7 +33,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library WriteIndented = true, }; - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/ColorPickerSettingsVersion1.cs b/src/settings-ui/Settings.UI.Library/ColorPickerSettingsVersion1.cs index 1ddff1946f..409a25f578 100644 --- a/src/settings-ui/Settings.UI.Library/ColorPickerSettingsVersion1.cs +++ b/src/settings-ui/Settings.UI.Library/ColorPickerSettingsVersion1.cs @@ -28,7 +28,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library Name = ModuleName; } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/EnvironmentVariablesSettings.cs b/src/settings-ui/Settings.UI.Library/EnvironmentVariablesSettings.cs index d54641e977..ccb8f1747a 100644 --- a/src/settings-ui/Settings.UI.Library/EnvironmentVariablesSettings.cs +++ b/src/settings-ui/Settings.UI.Library/EnvironmentVariablesSettings.cs @@ -29,7 +29,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library Name = ModuleName; } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/HostsSettings.cs b/src/settings-ui/Settings.UI.Library/HostsSettings.cs index bb339f178c..8559c94f4f 100644 --- a/src/settings-ui/Settings.UI.Library/HostsSettings.cs +++ b/src/settings-ui/Settings.UI.Library/HostsSettings.cs @@ -29,7 +29,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library Name = ModuleName; } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/ISettingsPath.cs b/src/settings-ui/Settings.UI.Library/ISettingsPath.cs deleted file mode 100644 index 072058e4bc..0000000000 --- a/src/settings-ui/Settings.UI.Library/ISettingsPath.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -namespace Microsoft.PowerToys.Settings.UI.Library -{ - public interface ISettingsPath - { - bool SettingsFolderExists(string powertoy); - - void CreateSettingsFolder(string powertoy); - - void DeleteSettings(string powertoy = ""); - - string GetSettingsPath(string powertoy, string fileName); - } -} diff --git a/src/settings-ui/Settings.UI.Library/ISettingsUtils.cs b/src/settings-ui/Settings.UI.Library/ISettingsUtils.cs deleted file mode 100644 index 3d3ef95f06..0000000000 --- a/src/settings-ui/Settings.UI.Library/ISettingsUtils.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; - -using Microsoft.PowerToys.Settings.UI.Library.Interfaces; - -namespace Microsoft.PowerToys.Settings.UI.Library -{ - public interface ISettingsUtils - { - public const string DefaultFileName = "settings.json"; - - T GetSettings(string powertoy = "", string fileName = DefaultFileName) - where T : ISettingsConfig, new(); - - T GetSettingsOrDefault(string powertoy = "", string fileName = DefaultFileName) - where T : ISettingsConfig, new(); - - void SaveSettings(string jsonSettings, string powertoy = "", string fileName = DefaultFileName); - - bool SettingsExists(string powertoy = "", string fileName = DefaultFileName); - - void DeleteSettings(string powertoy = ""); - - string GetSettingsFilePath(string powertoy = "", string fileName = DefaultFileName); - - T GetSettingsOrDefault(string powertoy = "", string fileName = DefaultFileName, Func settingsUpgrader = null) - where T : ISettingsConfig, new() - where T2 : ISettingsConfig, new(); - } -} diff --git a/src/settings-ui/Settings.UI.Library/MouseJumpSettings.cs b/src/settings-ui/Settings.UI.Library/MouseJumpSettings.cs index a4c5a04555..91944368a1 100644 --- a/src/settings-ui/Settings.UI.Library/MouseJumpSettings.cs +++ b/src/settings-ui/Settings.UI.Library/MouseJumpSettings.cs @@ -33,7 +33,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library Version = "1.1"; } - public void Save(ISettingsUtils settingsUtils) + public void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/MouseWithoutBordersSettings.cs b/src/settings-ui/Settings.UI.Library/MouseWithoutBordersSettings.cs index 3cab182fec..5074bf56f7 100644 --- a/src/settings-ui/Settings.UI.Library/MouseWithoutBordersSettings.cs +++ b/src/settings-ui/Settings.UI.Library/MouseWithoutBordersSettings.cs @@ -125,7 +125,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library #pragma warning restore CS0618 } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/PeekSettings.cs b/src/settings-ui/Settings.UI.Library/PeekSettings.cs index 8bc4f6ee76..a62d6e60e9 100644 --- a/src/settings-ui/Settings.UI.Library/PeekSettings.cs +++ b/src/settings-ui/Settings.UI.Library/PeekSettings.cs @@ -67,7 +67,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library return false; } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/PowerLauncherSettings.cs b/src/settings-ui/Settings.UI.Library/PowerLauncherSettings.cs index 18d2c2da1c..b9a438f472 100644 --- a/src/settings-ui/Settings.UI.Library/PowerLauncherSettings.cs +++ b/src/settings-ui/Settings.UI.Library/PowerLauncherSettings.cs @@ -35,7 +35,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library Name = ModuleName; } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/PowerOcrSettings.cs b/src/settings-ui/Settings.UI.Library/PowerOcrSettings.cs index 4a296832ae..f0300922d0 100644 --- a/src/settings-ui/Settings.UI.Library/PowerOcrSettings.cs +++ b/src/settings-ui/Settings.UI.Library/PowerOcrSettings.cs @@ -31,7 +31,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library Name = ModuleName; } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.Library/SettingPath.cs b/src/settings-ui/Settings.UI.Library/SettingPath.cs index 94c5d83ca1..b97779008c 100644 --- a/src/settings-ui/Settings.UI.Library/SettingPath.cs +++ b/src/settings-ui/Settings.UI.Library/SettingPath.cs @@ -9,7 +9,7 @@ using Microsoft.PowerToys.Settings.UI.Library.Utilities; namespace Microsoft.PowerToys.Settings.UI.Library { - public class SettingPath : ISettingsPath + public class SettingPath { private const string DefaultFileName = "settings.json"; @@ -23,6 +23,11 @@ namespace Microsoft.PowerToys.Settings.UI.Library _path = path ?? throw new ArgumentNullException(nameof(path)); } + public SettingPath() + : this(new FileSystem().Directory, new FileSystem().Path) + { + } + public bool SettingsFolderExists(string powertoy) { return _directory.Exists(System.IO.Path.Combine(Helper.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}")); diff --git a/src/settings-ui/Settings.UI.Library/SettingsFactory.cs b/src/settings-ui/Settings.UI.Library/SettingsFactory.cs index 2bb9e79121..807a25f93c 100644 --- a/src/settings-ui/Settings.UI.Library/SettingsFactory.cs +++ b/src/settings-ui/Settings.UI.Library/SettingsFactory.cs @@ -17,10 +17,10 @@ namespace Microsoft.PowerToys.Settings.UI.Services /// public class SettingsFactory { - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private readonly Dictionary _settingsTypes; - public SettingsFactory(ISettingsUtils settingsUtils) + public SettingsFactory(SettingsUtils settingsUtils) { _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); _settingsTypes = DiscoverSettingsTypes(); @@ -100,7 +100,7 @@ namespace Microsoft.PowerToys.Settings.UI.Services try { // Create a generic method call to _settingsUtils.GetSettingsOrDefault(moduleKey) - var getSettingsMethod = typeof(ISettingsUtils).GetMethod("GetSettingsOrDefault", new[] { typeof(string), typeof(string) }); + var getSettingsMethod = typeof(SettingsUtils).GetMethod("GetSettingsOrDefault", new[] { typeof(string), typeof(string) }); var genericMethod = getSettingsMethod?.MakeGenericMethod(settingsType); // Call GetSettingsOrDefault(moduleKey) to get fresh settings from file diff --git a/src/settings-ui/Settings.UI.Library/SettingsRepository`1.cs b/src/settings-ui/Settings.UI.Library/SettingsRepository`1.cs index 136b92b63a..f579933828 100644 --- a/src/settings-ui/Settings.UI.Library/SettingsRepository`1.cs +++ b/src/settings-ui/Settings.UI.Library/SettingsRepository`1.cs @@ -16,7 +16,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library { private static readonly Lock _SettingsRepoLock = new Lock(); - private static ISettingsUtils _settingsUtils; + private static SettingsUtils _settingsUtils; private static SettingsRepository settingsRepository; @@ -25,7 +25,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library // Suppressing the warning as this is a singleton class and this method is // necessarily static #pragma warning disable CA1000 // Do not declare static members on generic types - public static SettingsRepository GetInstance(ISettingsUtils settingsUtils) + public static SettingsRepository GetInstance(SettingsUtils settingsUtils) #pragma warning restore CA1000 // Do not declare static members on generic types { // To ensure that only one instance of Settings Repository is created in a multi-threaded environment. diff --git a/src/settings-ui/Settings.UI.Library/SettingsUtils.cs b/src/settings-ui/Settings.UI.Library/SettingsUtils.cs index eb4169f422..7266bd28cf 100644 --- a/src/settings-ui/Settings.UI.Library/SettingsUtils.cs +++ b/src/settings-ui/Settings.UI.Library/SettingsUtils.cs @@ -7,6 +7,7 @@ using System; using System.IO; using System.IO.Abstractions; +using System.Runtime.CompilerServices; using System.Text.Json; using ManagedCommon; @@ -14,12 +15,13 @@ using Microsoft.PowerToys.Settings.UI.Library.Interfaces; namespace Microsoft.PowerToys.Settings.UI.Library { - public class SettingsUtils : ISettingsUtils + // Some functions are marked as virtual to allow mocking in unit tests. + public class SettingsUtils { public const string DefaultFileName = "settings.json"; private const string DefaultModuleName = ""; private readonly IFile _file; - private readonly ISettingsPath _settingsPath; + private readonly SettingPath _settingsPath; private readonly JsonSerializerOptions _serializerOptions; /// @@ -39,7 +41,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library { } - public SettingsUtils(IFile file, ISettingsPath settingPath, JsonSerializerOptions? serializerOptions = null) + public SettingsUtils(IFile file, SettingPath settingPath, JsonSerializerOptions? serializerOptions = null) { _file = file ?? throw new ArgumentNullException(nameof(file)); _settingsPath = settingPath; @@ -62,7 +64,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library _settingsPath.DeleteSettings(powertoy); } - public T GetSettings(string powertoy = DefaultModuleName, string fileName = DefaultFileName) + public virtual T GetSettings(string powertoy = DefaultModuleName, string fileName = DefaultFileName) where T : ISettingsConfig, new() { if (!SettingsExists(powertoy, fileName)) @@ -87,7 +89,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library /// This function creates a file in the powertoy folder if it does not exist and returns an object with default properties. /// /// Deserialized json settings object. - public T GetSettingsOrDefault(string powertoy = DefaultModuleName, string fileName = DefaultFileName) + public virtual T GetSettingsOrDefault(string powertoy = DefaultModuleName, string fileName = DefaultFileName) where T : ISettingsConfig, new() { try @@ -118,7 +120,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library /// This function creates a file in the powertoy folder if it does not exist and returns an object with default properties. /// /// Deserialized json settings object. - public T GetSettingsOrDefault(string powertoy = DefaultModuleName, string fileName = DefaultFileName, Func? settingsUpgrader = null) + public virtual T GetSettingsOrDefault(string powertoy = DefaultModuleName, string fileName = DefaultFileName, Func? settingsUpgrader = null) where T : ISettingsConfig, new() where T2 : ISettingsConfig, new() { @@ -203,7 +205,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library } // Save settings to a json file. - public void SaveSettings(string jsonSettings, string powertoy = DefaultModuleName, string fileName = DefaultFileName) + public virtual void SaveSettings(string jsonSettings, string powertoy = DefaultModuleName, string fileName = DefaultFileName) { try { diff --git a/src/settings-ui/Settings.UI.Library/Utilities/CommandLineUtils.cs b/src/settings-ui/Settings.UI.Library/Utilities/CommandLineUtils.cs index a7702e17a2..3b10d0d63f 100644 --- a/src/settings-ui/Settings.UI.Library/Utilities/CommandLineUtils.cs +++ b/src/settings-ui/Settings.UI.Library/Utilities/CommandLineUtils.cs @@ -18,13 +18,13 @@ public class CommandLineUtils return settingsLibraryAssembly.GetType(typeof(CommandLineUtils).Namespace + "." + settingsClassName); } - public static ISettingsConfig GetSettingsConfigFor(string moduleName, ISettingsUtils settingsUtils, Assembly settingsLibraryAssembly) + public static ISettingsConfig GetSettingsConfigFor(string moduleName, SettingsUtils settingsUtils, Assembly settingsLibraryAssembly) { return GetSettingsConfigFor(GetSettingsConfigType(moduleName, settingsLibraryAssembly), settingsUtils); } /// Executes SettingsRepository.GetInstance(settingsUtils).SettingsConfig - public static ISettingsConfig GetSettingsConfigFor(Type moduleSettingsType, ISettingsUtils settingsUtils) + public static ISettingsConfig GetSettingsConfigFor(Type moduleSettingsType, SettingsUtils settingsUtils) { var genericSettingsRepositoryType = typeof(SettingsRepository<>); var moduleSettingsRepositoryType = genericSettingsRepositoryType.MakeGenericType(moduleSettingsType); diff --git a/src/settings-ui/Settings.UI.Library/Utilities/SetAdditionalSettingsCommandLineCommand.cs b/src/settings-ui/Settings.UI.Library/Utilities/SetAdditionalSettingsCommandLineCommand.cs index 29f47a4347..b6ba04dec8 100644 --- a/src/settings-ui/Settings.UI.Library/Utilities/SetAdditionalSettingsCommandLineCommand.cs +++ b/src/settings-ui/Settings.UI.Library/Utilities/SetAdditionalSettingsCommandLineCommand.cs @@ -244,7 +244,7 @@ public sealed class SetAdditionalSettingsCommandLineCommand } } - public static void Execute(string moduleName, JsonDocument settings, ISettingsUtils settingsUtils) + public static void Execute(string moduleName, JsonDocument settings, SettingsUtils settingsUtils) { Assembly settingsLibraryAssembly = CommandLineUtils.GetSettingsAssembly(); diff --git a/src/settings-ui/Settings.UI.Library/Utilities/SetSettingCommandLineCommand.cs b/src/settings-ui/Settings.UI.Library/Utilities/SetSettingCommandLineCommand.cs index ab5a88c5d8..3cd70856a8 100644 --- a/src/settings-ui/Settings.UI.Library/Utilities/SetSettingCommandLineCommand.cs +++ b/src/settings-ui/Settings.UI.Library/Utilities/SetSettingCommandLineCommand.cs @@ -25,7 +25,7 @@ public sealed class SetSettingCommandLineCommand return (parts[0], parts[1]); } - public static void Execute(string settingName, string settingValue, ISettingsUtils settingsUtils) + public static void Execute(string settingName, string settingValue, SettingsUtils settingsUtils) { Assembly settingsLibraryAssembly = CommandLineUtils.GetSettingsAssembly(); diff --git a/src/settings-ui/Settings.UI.Library/WorkspacesSettings.cs b/src/settings-ui/Settings.UI.Library/WorkspacesSettings.cs index fafb034935..18a364e2b3 100644 --- a/src/settings-ui/Settings.UI.Library/WorkspacesSettings.cs +++ b/src/settings-ui/Settings.UI.Library/WorkspacesSettings.cs @@ -56,7 +56,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library return hotkeyAccessors.ToArray(); } - public virtual void Save(ISettingsUtils settingsUtils) + public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; diff --git a/src/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/BackCompatTestProperties.cs b/src/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/BackCompatTestProperties.cs index b2048fa573..0eed821aff 100644 --- a/src/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/BackCompatTestProperties.cs +++ b/src/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/BackCompatTestProperties.cs @@ -27,10 +27,10 @@ namespace Microsoft.PowerToys.Settings.UI.UnitTests.BackwardsCompatibility internal sealed class MockSettingsRepository : ISettingsRepository where T : ISettingsConfig, new() { - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private T _settingsConfig; - public MockSettingsRepository(ISettingsUtils settingsUtils) + public MockSettingsRepository(SettingsUtils settingsUtils) { _settingsUtils = settingsUtils; } diff --git a/src/settings-ui/Settings.UI.UnitTests/Mocks/ISettingsUtilsMocks.cs b/src/settings-ui/Settings.UI.UnitTests/Mocks/ISettingsUtilsMocks.cs index d39aa03353..3f19e0b8d4 100644 --- a/src/settings-ui/Settings.UI.UnitTests/Mocks/ISettingsUtilsMocks.cs +++ b/src/settings-ui/Settings.UI.UnitTests/Mocks/ISettingsUtilsMocks.cs @@ -2,6 +2,7 @@ // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System.IO.Abstractions; using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Interfaces; using Moq; @@ -11,10 +12,10 @@ namespace Microsoft.PowerToys.Settings.UI.UnitTests.Mocks internal static class ISettingsUtilsMocks { // Stubs out empty values for imageresizersettings and general settings as needed by the imageresizer view model - internal static Mock GetStubSettingsUtils() + internal static Mock GetStubSettingsUtils() where T : ISettingsConfig, new() { - var settingsUtils = new Mock(); + var settingsUtils = new Mock(new FileSystem(), null); settingsUtils .Setup(x => x.GetSettingsOrDefault(It.IsAny(), It.IsAny())) .Returns(new T()); diff --git a/src/settings-ui/Settings.UI.UnitTests/ModelsTests/SettingsRepositoryTest.cs b/src/settings-ui/Settings.UI.UnitTests/ModelsTests/SettingsRepositoryTest.cs index 87d8c2d9d1..8db0cc09f9 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ModelsTests/SettingsRepositoryTest.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ModelsTests/SettingsRepositoryTest.cs @@ -14,7 +14,7 @@ namespace CommonLibTest [TestClass] public class SettingsRepositoryTest { - private static Task> GetSettingsRepository(ISettingsUtils settingsUtils) + private static Task> GetSettingsRepository(SettingsUtils settingsUtils) { return Task.Run(() => { diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ColorPicker.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ColorPicker.cs index 19e2ca3b67..ec90204eb5 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ColorPicker.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ColorPicker.cs @@ -27,7 +27,7 @@ namespace ViewModelTests { // Arrange var mockIOProvider = BackCompatTestProperties.GetModuleIOProvider(version, ColorPickerSettings.ModuleName, fileName); - var settingPathMock = new Mock(); + var settingPathMock = new Mock(); var mockSettingsUtils = new SettingsUtils(mockIOProvider.Object, settingPathMock.Object); ColorPickerSettings originalSettings = mockSettingsUtils.GetSettingsOrDefault(ColorPickerSettings.ModuleName); diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/FancyZones.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/FancyZones.cs index bf8f9396c4..e557f08bdf 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/FancyZones.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/FancyZones.cs @@ -32,7 +32,7 @@ namespace ViewModelTests [DataRow("v0.22.0", "settings.json")] public void OriginalFilesModificationTest(string version, string fileName) { - var settingPathMock = new Mock(); + var settingPathMock = new Mock(); var fileMock = BackCompatTestProperties.GetModuleIOProvider(version, FancyZonesSettings.ModuleName, fileName); var mockSettingsUtils = new SettingsUtils(fileMock.Object, settingPathMock.Object); @@ -89,9 +89,9 @@ namespace ViewModelTests return 0; } - private Mock mockGeneralSettingsUtils; + private Mock mockGeneralSettingsUtils; - private Mock mockFancyZonesSettingsUtils; + private Mock mockFancyZonesSettingsUtils; private Func sendMockIPCConfigMSG = msg => { return 0; }; diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/General.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/General.cs index 8b47e8147a..06b7044970 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/General.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/General.cs @@ -20,7 +20,7 @@ namespace ViewModelTests { public const string GeneralSettingsFileName = "Test\\GeneralSettings"; - private Mock mockGeneralSettingsUtils; + private Mock mockGeneralSettingsUtils; [TestInitialize] public void SetUpStubSettingUtils() @@ -36,7 +36,7 @@ namespace ViewModelTests [DataRow("v0.22.0")] public void OriginalFilesModificationTest(string version) { - var settingPathMock = new Mock(); + var settingPathMock = new Mock(); var fileMock = BackCompatTestProperties.GetGeneralSettingsIOProvider(version); var mockGeneralSettingsUtils = new SettingsUtils(fileMock.Object, settingPathMock.Object); diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ImageResizer.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ImageResizer.cs index c5175bc180..15eac53645 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ImageResizer.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ImageResizer.cs @@ -19,9 +19,9 @@ namespace ViewModelTests [TestClass] public class ImageResizer { - private Mock _mockGeneralSettingsUtils; + private Mock _mockGeneralSettingsUtils; - private Mock _mockImgResizerSettingsUtils; + private Mock _mockImgResizerSettingsUtils; [TestInitialize] public void SetUpStubSettingUtils() @@ -41,7 +41,7 @@ namespace ViewModelTests [DataRow("v0.22.0", "settings.json")] public void OriginalFilesModificationTest(string version, string fileName) { - var settingPathMock = new Mock(); + var settingPathMock = new Mock(); var fileMock = BackCompatTestProperties.GetModuleIOProvider(version, ImageResizerSettings.ModuleName, fileName); var mockSettingsUtils = new SettingsUtils(fileMock.Object, settingPathMock.Object); diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerLauncherViewModelTest.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerLauncherViewModelTest.cs index 59b61559f4..a21fd51bc6 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerLauncherViewModelTest.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerLauncherViewModelTest.cs @@ -46,7 +46,7 @@ namespace ViewModelTests mockSettings = new PowerLauncherSettings(); sendCallbackMock = new SendCallbackMock(); - var settingPathMock = new Mock(); + var settingPathMock = new Mock(); var mockGeneralIOProvider = BackCompatTestProperties.GetGeneralSettingsIOProvider("v0.22.0"); var mockGeneralSettingsUtils = new SettingsUtils(mockGeneralIOProvider.Object, settingPathMock.Object); mockGeneralSettingsRepository = new BackCompatTestProperties.MockSettingsRepository(mockGeneralSettingsUtils); @@ -81,7 +81,7 @@ namespace ViewModelTests [DataRow("v0.22.0", "settings.json")] public void OriginalFilesModificationTest(string version, string fileName) { - var settingPathMock = new Mock(); + var settingPathMock = new Mock(); var mockIOProvider = BackCompatTestProperties.GetModuleIOProvider(version, PowerLauncherSettings.ModuleName, fileName); var mockSettingsUtils = new SettingsUtils(mockIOProvider.Object, settingPathMock.Object); diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerPreview.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerPreview.cs index 636d96aec6..c0a3ad8514 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerPreview.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerPreview.cs @@ -17,9 +17,9 @@ namespace ViewModelTests [TestClass] public class PowerPreview { - private Mock mockPowerPreviewSettingsUtils; + private Mock mockPowerPreviewSettingsUtils; - private Mock mockGeneralSettingsUtils; + private Mock mockGeneralSettingsUtils; [TestInitialize] public void SetUpStubSettingUtils() @@ -39,7 +39,7 @@ namespace ViewModelTests [DataRow("v0.22.0", "settings.json")] public void OriginalFilesModificationTest(string version, string fileName) { - var settingPathMock = new Mock(); + var settingPathMock = new Mock(); var fileMock = BackCompatTestProperties.GetModuleIOProvider(version, PowerPreviewSettings.ModuleName, fileName); var mockSettingsUtils = new SettingsUtils(fileMock.Object, settingPathMock.Object); diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerRename.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerRename.cs index 278975183b..77fd9328d6 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerRename.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/PowerRename.cs @@ -19,9 +19,9 @@ namespace ViewModelTests { public const string GeneralSettingsFileName = "Test\\PowerRename"; - private Mock mockGeneralSettingsUtils; + private Mock mockGeneralSettingsUtils; - private Mock mockPowerRenamePropertiesUtils; + private Mock mockPowerRenamePropertiesUtils; [TestInitialize] public void SetUpStubSettingUtils() @@ -40,7 +40,7 @@ namespace ViewModelTests [DataRow("v0.22.0", "power-rename-settings.json")] public void OriginalFilesModificationTest(string version, string fileName) { - var settingPathMock = new Mock(); + var settingPathMock = new Mock(); var mockIOProvider = BackCompatTestProperties.GetModuleIOProvider(version, PowerRenameSettings.ModuleName, fileName); var mockSettingsUtils = new SettingsUtils(mockIOProvider.Object, settingPathMock.Object); diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ShortcutGuide.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ShortcutGuide.cs index 897fc2bec6..6ebab902e7 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ShortcutGuide.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ShortcutGuide.cs @@ -31,7 +31,7 @@ namespace ViewModelTests [DataRow("v0.22.0", "settings.json")] public void OriginalFilesModificationTest(string version, string fileName) { - var settingPathMock = new Mock(); + var settingPathMock = new Mock(); var mockIOProvider = BackCompatTestProperties.GetModuleIOProvider(version, ShortcutGuideSettings.ModuleName, fileName); var mockSettingsUtils = new SettingsUtils(mockIOProvider.Object, settingPathMock.Object); ShortcutGuideSettings originalSettings = mockSettingsUtils.GetSettingsOrDefault(ShortcutGuideSettings.ModuleName); @@ -56,9 +56,9 @@ namespace ViewModelTests BackCompatTestProperties.VerifyGeneralSettingsIOProviderWasRead(mockGeneralIOProvider, expectedCallCount); } - private Mock mockGeneralSettingsUtils; + private Mock mockGeneralSettingsUtils; - private Mock mockShortcutGuideSettingsUtils; + private Mock mockShortcutGuideSettingsUtils; [TestInitialize] public void SetUpStubSettingUtils() @@ -92,7 +92,7 @@ namespace ViewModelTests public void ThemeIndexShouldSetThemeToDarkWhenSuccessful() { // Arrange - var settingsUtilsMock = new Mock(); + var settingsUtilsMock = new Mock(new FileSystem(), null); ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(settingsUtilsMock.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockShortcutGuideSettingsUtils.Object), msg => { return 0; }, ShortCutGuideTestFolderName); // Initialize shortcut guide settings theme to 'system' to be in sync with shortcut_guide.h. @@ -110,7 +110,7 @@ namespace ViewModelTests public void OverlayOpacityShouldSeOverlayOpacityToOneHundredWhenSuccessful() { // Arrange - var settingsUtilsMock = new Mock(); + var settingsUtilsMock = new Mock(new FileSystem(), null); ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(settingsUtilsMock.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockShortcutGuideSettingsUtils.Object), msg => { return 0; }, ShortCutGuideTestFolderName); Assert.AreEqual(90, viewModel.OverlayOpacity); diff --git a/src/settings-ui/Settings.UI/Helpers/HotkeyConflictIgnoreHelper.cs b/src/settings-ui/Settings.UI/Helpers/HotkeyConflictIgnoreHelper.cs index 1397fca0b7..59018bf74b 100644 --- a/src/settings-ui/Settings.UI/Helpers/HotkeyConflictIgnoreHelper.cs +++ b/src/settings-ui/Settings.UI/Helpers/HotkeyConflictIgnoreHelper.cs @@ -18,7 +18,7 @@ namespace Microsoft.PowerToys.Settings.UI.Helpers public static class HotkeyConflictIgnoreHelper { private static readonly ISettingsRepository _generalSettingsRepository; - private static readonly ISettingsUtils _settingsUtils; + private static readonly SettingsUtils _settingsUtils; static HotkeyConflictIgnoreHelper() { diff --git a/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs index 3189f15b31..774245eb34 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs @@ -357,7 +357,7 @@ namespace Microsoft.PowerToys.Settings.UI return 0; } - private static ISettingsUtils settingsUtils = SettingsUtils.Default; + private static SettingsUtils settingsUtils = SettingsUtils.Default; private static ThemeService themeService = new ThemeService(SettingsRepository.GetInstance(settingsUtils)); public static ThemeService ThemeService => themeService; diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShellPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShellPage.xaml.cs index 7f8531286c..f3e7676a62 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShellPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShellPage.xaml.cs @@ -51,7 +51,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views public ObservableCollection Modules { get; } - private static ISettingsUtils settingsUtils = SettingsUtils.Default; + private static SettingsUtils settingsUtils = SettingsUtils.Default; /* NOTE: Experimentation for OOBE is currently turned off on server side. Keeping this code in a comment to allow future experiments. private bool ExperimentationToggleSwitchEnabled { get; set; } = true; diff --git a/src/settings-ui/Settings.UI/ViewModels/AdvancedPasteViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/AdvancedPasteViewModel.cs index ac051d7cd7..c98242d36b 100644 --- a/src/settings-ui/Settings.UI/ViewModels/AdvancedPasteViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/AdvancedPasteViewModel.cs @@ -38,7 +38,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private GeneralSettings GeneralSettingsConfig { get; set; } - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private readonly AdvancedPasteSettings _advancedPasteSettings; private readonly AdvancedPasteAdditionalActions _additionalActions; @@ -66,7 +66,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels }; public AdvancedPasteViewModel( - ISettingsUtils settingsUtils, + SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository advancedPasteSettingsRepository, Func ipcMSGCallBackFunc) diff --git a/src/settings-ui/Settings.UI/ViewModels/AlwaysOnTopViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/AlwaysOnTopViewModel.cs index d7b03efad4..0a4860b016 100644 --- a/src/settings-ui/Settings.UI/ViewModels/AlwaysOnTopViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/AlwaysOnTopViewModel.cs @@ -22,7 +22,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { protected override string ModuleName => AlwaysOnTopSettings.ModuleName; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -30,7 +30,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private Func SendConfigMSG { get; } - public AlwaysOnTopViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc) + public AlwaysOnTopViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc) { ArgumentNullException.ThrowIfNull(settingsUtils); diff --git a/src/settings-ui/Settings.UI/ViewModels/CmdPalViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/CmdPalViewModel.cs index 6d7b2a0bae..a09cbadc7d 100644 --- a/src/settings-ui/Settings.UI/ViewModels/CmdPalViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/CmdPalViewModel.cs @@ -38,7 +38,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private Func SendConfigMSG { get; } - public CmdPalViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, DispatcherQueue uiDispatcherQueue) + public CmdPalViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, DispatcherQueue uiDispatcherQueue) { ArgumentNullException.ThrowIfNull(settingsUtils); diff --git a/src/settings-ui/Settings.UI/ViewModels/ColorPickerViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/ColorPickerViewModel.cs index 5ea84d2caf..d827a07c08 100644 --- a/src/settings-ui/Settings.UI/ViewModels/ColorPickerViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/ColorPickerViewModel.cs @@ -31,7 +31,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private GeneralSettings GeneralSettingsConfig { get; set; } - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private readonly System.Threading.Lock _delayedActionLock = new System.Threading.Lock(); private readonly ColorPickerSettings _colorPickerSettings; @@ -47,7 +47,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private Dictionary _colorFormatsPreview; public ColorPickerViewModel( - ISettingsUtils settingsUtils, + SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository colorPickerSettingsRepository, Func ipcMSGCallBackFunc) diff --git a/src/settings-ui/Settings.UI/ViewModels/CropAndLockViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/CropAndLockViewModel.cs index e5e8a6383a..f7548bb573 100644 --- a/src/settings-ui/Settings.UI/ViewModels/CropAndLockViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/CropAndLockViewModel.cs @@ -21,7 +21,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { protected override string ModuleName => CropAndLockSettings.ModuleName; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -29,7 +29,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private Func SendConfigMSG { get; } - public CropAndLockViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc) + public CropAndLockViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc) { ArgumentNullException.ThrowIfNull(settingsUtils); diff --git a/src/settings-ui/Settings.UI/ViewModels/EnvironmentVariablesViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/EnvironmentVariablesViewModel.cs index e256278d00..0cb2feb503 100644 --- a/src/settings-ui/Settings.UI/ViewModels/EnvironmentVariablesViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/EnvironmentVariablesViewModel.cs @@ -23,7 +23,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private bool _enabledStateIsGPOConfigured; private bool _isEnabled; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -79,7 +79,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels } } - public EnvironmentVariablesViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc, bool isElevated) + public EnvironmentVariablesViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc, bool isElevated) { SettingsUtils = settingsUtils; GeneralSettingsConfig = settingsRepository.SettingsConfig; diff --git a/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs index 7ce6ec74c6..3fa21824e6 100644 --- a/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs @@ -19,7 +19,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { protected override string ModuleName => FancyZonesSettings.ModuleName; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -46,7 +46,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels Positional = 2, } - public FancyZonesViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc, string configFileSubfolder = "") + public FancyZonesViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc, string configFileSubfolder = "") { ArgumentNullException.ThrowIfNull(settingsUtils); diff --git a/src/settings-ui/Settings.UI/ViewModels/FileLocksmithViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/FileLocksmithViewModel.cs index 226d0c8b08..f3ecf45c92 100644 --- a/src/settings-ui/Settings.UI/ViewModels/FileLocksmithViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/FileLocksmithViewModel.cs @@ -18,7 +18,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { private GeneralSettings GeneralSettingsConfig { get; set; } - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private FileLocksmithSettings Settings { get; set; } @@ -26,7 +26,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private string _settingsConfigFileFolder = string.Empty; - public FileLocksmithViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, string configFileSubfolder = "") + public FileLocksmithViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, string configFileSubfolder = "") { _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); diff --git a/src/settings-ui/Settings.UI/ViewModels/HostsViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/HostsViewModel.cs index 04eea7c1e4..67c04ab948 100644 --- a/src/settings-ui/Settings.UI/ViewModels/HostsViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/HostsViewModel.cs @@ -23,7 +23,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private bool _enabledStateIsGPOConfigured; private bool _isEnabled; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -214,7 +214,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels public int MinimumBackupsCount => DeleteBackupsMode == 1 ? 1 : 0; - public HostsViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc, bool isElevated) + public HostsViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc, bool isElevated) { SettingsUtils = settingsUtils; GeneralSettingsConfig = settingsRepository.SettingsConfig; diff --git a/src/settings-ui/Settings.UI/ViewModels/ImageResizerViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/ImageResizerViewModel.cs index de70cd3311..ffeb7e226e 100644 --- a/src/settings-ui/Settings.UI/ViewModels/ImageResizerViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/ImageResizerViewModel.cs @@ -45,7 +45,7 @@ public partial class ImageResizerViewModel : Observable private GeneralSettings GeneralSettingsConfig { get; set; } - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private ImageResizerSettings Settings { get; set; } @@ -53,7 +53,7 @@ public partial class ImageResizerViewModel : Observable private Func SendConfigMSG { get; } - public ImageResizerViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, Func resourceLoader) + public ImageResizerViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, Func resourceLoader) { _isInitializing = true; diff --git a/src/settings-ui/Settings.UI/ViewModels/KeyboardManagerViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/KeyboardManagerViewModel.cs index a48742672c..d7bf9862bc 100644 --- a/src/settings-ui/Settings.UI/ViewModels/KeyboardManagerViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/KeyboardManagerViewModel.cs @@ -27,7 +27,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { private GeneralSettings GeneralSettingsConfig { get; set; } - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private const string PowerToyName = KeyboardManagerSettings.ModuleName; private const string JsonFileType = ".json"; @@ -60,7 +60,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private Func, int> FilterRemapKeysList { get; } - public KeyboardManagerViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, Func, int> filterRemapKeysList) + public KeyboardManagerViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, Func, int> filterRemapKeysList) { ArgumentNullException.ThrowIfNull(settingsRepository); diff --git a/src/settings-ui/Settings.UI/ViewModels/MeasureToolViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/MeasureToolViewModel.cs index 023cc06032..855cf6e17a 100644 --- a/src/settings-ui/Settings.UI/ViewModels/MeasureToolViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/MeasureToolViewModel.cs @@ -20,7 +20,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { protected override string ModuleName => MeasureToolSettings.ModuleName; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -30,7 +30,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private MeasureToolSettings Settings { get; set; } - public MeasureToolViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository measureToolSettingsRepository, Func ipcMSGCallBackFunc) + public MeasureToolViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository measureToolSettingsRepository, Func ipcMSGCallBackFunc) { SettingsUtils = settingsUtils; diff --git a/src/settings-ui/Settings.UI/ViewModels/MouseUtilsViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/MouseUtilsViewModel.cs index 27695d1037..0c3eb06649 100644 --- a/src/settings-ui/Settings.UI/ViewModels/MouseUtilsViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/MouseUtilsViewModel.cs @@ -19,7 +19,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { protected override string ModuleName => "MouseUtils"; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -31,7 +31,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private CursorWrapSettings CursorWrapSettingsConfig { get; set; } - public MouseUtilsViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository findMyMouseSettingsRepository, ISettingsRepository mouseHighlighterSettingsRepository, ISettingsRepository mouseJumpSettingsRepository, ISettingsRepository mousePointerCrosshairsSettingsRepository, ISettingsRepository cursorWrapSettingsRepository, Func ipcMSGCallBackFunc) + public MouseUtilsViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository findMyMouseSettingsRepository, ISettingsRepository mouseHighlighterSettingsRepository, ISettingsRepository mouseJumpSettingsRepository, ISettingsRepository mousePointerCrosshairsSettingsRepository, ISettingsRepository cursorWrapSettingsRepository, Func ipcMSGCallBackFunc) { SettingsUtils = settingsUtils; diff --git a/src/settings-ui/Settings.UI/ViewModels/MouseWithoutBordersViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/MouseWithoutBordersViewModel.cs index 6e0bcaa444..447c62a6dd 100644 --- a/src/settings-ui/Settings.UI/ViewModels/MouseWithoutBordersViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/MouseWithoutBordersViewModel.cs @@ -187,7 +187,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels } } - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -425,7 +425,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private DispatcherQueue _uiDispatcherQueue; - public MouseWithoutBordersViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, DispatcherQueue uiDispatcherQueue) + public MouseWithoutBordersViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, DispatcherQueue uiDispatcherQueue) { SettingsUtils = settingsUtils; diff --git a/src/settings-ui/Settings.UI/ViewModels/NewPlusViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/NewPlusViewModel.cs index 0bd44b4fbf..ffb10883bd 100644 --- a/src/settings-ui/Settings.UI/ViewModels/NewPlusViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/NewPlusViewModel.cs @@ -26,13 +26,13 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { private GeneralSettings GeneralSettingsConfig { get; set; } - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private NewPlusSettings Settings { get; set; } private const string ModuleName = NewPlusSettings.ModuleName; - public NewPlusViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc) + public NewPlusViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc) { _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); @@ -228,7 +228,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private Func SendConfigMSG { get; } - public static NewPlusSettings LoadSettings(ISettingsUtils settingsUtils) + public static NewPlusSettings LoadSettings(SettingsUtils settingsUtils) { NewPlusSettings settings = null; diff --git a/src/settings-ui/Settings.UI/ViewModels/PeekViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/PeekViewModel.cs index 85ffbda2d9..5eebe1b8de 100644 --- a/src/settings-ui/Settings.UI/ViewModels/PeekViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/PeekViewModel.cs @@ -35,7 +35,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private readonly DispatcherQueue _dispatcherQueue; - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private readonly PeekPreviewSettings _peekPreviewSettings; private PeekSettings _peekSettings; @@ -47,7 +47,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private IFileSystemWatcher _watcher; public PeekViewModel( - ISettingsUtils settingsUtils, + SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, DispatcherQueue dispatcherQueue) diff --git a/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs index f058275f96..342d90ff52 100644 --- a/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs @@ -21,7 +21,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private readonly PowerAccentSettings _powerAccentSettings; - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private const string SpecialGroup = "QuickAccent_Group_Special"; private const string LanguageGroup = "QuickAccent_Group_Language"; @@ -89,7 +89,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private Func SendConfigMSG { get; } - public PowerAccentViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc) + public PowerAccentViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc) { // To obtain the general settings configurations of PowerToys Settings. ArgumentNullException.ThrowIfNull(settingsRepository); diff --git a/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs index cb67dfc237..f9dc35247c 100644 --- a/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs @@ -32,7 +32,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private GeneralSettings GeneralSettingsConfig { get; set; } - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private readonly System.Threading.Lock _delayedActionLock = new System.Threading.Lock(); private readonly PowerOcrSettings _powerOcrSettings; @@ -72,7 +72,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private Func SendConfigMSG { get; } public PowerOcrViewModel( - ISettingsUtils settingsUtils, + SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository powerOcrsettingsRepository, Func ipcMSGCallBackFunc) diff --git a/src/settings-ui/Settings.UI/ViewModels/PowerRenameViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/PowerRenameViewModel.cs index e1dd68ed5f..b1d8e87197 100644 --- a/src/settings-ui/Settings.UI/ViewModels/PowerRenameViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/PowerRenameViewModel.cs @@ -18,7 +18,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { private GeneralSettings GeneralSettingsConfig { get; set; } - private readonly ISettingsUtils _settingsUtils; + private readonly SettingsUtils _settingsUtils; private const string ModuleName = PowerRenameSettings.ModuleName; @@ -28,7 +28,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private Func SendConfigMSG { get; } - public PowerRenameViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, string configFileSubfolder = "") + public PowerRenameViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, string configFileSubfolder = "") { // Update Settings file folder: _settingsConfigFileFolder = configFileSubfolder; diff --git a/src/settings-ui/Settings.UI/ViewModels/ShortcutConflictViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/ShortcutConflictViewModel.cs index cfd3683080..6c6d624f97 100644 --- a/src/settings-ui/Settings.UI/ViewModels/ShortcutConflictViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/ShortcutConflictViewModel.cs @@ -36,7 +36,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ResourceLoader resourceLoader; public ShortcutConflictViewModel( - ISettingsUtils settingsUtils, + SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc) { diff --git a/src/settings-ui/Settings.UI/ViewModels/ShortcutGuideViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/ShortcutGuideViewModel.cs index 1f25f02dfb..8c91cb4779 100644 --- a/src/settings-ui/Settings.UI/ViewModels/ShortcutGuideViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/ShortcutGuideViewModel.cs @@ -20,7 +20,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { protected override string ModuleName => ShortcutGuideSettings.ModuleName; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -31,7 +31,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private string _settingsConfigFileFolder = string.Empty; private string _disabledApps; - public ShortcutGuideViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc, string configFileSubfolder = "") + public ShortcutGuideViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc, string configFileSubfolder = "") { SettingsUtils = settingsUtils; diff --git a/src/settings-ui/Settings.UI/ViewModels/WorkspacesViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/WorkspacesViewModel.cs index 842c3cf368..64346513f0 100644 --- a/src/settings-ui/Settings.UI/ViewModels/WorkspacesViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/WorkspacesViewModel.cs @@ -21,7 +21,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { protected override string ModuleName => WorkspacesSettings.ModuleName; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -31,7 +31,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels public ButtonClickCommand LaunchEditorEventHandler { get; set; } - public WorkspacesViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc) + public WorkspacesViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, ISettingsRepository moduleSettingsRepository, Func ipcMSGCallBackFunc) { ArgumentNullException.ThrowIfNull(settingsUtils); diff --git a/src/settings-ui/Settings.UI/ViewModels/ZoomItViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/ZoomItViewModel.cs index e1704e16fb..7e09f90147 100644 --- a/src/settings-ui/Settings.UI/ViewModels/ZoomItViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/ZoomItViewModel.cs @@ -27,7 +27,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private const string FormatGif = "GIF"; private const string FormatMp4 = "MP4"; - private ISettingsUtils SettingsUtils { get; set; } + private SettingsUtils SettingsUtils { get; set; } private GeneralSettings GeneralSettingsConfig { get; set; } @@ -72,7 +72,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels IncludeFields = true, }; - public ZoomItViewModel(ISettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, Func pickFileDialog, Func pickFontDialog) + public ZoomItViewModel(SettingsUtils settingsUtils, ISettingsRepository settingsRepository, Func ipcMSGCallBackFunc, Func pickFileDialog, Func pickFontDialog) { ArgumentNullException.ThrowIfNull(settingsUtils);