Skip to content

Commit b7f0ab3

Browse files
Merge pull request #3298 from tom-englert/dev/WpfRefactoring
Dev/wpf refactoring
2 parents f66ccea + 91dbea2 commit b7f0ab3

File tree

3 files changed

+25
-17
lines changed

3 files changed

+25
-17
lines changed

ILSpy/AssemblyTree/AssemblyTreeModel.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,12 @@ private void LoadAssemblies(IEnumerable<string> fileNames, List<LoadedAssembly>?
716716

717717
private void TreeView_SelectionChanged()
718718
{
719-
if (SelectedItems.Length > 0)
719+
if (SelectedItems.Length <= 0)
720+
{
721+
// To cancel any pending decompilation requests and show an empty tab
722+
DecompileSelectedNodes();
723+
}
724+
else
720725
{
721726
var activeTabPage = DockWorkspace.Instance.ActiveTabPage;
722727

ILSpy/TextView/DecompilerTextView.cs

+19-15
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ namespace ICSharpCode.ILSpy.TextView
7272
/// Manages the TextEditor showing the decompiled code.
7373
/// Contains all the threading logic that makes the decompiler work in the background.
7474
/// </summary>
75-
public sealed partial class DecompilerTextView : UserControl, IDisposable, IHaveState, IProgress<DecompilationProgress>
75+
public sealed partial class DecompilerTextView : UserControl, IHaveState, IProgress<DecompilationProgress>
7676
{
7777
readonly ReferenceElementGenerator referenceElementGenerator;
7878
readonly UIElementGenerator uiElementGenerator;
@@ -125,7 +125,8 @@ public DecompilerTextView()
125125
textEditor.TextArea.TextView.BackgroundRenderers.Add(textMarkerService);
126126
textEditor.TextArea.TextView.LineTransformers.Add(textMarkerService);
127127
textEditor.ShowLineNumbers = true;
128-
SettingsService.Instance.DisplaySettings.PropertyChanged += CurrentDisplaySettings_PropertyChanged;
128+
129+
MessageBus<SettingsChangedEventArgs>.Subscribers += Settings_Changed;
129130

130131
// SearchPanel
131132
SearchPanel searchPanel = SearchPanel.Install(textEditor.TextArea);
@@ -179,15 +180,24 @@ void RemoveEditCommand(RoutedUICommand command)
179180

180181
#region Line margin
181182

182-
void CurrentDisplaySettings_PropertyChanged(object? sender, PropertyChangedEventArgs e)
183+
private void Settings_Changed(object? sender, SettingsChangedEventArgs e)
183184
{
184-
if (e.PropertyName == nameof(DisplaySettings.ShowLineNumbers))
185-
{
186-
ShowLineMargin();
187-
}
188-
else if (e.PropertyName == nameof(DisplaySettings.HighlightCurrentLine))
185+
Settings_PropertyChanged(sender, e);
186+
}
187+
188+
private void Settings_PropertyChanged(object? sender, PropertyChangedEventArgs e)
189+
{
190+
if (sender is not DisplaySettings)
191+
return;
192+
193+
switch (e.PropertyName)
189194
{
190-
SetHighlightCurrentLine();
195+
case nameof(DisplaySettings.ShowLineNumbers):
196+
ShowLineMargin();
197+
break;
198+
case nameof(DisplaySettings.HighlightCurrentLine):
199+
SetHighlightCurrentLine();
200+
break;
191201
}
192202
}
193203

@@ -1286,12 +1296,6 @@ public static void RegisterHighlighting()
12861296
HighlightingManager.Instance.RegisterHighlighting("xml", new[] { ".xml", ".baml" }, "XML-Mode");
12871297
}
12881298

1289-
1290-
public void Dispose()
1291-
{
1292-
SettingsService.Instance.DisplaySettings.PropertyChanged -= CurrentDisplaySettings_PropertyChanged;
1293-
}
1294-
12951299
#region Unfold
12961300
public void UnfoldAndScroll(int lineNumber)
12971301
{

ILSpy/TextView/DecompilerTextView.xaml

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
xmlns:editing="clr-namespace:ICSharpCode.AvalonEdit.Editing;assembly=ICSharpCode.AvalonEdit"
88
xmlns:folding="clr-namespace:ICSharpCode.AvalonEdit.Folding;assembly=ICSharpCode.AvalonEdit"
99
xmlns:styles="urn:TomsToolbox.Wpf.Styles"
10-
xmlns:toms="urn:TomsToolbox"
1110
xmlns:themes="clr-namespace:ICSharpCode.ILSpy.Themes">
1211
<UserControl.Resources>
1312
<SolidColorBrush x:Key="waitAdornerBackgoundBrush" Color="{DynamicResource {x:Static SystemColors.WindowColorKey}}" Opacity=".75" />

0 commit comments

Comments
 (0)