From 288b6616112e0941bbcde5b98c2d3a6e768679ac Mon Sep 17 00:00:00 2001 From: FelixSe Date: Sun, 26 May 2019 21:34:35 +0200 Subject: [PATCH] Consolidate RadioButton bindings --- .../Settings/GeneralPageViewModel.cs | 36 ++++++------------- .../Settings/MousePageViewModel.cs | 31 +++++----------- .../Settings/TerminalPageViewModel.cs | 28 +++++---------- .../ShellProfileViewModel.cs | 25 +++---------- FluentTerminal.App/Views/MainPage.xaml | 16 +++------ .../Views/TerminalColorPicker.xaml.cs | 1 - 6 files changed, 36 insertions(+), 101 deletions(-) diff --git a/FluentTerminal.App.ViewModels/Settings/GeneralPageViewModel.cs b/FluentTerminal.App.ViewModels/Settings/GeneralPageViewModel.cs index 05688bc..025994e 100644 --- a/FluentTerminal.App.ViewModels/Settings/GeneralPageViewModel.cs +++ b/FluentTerminal.App.ViewModels/Settings/GeneralPageViewModel.cs @@ -1,6 +1,5 @@ using FluentTerminal.App.Services; using FluentTerminal.App.Services.Utilities; -using FluentTerminal.App.ViewModels.Infrastructure; using FluentTerminal.Models; using FluentTerminal.Models.Enums; using GalaSoft.MvvmLight; @@ -18,9 +17,6 @@ namespace FluentTerminal.App.ViewModels.Settings private readonly ISettingsService _settingsService; private readonly IStartupTaskService _startupTaskService; private bool _canEnableStartupTask; - private bool _editingNewTerminalLocation; - private bool _editingTabsPosition; - private bool _editingInactiveTabColorMode; private bool _startupTaskEnabled; private bool _shouldRestartForTrayMessage; private string _startupTaskErrorMessage; @@ -133,7 +129,7 @@ namespace FluentTerminal.App.ViewModels.Settings public bool BottomIsSelected { get => TabsPosition == TabsPosition.Bottom; - set => TabsPosition = TabsPosition.Bottom; + set { if (value) TabsPosition = TabsPosition.Bottom; } } public bool CanEnableStartupTask @@ -175,15 +171,11 @@ namespace FluentTerminal.App.ViewModels.Settings get => _applicationSettings.NewTerminalLocation; set { - if (_applicationSettings.NewTerminalLocation != value && !_editingNewTerminalLocation) + if (_applicationSettings.NewTerminalLocation != value) { - _editingNewTerminalLocation = true; _applicationSettings.NewTerminalLocation = value; _settingsService.SaveApplicationSettings(_applicationSettings); RaisePropertyChanged(); - RaisePropertyChanged(nameof(WindowIsSelected)); - RaisePropertyChanged(nameof(TabIsSelected)); - _editingNewTerminalLocation = false; } } } @@ -213,7 +205,7 @@ namespace FluentTerminal.App.ViewModels.Settings public bool TabIsSelected { get => NewTerminalLocation == NewTerminalLocation.Tab; - set => NewTerminalLocation = NewTerminalLocation.Tab; + set { if (value) NewTerminalLocation = NewTerminalLocation.Tab; } } public TabsPosition TabsPosition @@ -221,15 +213,11 @@ namespace FluentTerminal.App.ViewModels.Settings get => _applicationSettings.TabsPosition; set { - if (_applicationSettings.TabsPosition != value && !_editingTabsPosition) + if (_applicationSettings.TabsPosition != value) { - _editingTabsPosition = true; _applicationSettings.TabsPosition = value; _settingsService.SaveApplicationSettings(_applicationSettings); RaisePropertyChanged(); - RaisePropertyChanged(nameof(TopIsSelected)); - RaisePropertyChanged(nameof(BottomIsSelected)); - _editingTabsPosition = false; } } } @@ -237,7 +225,7 @@ namespace FluentTerminal.App.ViewModels.Settings public bool TopIsSelected { get => TabsPosition == TabsPosition.Top; - set => TabsPosition = TabsPosition.Top; + set { if (value) TabsPosition = TabsPosition.Top; } } public bool UnderlineSelectedTab @@ -257,13 +245,13 @@ namespace FluentTerminal.App.ViewModels.Settings public bool BackgroundIsSelected { get => InactiveTabColorMode == InactiveTabColorMode.Background; - set => InactiveTabColorMode = InactiveTabColorMode.Background; + set { if (value) InactiveTabColorMode = InactiveTabColorMode.Background; } } public bool UnderlinedIsSelected { get => InactiveTabColorMode == InactiveTabColorMode.Underlined; - set => InactiveTabColorMode = InactiveTabColorMode.Underlined; + set { if (value) InactiveTabColorMode = InactiveTabColorMode.Underlined; } } public InactiveTabColorMode InactiveTabColorMode @@ -271,15 +259,11 @@ namespace FluentTerminal.App.ViewModels.Settings get => _applicationSettings.InactiveTabColorMode; set { - if (_applicationSettings.InactiveTabColorMode != value && !_editingInactiveTabColorMode) + if (_applicationSettings.InactiveTabColorMode != value) { - _editingInactiveTabColorMode = true; _applicationSettings.InactiveTabColorMode = value; _settingsService.SaveApplicationSettings(_applicationSettings); RaisePropertyChanged(); - RaisePropertyChanged(nameof(BackgroundIsSelected)); - RaisePropertyChanged(nameof(UnderlinedIsSelected)); - _editingInactiveTabColorMode = false; } } } @@ -287,7 +271,7 @@ namespace FluentTerminal.App.ViewModels.Settings public bool WindowIsSelected { get => NewTerminalLocation == NewTerminalLocation.Window; - set => NewTerminalLocation = NewTerminalLocation.Window; + set { if (value) NewTerminalLocation = NewTerminalLocation.Window; } } private async Task RestoreDefaults() @@ -348,7 +332,7 @@ namespace FluentTerminal.App.ViewModels.Settings } else { - _startupTaskService.DisableStartupTask(); + await _startupTaskService.DisableStartupTask(); status = await _startupTaskService.GetStatus(); } SetStartupTaskPropertiesForStatus(status); diff --git a/FluentTerminal.App.ViewModels/Settings/MousePageViewModel.cs b/FluentTerminal.App.ViewModels/Settings/MousePageViewModel.cs index 6b33e37..faa2d60 100644 --- a/FluentTerminal.App.ViewModels/Settings/MousePageViewModel.cs +++ b/FluentTerminal.App.ViewModels/Settings/MousePageViewModel.cs @@ -4,9 +4,6 @@ using FluentTerminal.Models; using FluentTerminal.Models.Enums; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; -using System; -using System.Collections.Generic; -using System.Text; using System.Threading.Tasks; namespace FluentTerminal.App.ViewModels.Settings @@ -17,8 +14,6 @@ namespace FluentTerminal.App.ViewModels.Settings private readonly IDialogService _dialogService; private readonly IDefaultValueProvider _defaultValueProvider; private readonly ApplicationSettings _applicationSettings; - private bool _editingMouseRightClickAction; - private bool _editingMouseMiddleClickAction; public MousePageViewModel(ISettingsService settingsService, IDialogService dialogService, IDefaultValueProvider defaultValueProvider) { @@ -49,16 +44,11 @@ namespace FluentTerminal.App.ViewModels.Settings get => _applicationSettings.MouseRightClickAction; set { - if (_applicationSettings.MouseRightClickAction != value && !_editingMouseRightClickAction) + if (_applicationSettings.MouseRightClickAction != value) { - _editingMouseRightClickAction = true; _applicationSettings.MouseRightClickAction = value; _settingsService.SaveApplicationSettings(_applicationSettings); RaisePropertyChanged(); - RaisePropertyChanged(nameof(MouseRightClickNoneIsSelected)); - RaisePropertyChanged(nameof(MouseRightClickContextMenuIsSelected)); - RaisePropertyChanged(nameof(MouseRightClickPasteIsSelected)); - _editingMouseRightClickAction = false; } } } @@ -66,19 +56,19 @@ namespace FluentTerminal.App.ViewModels.Settings public bool MouseRightClickNoneIsSelected { get => MouseRightClickAction == MouseAction.None; - set => MouseRightClickAction = MouseAction.None; + set { if (value) MouseRightClickAction = MouseAction.None; } } public bool MouseRightClickContextMenuIsSelected { get => MouseRightClickAction == MouseAction.ContextMenu; - set => MouseRightClickAction = MouseAction.ContextMenu; + set { if (value) MouseRightClickAction = MouseAction.ContextMenu; } } public bool MouseRightClickPasteIsSelected { get => MouseRightClickAction == MouseAction.Paste; - set => MouseRightClickAction = MouseAction.Paste; + set { if (value) MouseRightClickAction = MouseAction.Paste; } } public MouseAction MouseMiddleClickAction @@ -86,16 +76,11 @@ namespace FluentTerminal.App.ViewModels.Settings get => _applicationSettings.MouseMiddleClickAction; set { - if (_applicationSettings.MouseMiddleClickAction != value && !_editingMouseMiddleClickAction) + if (_applicationSettings.MouseMiddleClickAction != value) { - _editingMouseMiddleClickAction = true; _applicationSettings.MouseMiddleClickAction = value; _settingsService.SaveApplicationSettings(_applicationSettings); RaisePropertyChanged(); - RaisePropertyChanged(nameof(MouseMiddleClickNoneIsSelected)); - RaisePropertyChanged(nameof(MouseMiddleClickContextMenuIsSelected)); - RaisePropertyChanged(nameof(MouseMiddleClickPasteIsSelected)); - _editingMouseMiddleClickAction = false; } } } @@ -103,19 +88,19 @@ namespace FluentTerminal.App.ViewModels.Settings public bool MouseMiddleClickNoneIsSelected { get => MouseMiddleClickAction == MouseAction.None; - set => MouseMiddleClickAction = MouseAction.None; + set { if (value) MouseMiddleClickAction = MouseAction.None; } } public bool MouseMiddleClickContextMenuIsSelected { get => MouseMiddleClickAction == MouseAction.ContextMenu; - set => MouseMiddleClickAction = MouseAction.ContextMenu; + set { if (value) MouseMiddleClickAction = MouseAction.ContextMenu; } } public bool MouseMiddleClickPasteIsSelected { get => MouseMiddleClickAction == MouseAction.Paste; - set => MouseMiddleClickAction = MouseAction.Paste; + set { if (value) MouseMiddleClickAction = MouseAction.Paste; } } public RelayCommand RestoreDefaultsCommand { get; } diff --git a/FluentTerminal.App.ViewModels/Settings/TerminalPageViewModel.cs b/FluentTerminal.App.ViewModels/Settings/TerminalPageViewModel.cs index 7fefb28..271d6fe 100644 --- a/FluentTerminal.App.ViewModels/Settings/TerminalPageViewModel.cs +++ b/FluentTerminal.App.ViewModels/Settings/TerminalPageViewModel.cs @@ -16,43 +16,41 @@ namespace FluentTerminal.App.ViewModels.Settings private readonly ISettingsService _settingsService; private readonly IDialogService _dialogService; private readonly IDefaultValueProvider _defaultValueProvider; - private bool _isEditingCursorStyle; - private bool _isEditingScrollBarStyle; public bool BarIsSelected { get => CursorStyle == CursorStyle.Bar; - set => CursorStyle = CursorStyle.Bar; + set { if (value) CursorStyle = CursorStyle.Bar; } } public bool BlockIsSelected { get => CursorStyle == CursorStyle.Block; - set => CursorStyle = CursorStyle.Block; + set { if (value) CursorStyle = CursorStyle.Block; } } public bool UnderlineIsSelected { get => CursorStyle == CursorStyle.Underline; - set => CursorStyle = CursorStyle.Underline; + set { if (value) CursorStyle = CursorStyle.Underline; } } public bool HiddenIsSelected { get => ScrollBarStyle == ScrollBarStyle.Hidden; - set => ScrollBarStyle = ScrollBarStyle.Hidden; + set { if (value) ScrollBarStyle = ScrollBarStyle.Hidden; } } public bool AutoHidingIsSelected { get => ScrollBarStyle == ScrollBarStyle.AutoHiding; - set => ScrollBarStyle = ScrollBarStyle.AutoHiding; + set { if (value) ScrollBarStyle = ScrollBarStyle.AutoHiding; } } public bool VisibleIsSelected { get => ScrollBarStyle == ScrollBarStyle.Visible; - set => ScrollBarStyle = ScrollBarStyle.Visible; + set { if (value) ScrollBarStyle = ScrollBarStyle.Visible; } } public bool CursorBlink @@ -190,16 +188,11 @@ namespace FluentTerminal.App.ViewModels.Settings get => _terminalOptions.CursorStyle; set { - if (_terminalOptions.CursorStyle != value && !_isEditingCursorStyle) + if (_terminalOptions.CursorStyle != value) { - _isEditingCursorStyle = true; _terminalOptions.CursorStyle = value; _settingsService.SaveTerminalOptions(_terminalOptions); RaisePropertyChanged(); - RaisePropertyChanged(nameof(BlockIsSelected)); - RaisePropertyChanged(nameof(BarIsSelected)); - RaisePropertyChanged(nameof(UnderlineIsSelected)); - _isEditingCursorStyle = false; } } } @@ -209,16 +202,11 @@ namespace FluentTerminal.App.ViewModels.Settings get => _terminalOptions.ScrollBarStyle; set { - if (_terminalOptions.ScrollBarStyle != value && !_isEditingScrollBarStyle) + if (_terminalOptions.ScrollBarStyle != value) { - _isEditingScrollBarStyle = true; _terminalOptions.ScrollBarStyle = value; _settingsService.SaveTerminalOptions(_terminalOptions); RaisePropertyChanged(); - RaisePropertyChanged(nameof(HiddenIsSelected)); - RaisePropertyChanged(nameof(AutoHidingIsSelected)); - RaisePropertyChanged(nameof(VisibleIsSelected)); - _isEditingScrollBarStyle = false; } } } diff --git a/FluentTerminal.App.ViewModels/ShellProfileViewModel.cs b/FluentTerminal.App.ViewModels/ShellProfileViewModel.cs index e64bbc9..3d1307c 100644 --- a/FluentTerminal.App.ViewModels/ShellProfileViewModel.cs +++ b/FluentTerminal.App.ViewModels/ShellProfileViewModel.cs @@ -214,41 +214,26 @@ namespace FluentTerminal.App.ViewModels public bool DoNotModifyIsSelected { get => LineEndingStyle == LineEndingStyle.DoNotModify; - set { if (value) - { - LineEndingStyle = LineEndingStyle.DoNotModify; - } + set { if (value) { LineEndingStyle = LineEndingStyle.DoNotModify; } } } public bool ToCRLFIsSelected { get => LineEndingStyle == LineEndingStyle.ToCRLF; - set { if (value) - { - LineEndingStyle = LineEndingStyle.ToCRLF; - } - } + set { if (value) LineEndingStyle = LineEndingStyle.ToCRLF; } } public bool ToLFIsSelected { get => LineEndingStyle == LineEndingStyle.ToLF; - set { if (value) - { - LineEndingStyle = LineEndingStyle.ToLF; - } - } + set { if (value) LineEndingStyle = LineEndingStyle.ToLF; } } public bool ToCRIsSelected { get => LineEndingStyle == LineEndingStyle.ToCR; - set { if (value) - { - LineEndingStyle = LineEndingStyle.ToCR; - } - } + set { if (value) { LineEndingStyle = LineEndingStyle.ToCR; } } } public void SaveChanges() @@ -259,7 +244,7 @@ namespace FluentTerminal.App.ViewModels Model.WorkingDirectory = WorkingDirectory; Model.TabThemeId = SelectedTabTheme.Id; Model.TerminalThemeId = SelectedTerminalTheme.Id; - Model.LineEndingTranslation = _lineEndingStyle; + Model.LineEndingTranslation = LineEndingStyle; Model.UseConPty = UseConPty; Model.KeyBindings = KeyBindings.KeyBindings.Select(x => x.Model).ToList(); _settingsService.SaveShellProfile(Model); diff --git a/FluentTerminal.App/Views/MainPage.xaml b/FluentTerminal.App/Views/MainPage.xaml index af48ccf..71eb522 100644 --- a/FluentTerminal.App/Views/MainPage.xaml +++ b/FluentTerminal.App/Views/MainPage.xaml @@ -47,30 +47,24 @@ - + - + - + - +