/// <summary> /// Initializes a new instance of the <see cref="SettingsViewModel"/> class. /// </summary> public SettingsViewModel() { this.SaveChangesCommand = new RelayCommand((o) => this.SaveChanges()); this.SettingsCopy = JsonUtils.Clone(ApplicationManager.Settings); this.Extensions = new List <ExtensionViewModel>(); foreach (var extension in ApplicationManager.Extensions) { var viewModel = new ExtensionViewModel(this) { Extension = extension }; foreach (var action in extension.Actions) { var assignedHotKey = ApplicationManager.HotKeys.FirstOrDefault(hk => hk.Extension == extension && hk.Action == action); var extensionAction = new ExtensionActionViewModel(viewModel) { Action = action, AssignedHotKey = assignedHotKey, Extension = extension }; viewModel.Actions.Add(extensionAction); } this.Extensions.Add(viewModel); } this.SelectedExtension = this.Extensions.FirstOrDefault(); this.Themes = WindowManager.Themes; this.Accents = WindowManager.Accents; this.SelectedTheme = this.Themes.FirstOrDefault(t => t.DirectoryName == this.SettingsCopy.Theme); }
/// <summary> /// Initializes a new instance of the <see cref="ExtensionActionViewModel"/> class. /// </summary> /// <param name="extensionViewModel">The extension view model.</param> public ExtensionActionViewModel(ExtensionViewModel extensionViewModel) { this.selectedFirstModifierKey = this.selectedSecondModifierKey = Enum.GetName(typeof(HotKeyModifier), HotKeyModifier.None); this.selectedKey = Enum.GetName(typeof(HotKey), HotKey.None); this.ExtensionViewModel = extensionViewModel; }