public UISettingsManager(IIOSettingsManager ioSettingsManager, IEnumerable <BaseUISettingsFactory> factories) { directRef = new Dictionary <ISetting, BaseUISettingsFactory>(); var ioSettingsDir = ioSettingsManager.GetSettings().ToDictionary(s => s.Key, s => s); foreach (var factory in factories) { foreach (var key in factory.SettingKeys) { if (!key.Contains('.')) { throw new InvalidOperationException($"Every key in {factory.GetType().FullName}.{nameof(BaseUISettingsFactory.SettingKeys)} must contain a '.' i.e. must be in a section"); } if (ioSettingsDir.TryGetValue(key, out var setting)) { directRef.Add(setting, factory); } else { directRef.Add(new VirtualSetting(key), factory); } } } }
public ThemesManager(IEnumerable <Theme> themes, IIOSettingsManager settingsManager) : base(t => t.Name, themes) { if (ContainsKey(SettingConsts.ThemeDefaultName)) { throw new InvalidOperationException($"It is not allowed to register a {nameof(Theme)} with {nameof(Theme.Name)} \"{SettingConsts.ThemeDefaultName}\""); } _collection.Add(new Theme(SettingConsts.ThemeDefaultName, string.Empty, "Windows")); setting = (KeyedCollectionSetting <string, Theme, IThemesManager>)settingsManager.GetSetting(SettingConsts.ThemeKey); }
public object?Deserialize(Type type, XmlElement settingElement, IIOSettingsManager settingsManager) { var collection = (type.GetConstructor(Array.Empty <Type>()) ?? throw new InvalidOperationException($"{nameof(CollectionSerializer)} cannot create an instance of type {type.FullName} using a default constructor")).Invoke(null); var itemType = GetItemType(type); var itemSerializer = settingsManager.FindSerializer(itemType); var addMethod = type.GetMethod("Add", new[] { itemType }) ?? throw new InvalidOperationException($"{nameof(CollectionSerializer)} cannot find an Add method for item type {itemType.FullName} on type {type.FullName}"); foreach (var childElement in settingElement.ChildNodes.OfType <XmlElement>().Where(e => e.Name == ITEMNAME)) { addMethod.Invoke(collection, new[] { itemSerializer.Deserialize(itemType, childElement, settingsManager) }); } return(collection); }
public void Serialize(object?value, XmlElement settingElement, IIOSettingsManager settingsManager) { if (value is null) { return; } else if (value is IEnumerable enumerable) { var itemType = GetItemType(value.GetType()); var itemSerializer = settingsManager.FindSerializer(itemType); foreach (var itemValue in enumerable) { var childElement = settingElement.OwnerDocument.CreateElement(ITEMNAME); itemSerializer.Serialize(itemValue, childElement, settingsManager); settingElement.AppendChild(childElement); } } else { throw new InvalidOperationException($"{nameof(CollectionSerializer)} cannot serialize an object of type {value.GetType().FullName}"); } }
public static T GetResolvedValue <T>(this IIOSettingsManager manager, string key) => (T)((IResolveableIOSetting)manager.GetSetting(key)).GetResolvedValue() !;
public static T GetValue <T>(this IIOSettingsManager manager, string key) where T : notnull => (T)manager.GetValue(key) !;
public void Serialize(object?value, XmlElement settingNode, IIOSettingsManager settingsManager) { settingNode.InnerText = Convert.ToString(value) ?? string.Empty; }
public object?Deserialize(Type type, XmlElement settingNode, IIOSettingsManager settingsManager) { return(Enum.Parse(type, settingNode.InnerText)); }
public ConvertToFileInteractable(IIOSettingsManager settingsManager) : base("ConvertToFileIcon", new ConvertToFileInteractableAction((IResolveableIOSetting)settingsManager.GetSetting(SettingConsts.ToFileBitmapEncoderKey)), new SaveToFileInteractableAction((IResolveableIOSetting)settingsManager.GetSetting(SettingConsts.ToFileBitmapEncoderKey))) { }
public UpdateChecker(IAppInfo appInfo, INotificationsManager notificationsManager, IIOSettingsManager ioSettingsManager, ILogger <UpdateChecker> logger) { this.appInfo = appInfo; this.notificationsManager = notificationsManager; this.logger = logger; checkPrereleasesSetting = ioSettingsManager.GetSetting(AppUISettingsFactory.CheckForPrereleases); checkUpdatesOnStartUp = ioSettingsManager.GetSetting(AppUISettingsFactory.CheckUpdatesOnStartUp); }
public object?Deserialize(Type type, XmlElement settingNode, IIOSettingsManager settingsManager) { return(Convert.ChangeType(settingNode.InnerText, type)); }
public OwnerProgramClipboardFilter(IIOSettingsManager settingsManager) { programFilterSetting = settingsManager.GetSetting(SettingConsts.OwnerProgramClipboardFilterKey); }
public Windows10ClipboardFilter(IIOSettingsManager iOSettingsManager) { historySetting = iOSettingsManager.GetSetting(SettingConsts.Windows10HistoryFilterKey); cloudSetting = iOSettingsManager.GetSetting(SettingConsts.Windows10CloudFilterKey); }
public StartupContext(IAppInfo appInfo, IAppDataManager appDataManager, IIOSettingsManager iOSettingsManager) { AppInfo = appInfo; AppDataManager = appDataManager; IOSettingsManager = iOSettingsManager; }