public void OriginalFilesModificationTest(string version, string fileName) { // Arrange var mockIOProvider = BackCompatTestProperties.GetModuleIOProvider(version, ColorPickerSettings.ModuleName, fileName); var settingPathMock = new Mock <ISettingsPath>(); var mockSettingsUtils = new SettingsUtils(mockIOProvider.Object, settingPathMock.Object); ColorPickerSettings originalSettings = mockSettingsUtils.GetSettings <ColorPickerSettings>(ColorPickerSettings.ModuleName); var mockGeneralIOProvider = BackCompatTestProperties.GetGeneralSettingsIOProvider(version); var mockGeneralSettingsUtils = new SettingsUtils(mockGeneralIOProvider.Object, settingPathMock.Object); GeneralSettings originalGeneralSettings = mockGeneralSettingsUtils.GetSettings <GeneralSettings>(); var generalSettingsRepository = new BackCompatTestProperties.MockSettingsRepository <GeneralSettings>(mockGeneralSettingsUtils); // Act // Initialise View Model with test Config files using (var viewModel = new ColorPickerViewModel(mockSettingsUtils, generalSettingsRepository, ColorPickerIsEnabledByDefaultIPC)) { // Assert // Verify that the old settings persisted Assert.AreEqual(originalGeneralSettings.Enabled.ColorPicker, viewModel.IsEnabled); Assert.AreEqual(originalSettings.Properties.ActivationShortcut.ToString(), viewModel.ActivationShortcut.ToString()); Assert.AreEqual(originalSettings.Properties.ChangeCursor, viewModel.ChangeCursor); // Verify that the stub file was used var expectedCallCount = 2; // once via the view model, and once by the test (GetSettings<T>) BackCompatTestProperties.VerifyModuleIOProviderWasRead(mockIOProvider, ColorPickerSettings.ModuleName, expectedCallCount); BackCompatTestProperties.VerifyGeneralSettingsIOProviderWasRead(mockGeneralIOProvider, expectedCallCount); } }
public ColorPickerViewModel(ISettingsUtils settingsUtils, ISettingsRepository <GeneralSettings> settingsRepository, Func <string, int> ipcMSGCallBackFunc) { // Obtain the general PowerToy settings configurations if (settingsRepository == null) { throw new ArgumentNullException(nameof(settingsRepository)); } GeneralSettingsConfig = settingsRepository.SettingsConfig; _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); if (_settingsUtils.SettingsExists(ColorPickerSettings.ModuleName)) { _colorPickerSettings = _settingsUtils.GetSettings <ColorPickerSettings>(ColorPickerSettings.ModuleName); } else { _colorPickerSettings = new ColorPickerSettings(); } _isEnabled = GeneralSettingsConfig.Enabled.ColorPicker; // set the callback functions value to hangle outgoing IPC message. SendConfigMSG = ipcMSGCallBackFunc; }
public void Setup() { var generalSettings = new GeneralSettings(); var colorPickerSettings = new ColorPickerSettings(); SettingsUtils.SaveSettings(generalSettings.ToJsonString()); SettingsUtils.SaveSettings(colorPickerSettings.ToJsonString(), colorPickerSettings.Name, ModuleName + ".json"); }
private void LoadSettingsFromJson() { // TODO this IO call should by Async, update GetFileWatcher helper to support async lock (_loadingSettingsLock) { { var retry = true; var retryCount = 0; while (retry) { try { retryCount++; if (!_settingsUtils.SettingsExists(ColorPickerModuleName)) { Logger.LogInfo("ColorPicker settings.json was missing, creating a new one"); var defaultColorPickerSettings = new ColorPickerSettings(); defaultColorPickerSettings.Save(_settingsUtils); } var settings = _settingsUtils.GetSettings <ColorPickerSettings>(ColorPickerModuleName); if (settings != null) { ChangeCursor.Value = settings.Properties.ChangeCursor; ActivationShortcut.Value = settings.Properties.ActivationShortcut.ToString(); CopiedColorRepresentation.Value = settings.Properties.CopiedColorRepresentation; } retry = false; } catch (IOException ex) { if (retryCount > MaxNumberOfRetry) { retry = false; } Logger.LogError("Failed to read changed settings", ex); Thread.Sleep(500); } #pragma warning disable CA1031 // Do not catch general exception types catch (Exception ex) #pragma warning restore CA1031 // Do not catch general exception types { if (retryCount > MaxNumberOfRetry) { retry = false; } Logger.LogError("Failed to read changed settings", ex); Thread.Sleep(500); } } } } }
public ColorPickerViewModel(ISettingsUtils settingsUtils, ISettingsRepository <GeneralSettings> settingsRepository, Func <string, int> ipcMSGCallBackFunc) { // Obtain the general PowerToy settings configurations if (settingsRepository == null) { throw new ArgumentNullException(nameof(settingsRepository)); } SelectableColorRepresentations = new Dictionary <ColorRepresentationType, string> { { ColorRepresentationType.CMYK, "CMYK - cmyk(100%, 50%, 75%, 0%)" }, { ColorRepresentationType.HEX, "HEX - ffaa00" }, { ColorRepresentationType.HSB, "HSB - hsb(100, 50%, 75%)" }, { ColorRepresentationType.HSI, "HSI - hsi(100, 50%, 75%)" }, { ColorRepresentationType.HSL, "HSL - hsl(100, 50%, 75%)" }, { ColorRepresentationType.HSV, "HSV - hsv(100, 50%, 75%)" }, { ColorRepresentationType.HWB, "HWB - hwb(100, 50%, 75%)" }, { ColorRepresentationType.NCol, "NCol - R10, 50%, 75%" }, { ColorRepresentationType.RGB, "RGB - rgb(100, 50, 75)" }, { ColorRepresentationType.CIELAB, "CIE LAB - CIELab(76, 21, 80)" }, { ColorRepresentationType.CIEXYZ, "CIE XYZ - xyz(56, 50, 7)" }, { ColorRepresentationType.VEC4, "VEC4 - (1.0f, 0.7f, 0f, 1f)" }, { ColorRepresentationType.DecimalValue, "Decimal - 16755200" }, }; GeneralSettingsConfig = settingsRepository.SettingsConfig; _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); if (_settingsUtils.SettingsExists(ColorPickerSettings.ModuleName)) { _colorPickerSettings = _settingsUtils.GetSettingsOrDefault <ColorPickerSettings>(ColorPickerSettings.ModuleName); } else { _colorPickerSettings = new ColorPickerSettings(); } _isEnabled = GeneralSettingsConfig.Enabled.ColorPicker; // set the callback functions value to hangle outgoing IPC message. SendConfigMSG = ipcMSGCallBackFunc; _delayedTimer = new Timer(); _delayedTimer.Interval = SaveSettingsDelayInMs; _delayedTimer.Elapsed += DelayedTimer_Tick; _delayedTimer.AutoReset = false; InitializeColorFormats(); }
public ColorPickerViewModel() { if (SettingsUtils.SettingsExists(ColorPickerSettings.ModuleName)) { _colorPickerSettings = SettingsUtils.GetSettings <ColorPickerSettings>(ColorPickerSettings.ModuleName); } else { _colorPickerSettings = new ColorPickerSettings(); } if (SettingsUtils.SettingsExists()) { var generalSettings = SettingsUtils.GetSettings <GeneralSettings>(); _isEnabled = generalSettings.Enabled.ColorPicker; } }
public ColorPickerViewModel(Func <string, int> ipcMSGCallBackFunc) { if (SettingsUtils.SettingsExists(ColorPickerSettings.ModuleName)) { _colorPickerSettings = SettingsUtils.GetSettings <ColorPickerSettings>(ColorPickerSettings.ModuleName); } else { _colorPickerSettings = new ColorPickerSettings(); } if (SettingsUtils.SettingsExists()) { var generalSettings = SettingsUtils.GetSettings <GeneralSettings>(); _isEnabled = generalSettings.Enabled.ColorPicker; } // set the callback functions value to hangle outgoing IPC message. SendConfigMSG = ipcMSGCallBackFunc; }
public ColorPickerViewModel(ISettingsUtils settingsUtils, Func <string, int> ipcMSGCallBackFunc) { _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); if (_settingsUtils.SettingsExists(ColorPickerSettings.ModuleName)) { _colorPickerSettings = _settingsUtils.GetSettings <ColorPickerSettings>(ColorPickerSettings.ModuleName); } else { _colorPickerSettings = new ColorPickerSettings(); } if (_settingsUtils.SettingsExists()) { var generalSettings = _settingsUtils.GetSettings <GeneralSettings>(); _isEnabled = generalSettings.Enabled.ColorPicker; } // set the callback functions value to hangle outgoing IPC message. SendConfigMSG = ipcMSGCallBackFunc; }
public ColorPickerViewModel(ISettingsUtils settingsUtils, ISettingsRepository <GeneralSettings> settingsRepository, Func <string, int> ipcMSGCallBackFunc) { // Obtain the general PowerToy settings configurations if (settingsRepository == null) { throw new ArgumentNullException(nameof(settingsRepository)); } SelectableColorRepresentations = new Dictionary <ColorRepresentationType, string> { { ColorRepresentationType.CMYK, "CMYK - cmyk(100%, 50%, 75%, 0%)" }, { ColorRepresentationType.HEX, "HEX - #FFAA00" }, { ColorRepresentationType.HSB, "HSB - hsb(100, 50%, 75%)" }, { ColorRepresentationType.HSI, "HSI - hsi(100, 50%, 75%)" }, { ColorRepresentationType.HSL, "HSL - hsl(100, 50%, 75%)" }, { ColorRepresentationType.HSV, "HSV - hsv(100, 50%, 75%)" }, { ColorRepresentationType.HWB, "HWB - hwb(100, 50%, 75%)" }, { ColorRepresentationType.NCol, "NCol - R10, 50%, 75%" }, { ColorRepresentationType.RGB, "RGB - rgb(100, 50, 75)" }, }; GeneralSettingsConfig = settingsRepository.SettingsConfig; _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); if (_settingsUtils.SettingsExists(ColorPickerSettings.ModuleName)) { _colorPickerSettings = _settingsUtils.GetSettings <ColorPickerSettings>(ColorPickerSettings.ModuleName); } else { _colorPickerSettings = new ColorPickerSettings(); } _isEnabled = GeneralSettingsConfig.Enabled.ColorPicker; // set the callback functions value to hangle outgoing IPC message. SendConfigMSG = ipcMSGCallBackFunc; }
private void LoadSettingsFromJson() { // TODO this IO call should by Async, update GetFileWatcher helper to support async lock (_loadingSettingsLock) { { var retry = true; var retryCount = 0; while (retry) { try { retryCount++; if (!_settingsUtils.SettingsExists(ColorPickerModuleName)) { Logger.LogInfo("ColorPicker settings.json was missing, creating a new one"); var defaultColorPickerSettings = new ColorPickerSettings(); defaultColorPickerSettings.Save(_settingsUtils); } var settings = _settingsUtils.GetSettingsOrDefault <ColorPickerSettings>(ColorPickerModuleName); if (settings != null) { ChangeCursor.Value = settings.Properties.ChangeCursor; ActivationShortcut.Value = settings.Properties.ActivationShortcut.ToString(); CopiedColorRepresentation.Value = settings.Properties.CopiedColorRepresentation; ActivationAction.Value = settings.Properties.ActivationAction; ColorHistoryLimit.Value = settings.Properties.ColorHistoryLimit; ShowColorName.Value = settings.Properties.ShowColorName; if (settings.Properties.ColorHistory == null) { settings.Properties.ColorHistory = new System.Collections.Generic.List <string>(); } _loadingColorsHistory = true; ColorHistory.Clear(); foreach (var item in settings.Properties.ColorHistory) { ColorHistory.Add(item); } _loadingColorsHistory = false; VisibleColorFormats.Clear(); foreach (var item in settings.Properties.VisibleColorFormats) { if (item.Value) { VisibleColorFormats.Add(item.Key); } } } retry = false; } catch (IOException ex) { if (retryCount > MaxNumberOfRetry) { retry = false; } Logger.LogError("Failed to read changed settings", ex); Thread.Sleep(500); } catch (Exception ex) { if (retryCount > MaxNumberOfRetry) { retry = false; } Logger.LogError("Failed to read changed settings", ex); Thread.Sleep(500); } } } } }
public ColorPicker(ColorPickerSettings settings, ViewContext context, IViewDataContainer viewDataContainer) : base(settings, context, viewDataContainer) { }
public ColorPicker(ColorPickerSettings settings) : base(settings) { }