/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/settings-ui/Settings.UI.Library/WorkspacesSettings.cs
69 строк
2 KB
Noraa Junker
Remove ISettingsUtils and ISettingsPath interfaces (#44331)
19 дек 2025, 05:30
Не верифицирован
19 дек 2025, 05:30
7cd201d
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Collections.Generic; using System.Text.Json; using System.Text.Json.Serialization; using ManagedCommon; using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Interfaces; namespace Microsoft.PowerToys.Settings.UI.Library { public class WorkspacesSettings : BasePTModuleSettings, ISettingsConfig, IHotkeyConfig { public const string ModuleName = "Workspaces"; public const string ModuleVersion = "0.0.1"; private static readonly JsonSerializerOptions _serializerOptions = new JsonSerializerOptions { WriteIndented = true, }; public WorkspacesSettings() { Name = ModuleName; Version = ModuleVersion; Properties = new WorkspacesProperties(); } [JsonPropertyName("properties")] public WorkspacesProperties Properties { get; set; } public string GetModuleName() { return Name; } public bool UpgradeSettingsConfiguration() { return false; } public ModuleType GetModuleType() => ModuleType.Workspaces; public HotkeyAccessor[] GetAllHotkeyAccessors() { var hotkeyAccessors = new List<HotkeyAccessor> { new HotkeyAccessor( () => Properties.Hotkey.Value, value => Properties.Hotkey.Value = value ?? WorkspacesProperties.DefaultHotkeyValue, "Workspaces_ActivationShortcut"), }; return hotkeyAccessors.ToArray(); } public virtual void Save(SettingsUtils settingsUtils) { // Save settings to file var options = _serializerOptions; ArgumentNullException.ThrowIfNull(settingsUtils); settingsUtils.SaveSettings(JsonSerializer.Serialize(this, options), ModuleName); } } }