From 8b24af07ff7af167c66910d0905ab4228128de52 Mon Sep 17 00:00:00 2001 From: Benjamin Popp Date: Sat, 9 Feb 2019 21:25:18 -0600 Subject: [PATCH] rename paste to paste / replace, since it does an overwrite fix a crash when using goto from the search results tab fix goto not working on a tab if you get to that tab by closing the selected tab --- src/HexManiac.Core/ViewModels/EditorViewModel.cs | 11 ++++++++--- src/HexManiac.Core/ViewModels/GotoControlViewModel.cs | 2 +- src/HexManiac.WPF/Windows/MainWindow.xaml | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/HexManiac.Core/ViewModels/EditorViewModel.cs b/src/HexManiac.Core/ViewModels/EditorViewModel.cs index 93ac9de3..12cd149a 100644 --- a/src/HexManiac.Core/ViewModels/EditorViewModel.cs +++ b/src/HexManiac.Core/ViewModels/EditorViewModel.cs @@ -164,9 +164,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { if (TryUpdate(ref selectedIndex, value)) { findPrevious.CanExecuteChanged.Invoke(findPrevious, EventArgs.Empty); findNext.CanExecuteChanged.Invoke(findNext, EventArgs.Empty); - GotoViewModel.PropertyChanged -= GotoPropertyChanged; - GotoViewModel = new GotoControlViewModel(SelectedTab); - GotoViewModel.PropertyChanged += GotoPropertyChanged; + UpdateGotoViewModel(); } } } @@ -407,6 +405,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { if (selectedIndex == tabs.Count) TryUpdate(ref selectedIndex, tabs.Count - 1, nameof(SelectedIndex)); CollectionChanged?.Invoke(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, tab, index)); } + UpdateGotoViewModel(); return; } @@ -448,6 +447,12 @@ namespace HavenSoft.HexManiac.Core.ViewModels { } } + private void UpdateGotoViewModel() { + GotoViewModel.PropertyChanged -= GotoPropertyChanged; + GotoViewModel = new GotoControlViewModel(SelectedTab); + GotoViewModel.PropertyChanged += GotoPropertyChanged; + } + private void ForwardDelayedWork(object sender, Action e) => RequestDelayedWork?.Invoke(this, e); private void TabPropertyChanged(object sender, PropertyChangedEventArgs e) { diff --git a/src/HexManiac.Core/ViewModels/GotoControlViewModel.cs b/src/HexManiac.Core/ViewModels/GotoControlViewModel.cs index c49a21e2..98b28821 100644 --- a/src/HexManiac.Core/ViewModels/GotoControlViewModel.cs +++ b/src/HexManiac.Core/ViewModels/GotoControlViewModel.cs @@ -25,7 +25,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { set { if (viewPort == null) return; if (TryUpdate(ref text, value)) { - var options = viewPort.Model.GetAutoCompleteAnchorNameOptions(text); + var options = viewPort.Model?.GetAutoCompleteAnchorNameOptions(text) ?? new string[0]; AutoCompleteOptions = CreateAutoCompleteOptions(options, options.Count); ShowAutoCompleteOptions = AutoCompleteOptions.Count > 0; } diff --git a/src/HexManiac.WPF/Windows/MainWindow.xaml b/src/HexManiac.WPF/Windows/MainWindow.xaml index caa2bb66..4a226a1d 100644 --- a/src/HexManiac.WPF/Windows/MainWindow.xaml +++ b/src/HexManiac.WPF/Windows/MainWindow.xaml @@ -182,7 +182,7 @@ - +