Browse Source

Merge pull request #3298 from tom-englert/dev/WpfRefactoring

Dev/wpf refactoring
pull/3299/head
Siegfried Pammer 7 months ago committed by GitHub
parent
commit
b7f0ab3bcd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 7
      ILSpy/AssemblyTree/AssemblyTreeModel.cs
  2. 34
      ILSpy/TextView/DecompilerTextView.cs
  3. 1
      ILSpy/TextView/DecompilerTextView.xaml

7
ILSpy/AssemblyTree/AssemblyTreeModel.cs

@ -716,7 +716,12 @@ namespace ICSharpCode.ILSpy.AssemblyTree
private void TreeView_SelectionChanged() private void TreeView_SelectionChanged()
{ {
if (SelectedItems.Length > 0) if (SelectedItems.Length <= 0)
{
// To cancel any pending decompilation requests and show an empty tab
DecompileSelectedNodes();
}
else
{ {
var activeTabPage = DockWorkspace.Instance.ActiveTabPage; var activeTabPage = DockWorkspace.Instance.ActiveTabPage;

34
ILSpy/TextView/DecompilerTextView.cs

@ -72,7 +72,7 @@ namespace ICSharpCode.ILSpy.TextView
/// Manages the TextEditor showing the decompiled code. /// Manages the TextEditor showing the decompiled code.
/// Contains all the threading logic that makes the decompiler work in the background. /// Contains all the threading logic that makes the decompiler work in the background.
/// </summary> /// </summary>
public sealed partial class DecompilerTextView : UserControl, IDisposable, IHaveState, IProgress<DecompilationProgress> public sealed partial class DecompilerTextView : UserControl, IHaveState, IProgress<DecompilationProgress>
{ {
readonly ReferenceElementGenerator referenceElementGenerator; readonly ReferenceElementGenerator referenceElementGenerator;
readonly UIElementGenerator uiElementGenerator; readonly UIElementGenerator uiElementGenerator;
@ -125,7 +125,8 @@ namespace ICSharpCode.ILSpy.TextView
textEditor.TextArea.TextView.BackgroundRenderers.Add(textMarkerService); textEditor.TextArea.TextView.BackgroundRenderers.Add(textMarkerService);
textEditor.TextArea.TextView.LineTransformers.Add(textMarkerService); textEditor.TextArea.TextView.LineTransformers.Add(textMarkerService);
textEditor.ShowLineNumbers = true; textEditor.ShowLineNumbers = true;
SettingsService.Instance.DisplaySettings.PropertyChanged += CurrentDisplaySettings_PropertyChanged;
MessageBus<SettingsChangedEventArgs>.Subscribers += Settings_Changed;
// SearchPanel // SearchPanel
SearchPanel searchPanel = SearchPanel.Install(textEditor.TextArea); SearchPanel searchPanel = SearchPanel.Install(textEditor.TextArea);
@ -179,15 +180,24 @@ namespace ICSharpCode.ILSpy.TextView
#region Line margin #region Line margin
void CurrentDisplaySettings_PropertyChanged(object? sender, PropertyChangedEventArgs e) private void Settings_Changed(object? sender, SettingsChangedEventArgs e)
{ {
if (e.PropertyName == nameof(DisplaySettings.ShowLineNumbers)) Settings_PropertyChanged(sender, e);
{ }
ShowLineMargin();
} private void Settings_PropertyChanged(object? sender, PropertyChangedEventArgs e)
else if (e.PropertyName == nameof(DisplaySettings.HighlightCurrentLine)) {
if (sender is not DisplaySettings)
return;
switch (e.PropertyName)
{ {
SetHighlightCurrentLine(); case nameof(DisplaySettings.ShowLineNumbers):
ShowLineMargin();
break;
case nameof(DisplaySettings.HighlightCurrentLine):
SetHighlightCurrentLine();
break;
} }
} }
@ -1286,12 +1296,6 @@ namespace ICSharpCode.ILSpy.TextView
HighlightingManager.Instance.RegisterHighlighting("xml", new[] { ".xml", ".baml" }, "XML-Mode"); HighlightingManager.Instance.RegisterHighlighting("xml", new[] { ".xml", ".baml" }, "XML-Mode");
} }
public void Dispose()
{
SettingsService.Instance.DisplaySettings.PropertyChanged -= CurrentDisplaySettings_PropertyChanged;
}
#region Unfold #region Unfold
public void UnfoldAndScroll(int lineNumber) public void UnfoldAndScroll(int lineNumber)
{ {

1
ILSpy/TextView/DecompilerTextView.xaml

@ -7,7 +7,6 @@
xmlns:editing="clr-namespace:ICSharpCode.AvalonEdit.Editing;assembly=ICSharpCode.AvalonEdit" xmlns:editing="clr-namespace:ICSharpCode.AvalonEdit.Editing;assembly=ICSharpCode.AvalonEdit"
xmlns:folding="clr-namespace:ICSharpCode.AvalonEdit.Folding;assembly=ICSharpCode.AvalonEdit" xmlns:folding="clr-namespace:ICSharpCode.AvalonEdit.Folding;assembly=ICSharpCode.AvalonEdit"
xmlns:styles="urn:TomsToolbox.Wpf.Styles" xmlns:styles="urn:TomsToolbox.Wpf.Styles"
xmlns:toms="urn:TomsToolbox"
xmlns:themes="clr-namespace:ICSharpCode.ILSpy.Themes"> xmlns:themes="clr-namespace:ICSharpCode.ILSpy.Themes">
<UserControl.Resources> <UserControl.Resources>
<SolidColorBrush x:Key="waitAdornerBackgoundBrush" Color="{DynamicResource {x:Static SystemColors.WindowColorKey}}" Opacity=".75" /> <SolidColorBrush x:Key="waitAdornerBackgoundBrush" Color="{DynamicResource {x:Static SystemColors.WindowColorKey}}" Opacity=".75" />

Loading…
Cancel
Save