From 9439b6df41a94c36b7a1152404afaa6cbb7deed0 Mon Sep 17 00:00:00 2001 From: Noraa Junker Date: Mon, 8 Dec 2025 04:55:51 +0100 Subject: [PATCH] [Settings] Create a global static instance of SettingsUtils (#44064) ## Summary of the Pull Request SettingsUtils is initialized multiple times over the whole solution. This creates one singeltone instance (with the default settings), so it only has to be initialized once (and improve performance a bit with that) ## 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 - [ ] **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 ## Detailed Description of the Pull Request / Additional comments ## Validation Steps Performed --- .../core/settings/settings-implementation.md | 4 +- .../UITestAutomation/SettingsConfigHelper.cs | 2 +- .../SettingsResourceModuleTest`1.cs | 2 +- .../FunctionData/SettingsFunctionData`1.cs | 2 +- .../Hosts/Hosts/Settings/UserSettings.cs | 2 +- .../MeasureTool/MeasureToolUI/Settings.cs | 2 +- .../MouseJumpUI/Helpers/SettingsHelper.cs | 2 +- .../MouseWithoutBorders/App/Class/Setting.cs | 2 +- .../PowerOCR/Settings/UserSettings.cs | 2 +- .../WorkspacesEditor/Utils/Settings.cs | 2 +- .../ViewModels/MainViewModel.cs | 2 +- src/modules/awake/Awake/Core/Manager.cs | 2 +- src/modules/awake/Awake/Program.cs | 2 +- .../ColorPickerUI/Settings/UserSettings.cs | 2 +- .../Components/UtilityProvider.cs | 4 +- .../launcher/PowerLauncher/SettingsReader.cs | 2 +- .../Models/PreviewSettings.cs | 2 +- .../peek/Peek.UI/Services/UserSettings.cs | 2 +- .../Services/SettingsService.cs | 2 +- .../Tools/CharactersUsageInfo.cs | 2 +- .../MonacoPreviewHandler/Settings.cs | 2 +- .../StlThumbnailProvider.cs | 2 +- .../previewpane/SvgPreviewHandler/Settings.cs | 2 +- .../SettingsBackupAndRestoreUtils.cs | 2 +- .../Settings.UI.Library/SettingsUtils.cs | 13 +++-- .../Utilities/GetSettingCommandLineCommand.cs | 2 +- .../ViewModelTests/ColorPicker.cs | 2 +- .../ViewModelTests/FancyZones.cs | 51 ++++++++++--------- .../ViewModelTests/ShortcutGuide.cs | 3 +- .../Helpers/HotkeyConflictIgnoreHelper.cs | 2 +- .../Settings.UI/SettingsXAML/App.xaml.cs | 6 +-- .../Dashboard/ShortcutConflictWindow.xaml.cs | 2 +- .../SettingsXAML/Flyout/AppsListPage.xaml.cs | 2 +- .../SettingsXAML/Flyout/LaunchPage.xaml.cs | 6 +-- .../SettingsXAML/MainWindow.xaml.cs | 2 +- .../OOBE/Views/OobeAdvancedPaste.xaml.cs | 8 +-- .../OOBE/Views/OobeAlwaysOnTop.xaml.cs | 2 +- .../OOBE/Views/OobeColorPicker.xaml.cs | 2 +- .../OOBE/Views/OobeCropAndLock.xaml.cs | 4 +- .../Views/OobeEnvironmentVariables.xaml.cs | 2 +- .../OOBE/Views/OobeFancyZones.xaml.cs | 2 +- .../SettingsXAML/OOBE/Views/OobeHosts.xaml.cs | 2 +- .../OOBE/Views/OobeMeasureTool.xaml.cs | 2 +- .../OOBE/Views/OobeOverviewAlternate.xaml.cs | 8 +-- .../SettingsXAML/OOBE/Views/OobePeek.xaml.cs | 2 +- .../OOBE/Views/OobePowerOCR.xaml.cs | 2 +- .../SettingsXAML/OOBE/Views/OobeRun.xaml.cs | 2 +- .../OOBE/Views/OobeShellPage.xaml.cs | 2 +- .../OOBE/Views/OobeShortcutGuide.xaml.cs | 2 +- .../OOBE/Views/OobeWorkspaces.xaml.cs | 2 +- .../Views/AdvancedPastePage.xaml.cs | 2 +- .../Views/AlwaysOnTopPage.xaml.cs | 2 +- .../SettingsXAML/Views/AwakePage.xaml.cs | 2 +- .../SettingsXAML/Views/CmdPalPage.xaml.cs | 2 +- .../Views/ColorPickerPage.xaml.cs | 2 +- .../Views/CropAndLockPage.xaml.cs | 2 +- .../SettingsXAML/Views/DashboardPage.xaml.cs | 2 +- .../Views/EnvironmentVariablesPage.xaml.cs | 2 +- .../SettingsXAML/Views/FancyZonesPage.xaml.cs | 2 +- .../Views/FileLocksmithPage.xaml.cs | 2 +- .../SettingsXAML/Views/GeneralPage.xaml.cs | 2 +- .../SettingsXAML/Views/HostsPage.xaml.cs | 2 +- .../Views/ImageResizerPage.xaml.cs | 2 +- .../Views/KeyboardManagerPage.xaml.cs | 2 +- .../Views/LightSwitchPage.xaml.cs | 2 +- .../Views/MeasureToolPage.xaml.cs | 2 +- .../SettingsXAML/Views/MouseUtilsPage.xaml.cs | 4 +- .../Views/MouseWithoutBordersPage.xaml.cs | 2 +- .../SettingsXAML/Views/NewPlusPage.xaml.cs | 2 +- .../SettingsXAML/Views/PeekPage.xaml.cs | 2 +- .../Views/PowerAccentPage.xaml.cs | 2 +- .../Views/PowerLauncherPage.xaml.cs | 2 +- .../SettingsXAML/Views/PowerOcrPage.xaml.cs | 2 +- .../Views/PowerPreviewPage.xaml.cs | 2 +- .../Views/PowerRenamePage.xaml.cs | 2 +- .../Views/RegistryPreviewPage.xaml.cs | 2 +- .../SettingsXAML/Views/ShellPage.xaml.cs | 2 +- .../Views/ShortcutGuidePage.xaml.cs | 2 +- .../SettingsXAML/Views/WorkspacesPage.xaml.cs | 2 +- .../SettingsXAML/Views/ZoomItPage.xaml.cs | 2 +- .../ViewModels/DashboardViewModel.cs | 40 +++++++-------- .../ViewModels/Flyout/LauncherViewModel.cs | 14 ++--- .../ViewModels/GeneralViewModel.cs | 2 +- .../ViewModels/KeyboardManagerViewModel.cs | 2 +- 84 files changed, 158 insertions(+), 149 deletions(-) diff --git a/doc/devdocs/core/settings/settings-implementation.md b/doc/devdocs/core/settings/settings-implementation.md index defe59a3fa..65d0d27c73 100644 --- a/doc/devdocs/core/settings/settings-implementation.md +++ b/doc/devdocs/core/settings/settings-implementation.md @@ -38,7 +38,7 @@ For C# modules, the settings are accessed through the `SettingsUtils` class in t using Microsoft.PowerToys.Settings.UI.Library; // Read settings -var settings = SettingsUtils.GetSettings("ModuleName"); +var settings = SettingsUtils.Default.GetSettings("ModuleName"); bool enabled = settings.Enabled; ``` @@ -49,7 +49,7 @@ using Microsoft.PowerToys.Settings.UI.Library; // Write settings settings.Enabled = true; -SettingsUtils.SaveSettings(settings.ToJsonString(), "ModuleName"); +SettingsUtils.Default.SaveSettings(settings.ToJsonString(), "ModuleName"); ``` ## Settings Handling in Modules diff --git a/src/common/UITestAutomation/SettingsConfigHelper.cs b/src/common/UITestAutomation/SettingsConfigHelper.cs index 833ec4f19d..0a01891dc4 100644 --- a/src/common/UITestAutomation/SettingsConfigHelper.cs +++ b/src/common/UITestAutomation/SettingsConfigHelper.cs @@ -21,7 +21,7 @@ namespace Microsoft.PowerToys.UITest public class SettingsConfigHelper { private static readonly JsonSerializerOptions IndentedJsonOptions = new() { WriteIndented = true }; - private static readonly SettingsUtils SettingsUtils = new SettingsUtils(); + private static readonly SettingsUtils SettingsUtils = SettingsUtils.Default; /// /// Configures global PowerToys settings to enable only specified modules and disable all others. diff --git a/src/dsc/v3/PowerToys.DSC.UnitTests/SettingsResourceTests/SettingsResourceModuleTest`1.cs b/src/dsc/v3/PowerToys.DSC.UnitTests/SettingsResourceTests/SettingsResourceModuleTest`1.cs index ad7eb1d200..8d43f48a77 100644 --- a/src/dsc/v3/PowerToys.DSC.UnitTests/SettingsResourceTests/SettingsResourceModuleTest`1.cs +++ b/src/dsc/v3/PowerToys.DSC.UnitTests/SettingsResourceTests/SettingsResourceModuleTest`1.cs @@ -18,7 +18,7 @@ namespace PowerToys.DSC.UnitTests.SettingsResourceTests; public abstract class SettingsResourceModuleTest : BaseDscTest where TSettingsConfig : ISettingsConfig, new() { - private readonly SettingsUtils _settingsUtils = new(); + private readonly SettingsUtils _settingsUtils = SettingsUtils.Default; private TSettingsConfig _originalSettings; protected TSettingsConfig DefaultSettings => new(); diff --git a/src/dsc/v3/PowerToys.DSC/Models/FunctionData/SettingsFunctionData`1.cs b/src/dsc/v3/PowerToys.DSC/Models/FunctionData/SettingsFunctionData`1.cs index 7fcce03d33..9d87b1e773 100644 --- a/src/dsc/v3/PowerToys.DSC/Models/FunctionData/SettingsFunctionData`1.cs +++ b/src/dsc/v3/PowerToys.DSC/Models/FunctionData/SettingsFunctionData`1.cs @@ -18,7 +18,7 @@ namespace PowerToys.DSC.Models.FunctionData; public sealed class SettingsFunctionData : BaseFunctionData, ISettingsFunctionData where TSettingsConfig : ISettingsConfig, new() { - private static readonly SettingsUtils _settingsUtils = new(); + private static readonly SettingsUtils _settingsUtils = SettingsUtils.Default; private static readonly TSettingsConfig _settingsConfig = new(); private readonly SettingsResourceObject _input; diff --git a/src/modules/Hosts/Hosts/Settings/UserSettings.cs b/src/modules/Hosts/Hosts/Settings/UserSettings.cs index 038823f0e2..bd69a336eb 100644 --- a/src/modules/Hosts/Hosts/Settings/UserSettings.cs +++ b/src/modules/Hosts/Hosts/Settings/UserSettings.cs @@ -62,7 +62,7 @@ namespace Hosts.Settings public UserSettings() { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; var defaultSettings = new HostsProperties(); ShowStartupWarning = defaultSettings.ShowStartupWarning; LoopbackDuplicates = defaultSettings.LoopbackDuplicates; diff --git a/src/modules/MeasureTool/MeasureToolUI/Settings.cs b/src/modules/MeasureTool/MeasureToolUI/Settings.cs index 4e8cd99b18..ac48339ad6 100644 --- a/src/modules/MeasureTool/MeasureToolUI/Settings.cs +++ b/src/modules/MeasureTool/MeasureToolUI/Settings.cs @@ -11,7 +11,7 @@ namespace MeasureToolUI { public sealed class Settings { - private static readonly SettingsUtils ModuleSettings = new(); + private static readonly SettingsUtils ModuleSettings = SettingsUtils.Default; public MeasureToolMeasureStyle DefaultMeasureStyle { diff --git a/src/modules/MouseUtils/MouseJumpUI/Helpers/SettingsHelper.cs b/src/modules/MouseUtils/MouseJumpUI/Helpers/SettingsHelper.cs index efe721e873..6e19043547 100644 --- a/src/modules/MouseUtils/MouseJumpUI/Helpers/SettingsHelper.cs +++ b/src/modules/MouseUtils/MouseJumpUI/Helpers/SettingsHelper.cs @@ -53,7 +53,7 @@ internal sealed class SettingsHelper lock (this.LockObject) { { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; // set this to 1 to disable retries var remainingRetries = 5; diff --git a/src/modules/MouseWithoutBorders/App/Class/Setting.cs b/src/modules/MouseWithoutBorders/App/Class/Setting.cs index c526c70976..7d440a6125 100644 --- a/src/modules/MouseWithoutBorders/App/Class/Setting.cs +++ b/src/modules/MouseWithoutBorders/App/Class/Setting.cs @@ -192,7 +192,7 @@ namespace MouseWithoutBorders.Class internal Settings() { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; _watcher = SettingsHelper.GetFileWatcher("MouseWithoutBorders", "settings.json", () => { diff --git a/src/modules/PowerOCR/PowerOCR/Settings/UserSettings.cs b/src/modules/PowerOCR/PowerOCR/Settings/UserSettings.cs index 0c57171f3a..053f3b5f30 100644 --- a/src/modules/PowerOCR/PowerOCR/Settings/UserSettings.cs +++ b/src/modules/PowerOCR/PowerOCR/Settings/UserSettings.cs @@ -29,7 +29,7 @@ namespace PowerOCR.Settings [ImportingConstructor] public UserSettings(Helpers.IThrottledActionInvoker throttledActionInvoker) { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; ActivationShortcut = new SettingItem(DefaultActivationShortcut); PreferredLanguage = new SettingItem(string.Empty); diff --git a/src/modules/Workspaces/WorkspacesEditor/Utils/Settings.cs b/src/modules/Workspaces/WorkspacesEditor/Utils/Settings.cs index 29dd65d56f..0955e4019e 100644 --- a/src/modules/Workspaces/WorkspacesEditor/Utils/Settings.cs +++ b/src/modules/Workspaces/WorkspacesEditor/Utils/Settings.cs @@ -9,7 +9,7 @@ namespace WorkspacesEditor.Utils public class Settings { private const string WorkspacesModuleName = "Workspaces"; - private static readonly SettingsUtils _settingsUtils = new(); + private static readonly SettingsUtils _settingsUtils = SettingsUtils.Default; public static WorkspacesSettings ReadSettings() { diff --git a/src/modules/Workspaces/WorkspacesEditor/ViewModels/MainViewModel.cs b/src/modules/Workspaces/WorkspacesEditor/ViewModels/MainViewModel.cs index d05498d62e..30b28f4cd8 100644 --- a/src/modules/Workspaces/WorkspacesEditor/ViewModels/MainViewModel.cs +++ b/src/modules/Workspaces/WorkspacesEditor/ViewModels/MainViewModel.cs @@ -133,7 +133,7 @@ namespace WorkspacesEditor.ViewModels _orderByIndex = value; OnPropertyChanged(new PropertyChangedEventArgs(nameof(WorkspacesView))); settings.Properties.SortBy = (WorkspacesProperties.SortByProperty)value; - settings.Save(new SettingsUtils()); + settings.Save(SettingsUtils.Default); } } diff --git a/src/modules/awake/Awake/Core/Manager.cs b/src/modules/awake/Awake/Core/Manager.cs index c6aa1c2efb..cc3e461b20 100644 --- a/src/modules/awake/Awake/Core/Manager.cs +++ b/src/modules/awake/Awake/Core/Manager.cs @@ -60,7 +60,7 @@ namespace Awake.Core { _tokenSource = new CancellationTokenSource(); _stateQueue = []; - ModuleSettings = new SettingsUtils(); + ModuleSettings = SettingsUtils.Default; } internal static void StartMonitor() diff --git a/src/modules/awake/Awake/Program.cs b/src/modules/awake/Awake/Program.cs index 4d6d20bc96..b5c3102ba0 100644 --- a/src/modules/awake/Awake/Program.cs +++ b/src/modules/awake/Awake/Program.cs @@ -51,7 +51,7 @@ namespace Awake private static async Task Main(string[] args) { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; LockMutex = new Mutex(true, Core.Constants.AppName, out bool instantiated); diff --git a/src/modules/colorPicker/ColorPickerUI/Settings/UserSettings.cs b/src/modules/colorPicker/ColorPickerUI/Settings/UserSettings.cs index e15a792259..dfb5551a87 100644 --- a/src/modules/colorPicker/ColorPickerUI/Settings/UserSettings.cs +++ b/src/modules/colorPicker/ColorPickerUI/Settings/UserSettings.cs @@ -45,7 +45,7 @@ namespace ColorPicker.Settings [ImportingConstructor] public UserSettings(Helpers.IThrottledActionInvoker throttledActionInvoker) { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; ChangeCursor = new SettingItem(true); ActivationShortcut = new SettingItem(DefaultActivationShortcut); CopiedColorRepresentation = new SettingItem(ColorRepresentationType.HEX.ToString()); diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Components/UtilityProvider.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Components/UtilityProvider.cs index a953496500..74d35a5b18 100644 --- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Components/UtilityProvider.cs +++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Components/UtilityProvider.cs @@ -27,7 +27,7 @@ namespace Microsoft.PowerToys.Run.Plugin.PowerToys public UtilityProvider() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; var generalSettings = settingsUtils.GetSettings(); _utilities = new List(); @@ -228,7 +228,7 @@ namespace Microsoft.PowerToys.Run.Plugin.PowerToys { retryCount++; - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; var generalSettings = settingsUtils.GetSettings(); foreach (var u in _utilities) diff --git a/src/modules/launcher/PowerLauncher/SettingsReader.cs b/src/modules/launcher/PowerLauncher/SettingsReader.cs index 41d0524f69..dbba7e7906 100644 --- a/src/modules/launcher/PowerLauncher/SettingsReader.cs +++ b/src/modules/launcher/PowerLauncher/SettingsReader.cs @@ -38,7 +38,7 @@ namespace PowerLauncher public SettingsReader(PowerToysRunSettings settings, ThemeManager themeManager) { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; _settings = settings; _themeManager = themeManager; diff --git a/src/modules/peek/Peek.FilePreviewer/Models/PreviewSettings.cs b/src/modules/peek/Peek.FilePreviewer/Models/PreviewSettings.cs index 3df7fc23a1..1ba5e676a5 100644 --- a/src/modules/peek/Peek.FilePreviewer/Models/PreviewSettings.cs +++ b/src/modules/peek/Peek.FilePreviewer/Models/PreviewSettings.cs @@ -34,7 +34,7 @@ namespace Peek.FilePreviewer.Models public PreviewSettings() { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; SourceCodeWrapText = false; SourceCodeTryFormat = false; SourceCodeFontSize = 14; diff --git a/src/modules/peek/Peek.UI/Services/UserSettings.cs b/src/modules/peek/Peek.UI/Services/UserSettings.cs index 77257eaf80..e3750fe8e1 100644 --- a/src/modules/peek/Peek.UI/Services/UserSettings.cs +++ b/src/modules/peek/Peek.UI/Services/UserSettings.cs @@ -77,7 +77,7 @@ namespace Peek.UI public UserSettings() { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; LoadSettingsFromJson(); diff --git a/src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs b/src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs index 1a1657ecaf..81e3d5c56f 100644 --- a/src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs +++ b/src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs @@ -24,7 +24,7 @@ public class SettingsService public SettingsService(KeyboardListener keyboardListener) { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; _keyboardListener = keyboardListener; ReadSettings(); _watcher = Helper.GetFileWatcher(PowerAccentModuleName, "settings.json", () => { ReadSettings(); }); diff --git a/src/modules/poweraccent/PowerAccent.Core/Tools/CharactersUsageInfo.cs b/src/modules/poweraccent/PowerAccent.Core/Tools/CharactersUsageInfo.cs index 492a9828d9..ef2fa1db7e 100644 --- a/src/modules/poweraccent/PowerAccent.Core/Tools/CharactersUsageInfo.cs +++ b/src/modules/poweraccent/PowerAccent.Core/Tools/CharactersUsageInfo.cs @@ -19,7 +19,7 @@ namespace PowerAccent.Core.Tools public CharactersUsageInfo() { - _filePath = new SettingsUtils().GetSettingsFilePath(PowerAccentSettings.ModuleName, "UsageInfo.json"); + _filePath = SettingsUtils.Default.GetSettingsFilePath(PowerAccentSettings.ModuleName, "UsageInfo.json"); var data = GetUsageInfoData(); _characterUsageCounters = data.CharacterUsageCounters; _characterUsageTimestamp = data.CharacterUsageTimestamp; diff --git a/src/modules/previewpane/MonacoPreviewHandler/Settings.cs b/src/modules/previewpane/MonacoPreviewHandler/Settings.cs index 94eeab308f..80ee876104 100644 --- a/src/modules/previewpane/MonacoPreviewHandler/Settings.cs +++ b/src/modules/previewpane/MonacoPreviewHandler/Settings.cs @@ -16,7 +16,7 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco /// public class Settings { - private static SettingsUtils moduleSettings = new SettingsUtils(); + private static SettingsUtils moduleSettings = SettingsUtils.Default; /// /// Gets a value indicating whether word wrapping should be applied. Set by PT settings. diff --git a/src/modules/previewpane/StlThumbnailProvider/StlThumbnailProvider.cs b/src/modules/previewpane/StlThumbnailProvider/StlThumbnailProvider.cs index 2301c7beb0..d6dbd74251 100644 --- a/src/modules/previewpane/StlThumbnailProvider/StlThumbnailProvider.cs +++ b/src/modules/previewpane/StlThumbnailProvider/StlThumbnailProvider.cs @@ -155,7 +155,7 @@ namespace Microsoft.PowerToys.ThumbnailHandler.Stl { try { - var moduleSettings = new SettingsUtils(); + var moduleSettings = SettingsUtils.Default; var colorString = moduleSettings.GetSettings(PowerPreviewSettings.ModuleName).Properties.StlThumbnailColor.Value; diff --git a/src/modules/previewpane/SvgPreviewHandler/Settings.cs b/src/modules/previewpane/SvgPreviewHandler/Settings.cs index 925da8307a..dfde5bed03 100644 --- a/src/modules/previewpane/SvgPreviewHandler/Settings.cs +++ b/src/modules/previewpane/SvgPreviewHandler/Settings.cs @@ -8,7 +8,7 @@ namespace SvgPreviewHandler { internal sealed class Settings { - private static readonly SettingsUtils ModuleSettings = new SettingsUtils(); + private static readonly SettingsUtils ModuleSettings = SettingsUtils.Default; public int ColorMode { diff --git a/src/settings-ui/Settings.UI.Library/SettingsBackupAndRestoreUtils.cs b/src/settings-ui/Settings.UI.Library/SettingsBackupAndRestoreUtils.cs index 10ebf74314..08708009d0 100644 --- a/src/settings-ui/Settings.UI.Library/SettingsBackupAndRestoreUtils.cs +++ b/src/settings-ui/Settings.UI.Library/SettingsBackupAndRestoreUtils.cs @@ -592,7 +592,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library /// public (bool Success, string Message, string Severity, bool LastBackupExists, string OptionalMessage) DryRunBackup() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; var appBasePath = Path.GetDirectoryName(settingsUtils.GetSettingsFilePath()); string settingsBackupAndRestoreDir = GetSettingsBackupAndRestoreDir(); var results = BackupSettings(appBasePath, settingsBackupAndRestoreDir, true); diff --git a/src/settings-ui/Settings.UI.Library/SettingsUtils.cs b/src/settings-ui/Settings.UI.Library/SettingsUtils.cs index 6109df0646..eb4169f422 100644 --- a/src/settings-ui/Settings.UI.Library/SettingsUtils.cs +++ b/src/settings-ui/Settings.UI.Library/SettingsUtils.cs @@ -22,7 +22,14 @@ namespace Microsoft.PowerToys.Settings.UI.Library private readonly ISettingsPath _settingsPath; private readonly JsonSerializerOptions _serializerOptions; - public SettingsUtils() + /// + /// Gets the default instance of the class for general use. + /// Same as instantiating a new instance with the constructor with a new object as the first argument and null as the second argument. + /// + /// For using in tests, you should use one of the public constructors. + public static SettingsUtils Default { get; } = new SettingsUtils(); + + private SettingsUtils() : this(new FileSystem()) { } @@ -234,7 +241,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library public static (bool Success, string Message, string Severity, bool LastBackupExists, string OptionalMessage) BackupSettings() { var settingsBackupAndRestoreUtilsX = SettingsBackupAndRestoreUtils.Instance; - var settingsUtils = new SettingsUtils(); + var settingsUtils = Default; var appBasePath = Path.GetDirectoryName(settingsUtils._settingsPath.GetSettingsPath(string.Empty, string.Empty)); string settingsBackupAndRestoreDir = settingsBackupAndRestoreUtilsX.GetSettingsBackupAndRestoreDir(); @@ -247,7 +254,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library public static (bool Success, string Message, string Severity) RestoreSettings() { var settingsBackupAndRestoreUtilsX = SettingsBackupAndRestoreUtils.Instance; - var settingsUtils = new SettingsUtils(); + var settingsUtils = Default; var appBasePath = Path.GetDirectoryName(settingsUtils._settingsPath.GetSettingsPath(string.Empty, string.Empty)); string settingsBackupAndRestoreDir = settingsBackupAndRestoreUtilsX.GetSettingsBackupAndRestoreDir(); return settingsBackupAndRestoreUtilsX.RestoreSettings(appBasePath, settingsBackupAndRestoreDir); diff --git a/src/settings-ui/Settings.UI.Library/Utilities/GetSettingCommandLineCommand.cs b/src/settings-ui/Settings.UI.Library/Utilities/GetSettingCommandLineCommand.cs index a4ad1d1862..5780b95392 100644 --- a/src/settings-ui/Settings.UI.Library/Utilities/GetSettingCommandLineCommand.cs +++ b/src/settings-ui/Settings.UI.Library/Utilities/GetSettingCommandLineCommand.cs @@ -48,7 +48,7 @@ public sealed class GetSettingCommandLineCommand var modulesSettings = new Dictionary>(); var settingsAssembly = CommandLineUtils.GetSettingsAssembly(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; var enabledModules = SettingsRepository.GetInstance(settingsUtils).SettingsConfig.Enabled; diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ColorPicker.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ColorPicker.cs index baf46827c4..19e2ca3b67 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ColorPicker.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ColorPicker.cs @@ -67,7 +67,7 @@ namespace ViewModelTests using (var viewModel = new ColorPickerViewModel( ISettingsUtilsMocks.GetStubSettingsUtils().Object, SettingsRepository.GetInstance(ISettingsUtilsMocks.GetStubSettingsUtils().Object), - SettingsRepository.GetInstance(new SettingsUtils()), + SettingsRepository.GetInstance(SettingsUtils.Default), ColorPickerIsEnabledByDefaultIPC)) { Assert.IsTrue(viewModel.IsEnabled); diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/FancyZones.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/FancyZones.cs index de6421785b..bf8f9396c4 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/FancyZones.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/FancyZones.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System; +using System.IO.Abstractions; using System.Text.Json; using Microsoft.PowerToys.Settings.UI.Library; @@ -120,7 +121,7 @@ namespace ViewModelTests [TestMethod] public void IsEnabledShouldDisableModuleWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); Func sendMockIPCConfigMSG = msg => { @@ -140,7 +141,7 @@ namespace ViewModelTests [TestMethod] public void ShiftDragShouldSetValue2FalseWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -158,7 +159,7 @@ namespace ViewModelTests [TestMethod] public void OverrideSnapHotkeysShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -176,7 +177,7 @@ namespace ViewModelTests [TestMethod] public void MoveWindowsAcrossMonitorsShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -194,7 +195,7 @@ namespace ViewModelTests [TestMethod] public void MoveWindowsBasedOnPositionShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -217,7 +218,7 @@ namespace ViewModelTests [TestMethod] public void QuickLayoutSwitchShouldSetValue2FalseWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -235,7 +236,7 @@ namespace ViewModelTests [TestMethod] public void FlashZonesOnQuickSwitchShouldSetValue2FalseWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -253,7 +254,7 @@ namespace ViewModelTests [TestMethod] public void MakeDraggedWindowsTransparentShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -271,7 +272,7 @@ namespace ViewModelTests [TestMethod] public void MouseSwitchShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -289,7 +290,7 @@ namespace ViewModelTests [TestMethod] public void DisplayOrWorkAreaChangeMoveWindowsShouldSetValue2FalseWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -307,7 +308,7 @@ namespace ViewModelTests [TestMethod] public void ZoneSetChangeMoveWindowsShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -325,7 +326,7 @@ namespace ViewModelTests [TestMethod] public void AppLastZoneMoveWindowsShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -343,7 +344,7 @@ namespace ViewModelTests [TestMethod] public void OpenWindowOnActiveMonitorShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -361,7 +362,7 @@ namespace ViewModelTests [TestMethod] public void RestoreSizeShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -379,7 +380,7 @@ namespace ViewModelTests [TestMethod] public void UseCursorPosEditorStartupScreenShouldSetValue2FalseWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -397,7 +398,7 @@ namespace ViewModelTests [TestMethod] public void ShowOnAllMonitorsShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -415,7 +416,7 @@ namespace ViewModelTests [TestMethod] public void SpanZonesAcrossMonitorsShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -433,7 +434,7 @@ namespace ViewModelTests [TestMethod] public void OverlappingZonesAlgorithmIndexShouldSetValue2AnotherWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -451,7 +452,7 @@ namespace ViewModelTests [TestMethod] public void AllowChildWindowsToSnapShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -469,7 +470,7 @@ namespace ViewModelTests [TestMethod] public void DisableRoundCornersOnSnapShouldSetValue2TrueWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -487,7 +488,7 @@ namespace ViewModelTests [TestMethod] public void ZoneHighlightColorShouldSetColorValue2WhiteWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -505,7 +506,7 @@ namespace ViewModelTests [TestMethod] public void ZoneBorderColorShouldSetColorValue2WhiteWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -523,7 +524,7 @@ namespace ViewModelTests [TestMethod] public void ZoneInActiveColorShouldSetColorValue2WhiteWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -541,7 +542,7 @@ namespace ViewModelTests [TestMethod] public void ExcludedAppsShouldSetColorValue2WhiteWhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); @@ -559,7 +560,7 @@ namespace ViewModelTests [TestMethod] public void HighlightOpacityShouldSetOpacityValueTo60WhenSuccessful() { - Mock mockSettingsUtils = new Mock(); + Mock mockSettingsUtils = new Mock(new FileSystem(), null); // arrange FancyZonesViewModel viewModel = new FancyZonesViewModel(mockSettingsUtils.Object, SettingsRepository.GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository.GetInstance(mockFancyZonesSettingsUtils.Object), sendMockIPCConfigMSG, FancyZonesTestFolderName); diff --git a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ShortcutGuide.cs b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ShortcutGuide.cs index 3613d0cfa3..897fc2bec6 100644 --- a/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ShortcutGuide.cs +++ b/src/settings-ui/Settings.UI.UnitTests/ViewModelTests/ShortcutGuide.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System; +using System.IO.Abstractions; using System.Text.Json; using Microsoft.PowerToys.Settings.UI.Library; @@ -69,7 +70,7 @@ namespace ViewModelTests [TestMethod] public void IsEnabledShouldEnableModuleWhenSuccessful() { - var settingsUtilsMock = new Mock(); + var settingsUtilsMock = new Mock(new FileSystem(), null); // Assert // Initialize mock function of sending IPC message. diff --git a/src/settings-ui/Settings.UI/Helpers/HotkeyConflictIgnoreHelper.cs b/src/settings-ui/Settings.UI/Helpers/HotkeyConflictIgnoreHelper.cs index d2e737180a..1397fca0b7 100644 --- a/src/settings-ui/Settings.UI/Helpers/HotkeyConflictIgnoreHelper.cs +++ b/src/settings-ui/Settings.UI/Helpers/HotkeyConflictIgnoreHelper.cs @@ -22,7 +22,7 @@ namespace Microsoft.PowerToys.Settings.UI.Helpers static HotkeyConflictIgnoreHelper() { - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; _generalSettingsRepository = SettingsRepository.GetInstance(_settingsUtils); } diff --git a/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs index 19cd75b022..3189f15b31 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/App.xaml.cs @@ -133,7 +133,7 @@ namespace Microsoft.PowerToys.Settings.UI var settingValue = cmdArgs[3]; try { - SetSettingCommandLineCommand.Execute(settingName, settingValue, new SettingsUtils()); + SetSettingCommandLineCommand.Execute(settingName, settingValue, SettingsUtils.Default); } catch (Exception ex) { @@ -151,7 +151,7 @@ namespace Microsoft.PowerToys.Settings.UI { using (var settings = JsonDocument.Parse(File.ReadAllText(ipcFileName))) { - SetAdditionalSettingsCommandLineCommand.Execute(moduleName, settings, new SettingsUtils()); + SetAdditionalSettingsCommandLineCommand.Execute(moduleName, settings, SettingsUtils.Default); } } catch (Exception ex) @@ -357,7 +357,7 @@ namespace Microsoft.PowerToys.Settings.UI return 0; } - private static ISettingsUtils settingsUtils = new SettingsUtils(); + private static ISettingsUtils 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/Controls/Dashboard/ShortcutConflictWindow.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Controls/Dashboard/ShortcutConflictWindow.xaml.cs index b9bee4ff08..19a6cb06ad 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Controls/Dashboard/ShortcutConflictWindow.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Controls/Dashboard/ShortcutConflictWindow.xaml.cs @@ -26,7 +26,7 @@ namespace Microsoft.PowerToys.Settings.UI.SettingsXAML.Controls.Dashboard public ShortcutConflictWindow() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new ShortcutConflictViewModel( settingsUtils, SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Flyout/AppsListPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Flyout/AppsListPage.xaml.cs index b58636f41b..fd034239e1 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Flyout/AppsListPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Flyout/AppsListPage.xaml.cs @@ -24,7 +24,7 @@ namespace Microsoft.PowerToys.Settings.UI.Flyout { this.InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new AllAppsViewModel(SettingsRepository.GetInstance(settingsUtils), Views.ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; } diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Flyout/LaunchPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Flyout/LaunchPage.xaml.cs index 51219309e0..f82da1466c 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Flyout/LaunchPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Flyout/LaunchPage.xaml.cs @@ -27,7 +27,7 @@ namespace Microsoft.PowerToys.Settings.UI.Flyout public LaunchPage() { this.InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new LauncherViewModel(SettingsRepository.GetInstance(settingsUtils), Views.ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; } @@ -51,7 +51,7 @@ namespace Microsoft.PowerToys.Settings.UI.Flyout break; case ModuleType.EnvironmentVariables: // Launch Environment Variables { - bool launchAdmin = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.LaunchAdministrator; + bool launchAdmin = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.LaunchAdministrator; string eventName = !App.IsElevated && launchAdmin ? Constants.ShowEnvironmentVariablesAdminSharedEvent() : Constants.ShowEnvironmentVariablesSharedEvent(); @@ -74,7 +74,7 @@ namespace Microsoft.PowerToys.Settings.UI.Flyout case ModuleType.Hosts: // Launch Hosts { - bool launchAdmin = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.LaunchAdministrator; + bool launchAdmin = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.LaunchAdministrator; string eventName = !App.IsElevated && launchAdmin ? Constants.ShowHostsAdminSharedEvent() : Constants.ShowHostsSharedEvent(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/MainWindow.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/MainWindow.xaml.cs index 90b2577268..27d5456418 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/MainWindow.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/MainWindow.xaml.cs @@ -81,7 +81,7 @@ namespace Microsoft.PowerToys.Settings.UI // open main window ShellPage.SetUpdatingGeneralSettingsCallback((ModuleType moduleType, bool isEnabled) => { - SettingsRepository repository = SettingsRepository.GetInstance(new SettingsUtils()); + SettingsRepository repository = SettingsRepository.GetInstance(SettingsUtils.Default); GeneralSettings generalSettingsConfig = repository.SettingsConfig; bool needToUpdate = ModuleHelper.GetIsModuleEnabled(generalSettingsConfig, moduleType) != isEnabled; diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeAdvancedPaste.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeAdvancedPaste.xaml.cs index 52cbc6cef2..73e25ed856 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeAdvancedPaste.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeAdvancedPaste.xaml.cs @@ -35,9 +35,9 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - AdvancedPasteUIHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.AdvancedPasteUIShortcut.GetKeysList(); - PasteAsPlainTextHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.PasteAsPlainTextShortcut.GetKeysList(); - PasteAsMarkdownHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.PasteAsMarkdownShortcut.GetKeysList(); + AdvancedPasteUIHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.AdvancedPasteUIShortcut.GetKeysList(); + PasteAsPlainTextHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.PasteAsPlainTextShortcut.GetKeysList(); + PasteAsMarkdownHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.PasteAsMarkdownShortcut.GetKeysList(); // TODO(stefan): Check how to remove additional space if item is set to Collapsed. if (PasteAsMarkdownHotkeyControl.Keys.Count > 0) @@ -45,7 +45,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views PasteAsMarkdownHotkeyControl.Visibility = Microsoft.UI.Xaml.Visibility.Visible; } - PasteAsJsonHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.PasteAsJsonShortcut.GetKeysList(); + PasteAsJsonHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.PasteAsJsonShortcut.GetKeysList(); if (PasteAsJsonHotkeyControl.Keys.Count > 0) { PasteAsJsonHotkeyControl.Visibility = Microsoft.UI.Xaml.Visibility.Visible; diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeAlwaysOnTop.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeAlwaysOnTop.xaml.cs index d22392e717..08fb0f8a80 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeAlwaysOnTop.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeAlwaysOnTop.xaml.cs @@ -35,7 +35,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - HotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.Hotkey.Value.GetKeysList(); + HotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.Hotkey.Value.GetKeysList(); } protected override void OnNavigatedFrom(NavigationEventArgs e) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeColorPicker.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeColorPicker.xaml.cs index 444b2d7295..8fd2bfb28d 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeColorPicker.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeColorPicker.xaml.cs @@ -50,7 +50,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - ColorPickerSettings settings = new SettingsUtils().GetSettingsOrDefault(ColorPickerSettings.ModuleName, settingsUpgrader: ColorPickerSettings.UpgradeSettings); + ColorPickerSettings settings = SettingsUtils.Default.GetSettingsOrDefault(ColorPickerSettings.ModuleName, settingsUpgrader: ColorPickerSettings.UpgradeSettings); HotkeyControl.Keys = settings.Properties.ActivationShortcut.GetKeysList(); } diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeCropAndLock.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeCropAndLock.xaml.cs index be05925ec3..914dd647f6 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeCropAndLock.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeCropAndLock.xaml.cs @@ -35,8 +35,8 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - ReparentHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.ReparentHotkey.Value.GetKeysList(); - ThumbnailHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.ThumbnailHotkey.Value.GetKeysList(); + ReparentHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ReparentHotkey.Value.GetKeysList(); + ThumbnailHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ThumbnailHotkey.Value.GetKeysList(); } protected override void OnNavigatedFrom(NavigationEventArgs e) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeEnvironmentVariables.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeEnvironmentVariables.xaml.cs index af20978b42..3e2b66b9d6 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeEnvironmentVariables.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeEnvironmentVariables.xaml.cs @@ -37,7 +37,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views private void Launch_EnvironmentVariables_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e) { - bool launchAdmin = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.LaunchAdministrator; + bool launchAdmin = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.LaunchAdministrator; string eventName = !App.IsElevated && launchAdmin ? Constants.ShowEnvironmentVariablesAdminSharedEvent() : Constants.ShowEnvironmentVariablesSharedEvent(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeFancyZones.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeFancyZones.xaml.cs index ccbc5c8cc7..5308336e16 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeFancyZones.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeFancyZones.xaml.cs @@ -35,7 +35,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - HotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.FancyzonesEditorHotkey.Value.GetKeysList(); + HotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.FancyzonesEditorHotkey.Value.GetKeysList(); } protected override void OnNavigatedFrom(NavigationEventArgs e) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeHosts.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeHosts.xaml.cs index d47af96c7f..0a98df472e 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeHosts.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeHosts.xaml.cs @@ -37,7 +37,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views private void Launch_Hosts_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e) { - bool launchAdmin = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.LaunchAdministrator; + bool launchAdmin = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.LaunchAdministrator; string eventName = !App.IsElevated && launchAdmin ? Constants.ShowHostsAdminSharedEvent() : Constants.ShowHostsSharedEvent(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeMeasureTool.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeMeasureTool.xaml.cs index 7ca7739883..e8a24b9fc5 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeMeasureTool.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeMeasureTool.xaml.cs @@ -38,7 +38,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - HotkeyActivation.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.ActivationShortcut.GetKeysList(); + HotkeyActivation.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ActivationShortcut.GetKeysList(); } protected override void OnNavigatedFrom(NavigationEventArgs e) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeOverviewAlternate.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeOverviewAlternate.xaml.cs index d0ae488347..cbd05fc7ed 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeOverviewAlternate.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeOverviewAlternate.xaml.cs @@ -21,10 +21,10 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views ViewModel = new OobePowerToysModule(OobeShellPage.OobeShellHandler.Modules[(int)PowerToysModules.Overview]); DataContext = ViewModel; - FancyZonesHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.FancyzonesEditorHotkey.Value.GetKeysList(); - RunHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.OpenPowerLauncher.GetKeysList(); - ColorPickerHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.ActivationShortcut.GetKeysList(); - AlwaysOnTopHotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.Hotkey.Value.GetKeysList(); + FancyZonesHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.FancyzonesEditorHotkey.Value.GetKeysList(); + RunHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.OpenPowerLauncher.GetKeysList(); + ColorPickerHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ActivationShortcut.GetKeysList(); + AlwaysOnTopHotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.Hotkey.Value.GetKeysList(); } private void SettingsLaunchButton_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobePeek.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobePeek.xaml.cs index 7817b13ca4..6782f4adc7 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobePeek.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobePeek.xaml.cs @@ -38,7 +38,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - HotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.ActivationShortcut.GetKeysList(); + HotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ActivationShortcut.GetKeysList(); } protected override void OnNavigatedFrom(NavigationEventArgs e) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobePowerOCR.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobePowerOCR.xaml.cs index 7fef84d2b9..cf607d370e 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobePowerOCR.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobePowerOCR.xaml.cs @@ -35,7 +35,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - HotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.ActivationShortcut.GetKeysList(); + HotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ActivationShortcut.GetKeysList(); } protected override void OnNavigatedFrom(NavigationEventArgs e) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeRun.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeRun.xaml.cs index 3cb8593922..796e05bdea 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeRun.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeRun.xaml.cs @@ -54,7 +54,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views { ViewModel.LogOpeningModuleEvent(); - HotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.OpenPowerLauncher.GetKeysList(); + HotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.OpenPowerLauncher.GetKeysList(); } protected override void OnNavigatedFrom(NavigationEventArgs e) 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 8b01ab0bd0..7f8531286c 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 = new SettingsUtils(); + private static ISettingsUtils 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/SettingsXAML/OOBE/Views/OobeShortcutGuide.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShortcutGuide.xaml.cs index 5702ddcb9f..e721deefd6 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShortcutGuide.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeShortcutGuide.xaml.cs @@ -56,7 +56,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - var settingsProperties = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties; + var settingsProperties = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties; if ((bool)settingsProperties.UseLegacyPressWinKeyBehavior.Value) { diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeWorkspaces.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeWorkspaces.xaml.cs index 772807f735..98a8bccb84 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeWorkspaces.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OOBE/Views/OobeWorkspaces.xaml.cs @@ -38,7 +38,7 @@ namespace Microsoft.PowerToys.Settings.UI.OOBE.Views protected override void OnNavigatedTo(NavigationEventArgs e) { ViewModel.LogOpeningModuleEvent(); - HotkeyControl.Keys = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.Hotkey.Value.GetKeysList(); + HotkeyControl.Keys = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.Hotkey.Value.GetKeysList(); } protected override void OnNavigatedFrom(NavigationEventArgs e) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/AdvancedPastePage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/AdvancedPastePage.xaml.cs index 7b267107ee..faf31b0d4d 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/AdvancedPastePage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/AdvancedPastePage.xaml.cs @@ -44,7 +44,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public AdvancedPastePage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new AdvancedPasteViewModel( settingsUtils, SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/AlwaysOnTopPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/AlwaysOnTopPage.xaml.cs index c5d99e8e98..95ba8b595f 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/AlwaysOnTopPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/AlwaysOnTopPage.xaml.cs @@ -15,7 +15,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public AlwaysOnTopPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new AlwaysOnTopViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; InitializeComponent(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/AwakePage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/AwakePage.xaml.cs index 91b2b0b781..f52e96fb8f 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/AwakePage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/AwakePage.xaml.cs @@ -36,7 +36,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views { _dispatcherQueue = DispatcherQueue.GetForCurrentThread(); _fileSystem = new FileSystem(); - _settingsUtils = new SettingsUtils(); + _settingsUtils = SettingsUtils.Default; _sendConfigMsg = ShellPage.SendDefaultIPCMessage; ViewModel = new AwakeViewModel(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/CmdPalPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/CmdPalPage.xaml.cs index ea318100f0..90dec43398 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/CmdPalPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/CmdPalPage.xaml.cs @@ -19,7 +19,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public CmdPalPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new CmdPalViewModel( settingsUtils, SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/ColorPickerPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/ColorPickerPage.xaml.cs index 9e0ba6be07..652db49f4b 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/ColorPickerPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/ColorPickerPage.xaml.cs @@ -27,7 +27,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public ColorPickerPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new ColorPickerViewModel( settingsUtils, SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/CropAndLockPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/CropAndLockPage.xaml.cs index 67ef238645..5c174b1f98 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/CropAndLockPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/CropAndLockPage.xaml.cs @@ -15,7 +15,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public CropAndLockPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new CropAndLockViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; InitializeComponent(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/DashboardPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/DashboardPage.xaml.cs index 0d7273f924..522f8fbaf4 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/DashboardPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/DashboardPage.xaml.cs @@ -34,7 +34,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public DashboardPage() { InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new DashboardViewModel( SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/EnvironmentVariablesPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/EnvironmentVariablesPage.xaml.cs index 0772869249..a3e17ac491 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/EnvironmentVariablesPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/EnvironmentVariablesPage.xaml.cs @@ -16,7 +16,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public EnvironmentVariablesPage() { InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new EnvironmentVariablesViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage, App.IsElevated); } diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/FancyZonesPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/FancyZonesPage.xaml.cs index e1d7f7ea4b..ddf7c1e8ee 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/FancyZonesPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/FancyZonesPage.xaml.cs @@ -16,7 +16,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public FancyZonesPage() { InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new FancyZonesViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; Loaded += (s, e) => ViewModel.OnPageLoaded(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/FileLocksmithPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/FileLocksmithPage.xaml.cs index 6020917b69..8f78ce2c8c 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/FileLocksmithPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/FileLocksmithPage.xaml.cs @@ -15,7 +15,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public FileLocksmithPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new FileLocksmithViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; InitializeComponent(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs index 56eb73c6ef..5e84711b86 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs @@ -38,7 +38,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views // Load string resources var loader = Helpers.ResourceLoaderInstance.ResourceLoader; - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; Action stateUpdatingAction = () => { diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/HostsPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/HostsPage.xaml.cs index 19375d90f7..b65f32d520 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/HostsPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/HostsPage.xaml.cs @@ -16,7 +16,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public HostsPage() { InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new HostsViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage, App.IsElevated); BackupsCountInputSettingsCard.Header = ResourceLoaderInstance.ResourceLoader.GetString("Hosts_Backup_CountInput_Header"); BackupsCountInputSettingsCard.Description = ResourceLoaderInstance.ResourceLoader.GetString("Hosts_Backup_CountInput_Description"); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/ImageResizerPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/ImageResizerPage.xaml.cs index 18e1aacc15..6a2068d5a8 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/ImageResizerPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/ImageResizerPage.xaml.cs @@ -21,7 +21,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public ImageResizerPage() { InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; var resourceLoader = ResourceLoaderInstance.ResourceLoader; Func loader = resourceLoader.GetString; diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/KeyboardManagerPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/KeyboardManagerPage.xaml.cs index e32f5aa9cb..fce4dfc718 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/KeyboardManagerPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/KeyboardManagerPage.xaml.cs @@ -28,7 +28,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public KeyboardManagerPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new KeyboardManagerViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage, FilterRemapKeysList); watcher = Helper.GetFileWatcher( diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/LightSwitchPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/LightSwitchPage.xaml.cs index 974447a20e..dcd40fdbc7 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/LightSwitchPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/LightSwitchPage.xaml.cs @@ -40,7 +40,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public LightSwitchPage() { - this.settingsUtils = new SettingsUtils(); + this.settingsUtils = SettingsUtils.Default; this.sendConfigMsg = ShellPage.SendDefaultIPCMessage; this.generalSettingsRepository = SettingsRepository.GetInstance(this.settingsUtils); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/MeasureToolPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/MeasureToolPage.xaml.cs index bf516b557b..8f80f1c13b 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/MeasureToolPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/MeasureToolPage.xaml.cs @@ -17,7 +17,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public MeasureToolPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new MeasureToolViewModel( settingsUtils, SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/MouseUtilsPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/MouseUtilsPage.xaml.cs index ac4c7cc71d..fa34ca5293 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/MouseUtilsPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/MouseUtilsPage.xaml.cs @@ -22,7 +22,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views { // By mistake, the first release of Find My Mouse was saving settings in two places at the same time. // Delete the wrong path for Find My Mouse settings. - var tempSettingsUtils = new SettingsUtils(); + var tempSettingsUtils = SettingsUtils.Default; if (tempSettingsUtils.SettingsExists("Find My Mouse")) { var settingsFilePath = tempSettingsUtils.GetSettingsFilePath("Find My Mouse"); @@ -34,7 +34,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views { } - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new MouseUtilsViewModel( settingsUtils, SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/MouseWithoutBordersPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/MouseWithoutBordersPage.xaml.cs index 296a9a3deb..2db0d7a5d6 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/MouseWithoutBordersPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/MouseWithoutBordersPage.xaml.cs @@ -33,7 +33,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public MouseWithoutBordersPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new MouseWithoutBordersViewModel( settingsUtils, SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/NewPlusPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/NewPlusPage.xaml.cs index daa4dca2b5..997f6c7771 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/NewPlusPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/NewPlusPage.xaml.cs @@ -16,7 +16,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public NewPlusPage() { InitializeComponent(); - var settings_utils = new SettingsUtils(); + var settings_utils = SettingsUtils.Default; ViewModel = new NewPlusViewModel(settings_utils, SettingsRepository.GetInstance(settings_utils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; } diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/PeekPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/PeekPage.xaml.cs index 1a845e25ec..b848ae86dd 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/PeekPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/PeekPage.xaml.cs @@ -15,7 +15,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public PeekPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new PeekViewModel( settingsUtils, SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerAccentPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerAccentPage.xaml.cs index fa666dd242..0f60a8dcd3 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerAccentPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerAccentPage.xaml.cs @@ -17,7 +17,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public PowerAccentPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new PowerAccentViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; this.InitializeComponent(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerLauncherPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerLauncherPage.xaml.cs index c734535d49..19973a69bc 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerLauncherPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerLauncherPage.xaml.cs @@ -34,7 +34,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public PowerLauncherPage() { InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; _lastIPCMessageSentTick = Environment.TickCount; PowerLauncherSettings settings = SettingsRepository.GetInstance(settingsUtils)?.SettingsConfig; diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerOcrPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerOcrPage.xaml.cs index 27769b92ce..9198d338ef 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerOcrPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerOcrPage.xaml.cs @@ -15,7 +15,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public PowerOcrPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new PowerOcrViewModel( settingsUtils, SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerPreviewPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerPreviewPage.xaml.cs index 9d56c686e3..ecc960651b 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerPreviewPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerPreviewPage.xaml.cs @@ -19,7 +19,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public PowerPreviewPage() { InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new PowerPreviewViewModel(SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; } diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerRenamePage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerRenamePage.xaml.cs index d97b83c499..10013b84a3 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerRenamePage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerRenamePage.xaml.cs @@ -16,7 +16,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public PowerRenamePage() { InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new PowerRenameViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/RegistryPreviewPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/RegistryPreviewPage.xaml.cs index 8c1ed319a3..41d814e48b 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/RegistryPreviewPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/RegistryPreviewPage.xaml.cs @@ -14,7 +14,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public RegistryPreviewPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new RegistryPreviewViewModel( SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/ShellPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/ShellPage.xaml.cs index 06f7e222ce..853b66f164 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/ShellPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/ShellPage.xaml.cs @@ -151,7 +151,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views { InitializeComponent(); SetWindowTitle(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new ShellViewModel(SettingsRepository.GetInstance(settingsUtils)); DataContext = ViewModel; ShellHandler = this; diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/ShortcutGuidePage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/ShortcutGuidePage.xaml.cs index ffca0184c7..feb0e4837d 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/ShortcutGuidePage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/ShortcutGuidePage.xaml.cs @@ -17,7 +17,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views { InitializeComponent(); - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new ShortcutGuideViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/WorkspacesPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/WorkspacesPage.xaml.cs index 0b0ca571c4..3028b46ea1 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/WorkspacesPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/WorkspacesPage.xaml.cs @@ -15,7 +15,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public WorkspacesPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new WorkspacesViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage); DataContext = ViewModel; InitializeComponent(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/ZoomItPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/ZoomItPage.xaml.cs index 9018eb64e8..043ca7df8c 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/ZoomItPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/ZoomItPage.xaml.cs @@ -104,7 +104,7 @@ namespace Microsoft.PowerToys.Settings.UI.Views public ZoomItPage() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; ViewModel = new ZoomItViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage, PickFileDialog, PickFontDialog); DataContext = ViewModel; InitializeComponent(); diff --git a/src/settings-ui/Settings.UI/ViewModels/DashboardViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/DashboardViewModel.cs index b0520dd38d..1afe76897e 100644 --- a/src/settings-ui/Settings.UI/ViewModels/DashboardViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/DashboardViewModel.cs @@ -251,7 +251,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels if (dashboardListItem.Tag == ModuleType.NewPlus && dashboardListItem.IsEnabled == true) { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; var settings = NewPlusViewModel.LoadSettings(settingsUtils); NewPlusViewModel.CopyTemplateExamples(settings.Properties.TemplateLocation.Value); } @@ -390,7 +390,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsAlwaysOnTop() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var list = new List { new DashboardModuleShortcutItem() { Label = resourceLoader.GetString("AlwaysOnTop_ShortDescription"), Shortcut = moduleSettingsRepository.SettingsConfig.Properties.Hotkey.Value.GetKeysList() }, @@ -411,7 +411,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsColorPicker() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var settings = moduleSettingsRepository.SettingsConfig; var hotkey = settings.Properties.ActivationShortcut; var list = new List @@ -423,7 +423,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsLightSwitch() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var settings = moduleSettingsRepository.SettingsConfig; var list = new List { @@ -434,7 +434,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsCropAndLock() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var settings = moduleSettingsRepository.SettingsConfig; var list = new List { @@ -455,7 +455,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsFancyZones() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var settings = moduleSettingsRepository.SettingsConfig; string activationMode = $"{resourceLoader.GetString(settings.Properties.FancyzonesShiftDrag.Value ? "FancyZones_ActivationShiftDrag" : "FancyZones_ActivationNoShiftDrag")}."; @@ -470,7 +470,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsFindMyMouse() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); string shortDescription = resourceLoader.GetString("FindMyMouse_ShortDescription"); var settings = moduleSettingsRepository.SettingsConfig; var activationMethod = settings.Properties.ActivationMethod.Value; @@ -508,7 +508,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsMouseHighlighter() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var list = new List { new DashboardModuleShortcutItem() { Label = resourceLoader.GetString("MouseHighlighter_ShortDescription"), Shortcut = moduleSettingsRepository.SettingsConfig.Properties.ActivationShortcut.GetKeysList() }, @@ -518,7 +518,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsMouseJump() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var list = new List { new DashboardModuleShortcutItem() { Label = resourceLoader.GetString("MouseJump_ShortDescription"), Shortcut = moduleSettingsRepository.SettingsConfig.Properties.ActivationShortcut.GetKeysList() }, @@ -528,7 +528,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsMousePointerCrosshairs() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var list = new List { new DashboardModuleShortcutItem() { Label = resourceLoader.GetString("MouseCrosshairs_ShortDescription"), Shortcut = moduleSettingsRepository.SettingsConfig.Properties.ActivationShortcut.GetKeysList() }, @@ -538,7 +538,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsAdvancedPaste() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var list = new List { new DashboardModuleShortcutItem() { Label = resourceLoader.GetString("AdvancedPasteUI_Shortcut/Header"), Shortcut = moduleSettingsRepository.SettingsConfig.Properties.AdvancedPasteUIShortcut.GetKeysList() }, @@ -560,7 +560,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsPeek() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var list = new List { new DashboardModuleShortcutItem() { Label = resourceLoader.GetString("Peek_ShortDescription"), Shortcut = moduleSettingsRepository.SettingsConfig.Properties.ActivationShortcut.GetKeysList() }, @@ -570,7 +570,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsPowerLauncher() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var list = new List { new DashboardModuleShortcutItem() { Label = resourceLoader.GetString("Run_ShortDescription"), Shortcut = moduleSettingsRepository.SettingsConfig.Properties.OpenPowerLauncher.GetKeysList() }, @@ -580,7 +580,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsPowerAccent() { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; PowerAccentSettings moduleSettings = settingsUtils.GetSettingsOrDefault(PowerAccentSettings.ModuleName); var activationMethod = moduleSettings.Properties.ActivationKey; string activation = string.Empty; @@ -600,7 +600,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsWorkspaces() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var settings = moduleSettingsRepository.SettingsConfig; var list = new List @@ -622,7 +622,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsMeasureTool() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var list = new List { new DashboardModuleShortcutItem() { Label = resourceLoader.GetString("ScreenRuler_ShortDescription"), Shortcut = moduleSettingsRepository.SettingsConfig.Properties.ActivationShortcut.GetKeysList() }, @@ -632,7 +632,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsShortcutGuide() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var shortcut = moduleSettingsRepository.SettingsConfig.Properties.UseLegacyPressWinKeyBehavior.Value ? new List { 92 } // Right Windows key code @@ -647,7 +647,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private ObservableCollection GetModuleItemsPowerOCR() { - ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(new SettingsUtils()); + ISettingsRepository moduleSettingsRepository = SettingsRepository.GetInstance(SettingsUtils.Default); var list = new List { new DashboardModuleShortcutItem() { Label = resourceLoader.GetString("PowerOcr_ShortDescription"), Shortcut = moduleSettingsRepository.SettingsConfig.Properties.ActivationShortcut.GetKeysList() }, @@ -662,14 +662,14 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private void EnvironmentVariablesLaunchClicked(object sender, RoutedEventArgs e) { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; var environmentVariablesViewModel = new EnvironmentVariablesViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage, App.IsElevated); environmentVariablesViewModel.Launch(); } private void HostLaunchClicked(object sender, RoutedEventArgs e) { - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; var hostsViewModel = new HostsViewModel(settingsUtils, SettingsRepository.GetInstance(settingsUtils), SettingsRepository.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage, App.IsElevated); hostsViewModel.Launch(); } diff --git a/src/settings-ui/Settings.UI/ViewModels/Flyout/LauncherViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/Flyout/LauncherViewModel.cs index a1db1e2dd0..7adc4bb933 100644 --- a/src/settings-ui/Settings.UI/ViewModels/Flyout/LauncherViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/Flyout/LauncherViewModel.cs @@ -88,12 +88,12 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels { return moduleType switch { - ModuleType.ColorPicker => SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.ActivationShortcut.ToString(), - ModuleType.FancyZones => SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.FancyzonesEditorHotkey.Value.ToString(), - ModuleType.PowerLauncher => SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.OpenPowerLauncher.ToString(), - ModuleType.PowerOCR => SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.ActivationShortcut.ToString(), - ModuleType.Workspaces => SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.Hotkey.Value.ToString(), - ModuleType.MeasureTool => SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig.Properties.ActivationShortcut.ToString(), + ModuleType.ColorPicker => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ActivationShortcut.ToString(), + ModuleType.FancyZones => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.FancyzonesEditorHotkey.Value.ToString(), + ModuleType.PowerLauncher => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.OpenPowerLauncher.ToString(), + ModuleType.PowerOCR => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ActivationShortcut.ToString(), + ModuleType.Workspaces => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.Hotkey.Value.ToString(), + ModuleType.MeasureTool => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ActivationShortcut.ToString(), ModuleType.ShortcutGuide => GetShortcutGuideToolTip(), _ => string.Empty, }; @@ -111,7 +111,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private string GetShortcutGuideToolTip() { - var shortcutGuideSettings = SettingsRepository.GetInstance(new SettingsUtils()).SettingsConfig; + var shortcutGuideSettings = SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig; return shortcutGuideSettings.Properties.UseLegacyPressWinKeyBehavior.Value ? "Win" : shortcutGuideSettings.Properties.OpenShortcutGuide.ToString(); diff --git a/src/settings-ui/Settings.UI/ViewModels/GeneralViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/GeneralViewModel.cs index 7a6a7fc284..25ab4db13a 100644 --- a/src/settings-ui/Settings.UI/ViewModels/GeneralViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/GeneralViewModel.cs @@ -1145,7 +1145,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels _settingsBackupMessage = GetResourceString(results.Message) + results.OptionalMessage; // now we do a dry run to get the results for "setting match" - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; var appBasePath = Path.GetDirectoryName(settingsUtils.GetSettingsFilePath()); settingsBackupAndRestoreUtils.BackupSettings(appBasePath, settingsBackupAndRestoreDir, true); diff --git a/src/settings-ui/Settings.UI/ViewModels/KeyboardManagerViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/KeyboardManagerViewModel.cs index 3aa90cbc24..a48742672c 100644 --- a/src/settings-ui/Settings.UI/ViewModels/KeyboardManagerViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/KeyboardManagerViewModel.cs @@ -274,7 +274,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels try { // Check if the experimentation toggle is enabled in the settings - var settingsUtils = new SettingsUtils(); + var settingsUtils = SettingsUtils.Default; bool isExperimentationEnabled = SettingsRepository.GetInstance(settingsUtils).SettingsConfig.EnableExperimentation; // Only read the registry value if the experimentation toggle is enabled