Browse Source

UI Optimization: Open last selected tree node, after tree is initialized

pull/992/head
Siegfried Pammer 8 years ago
parent
commit
33da657a58
  1. 24
      ILSpy/MainWindow.xaml.cs

24
ILSpy/MainWindow.xaml.cs

@ -328,30 +328,28 @@ namespace ICSharpCode.ILSpy
} }
void MainWindow_Loaded(object sender, RoutedEventArgs e) void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(InitializeAssemblyListAndOpenAssemblies));
}
void InitializeAssemblyListAndOpenAssemblies()
{ {
ILSpySettings spySettings = this.spySettings; ILSpySettings spySettings = this.spySettings;
this.spySettings = null; this.spySettings = null;
// Load AssemblyList only in Loaded event so that WPF is initialized before we start the CPU-heavy stuff. // Load AssemblyList only in Loaded event so that WPF is initialized before we start the CPU-heavy stuff.
// This makes the UI come up a bit faster. // This makes the UI come up a bit faster.
this.assemblyList = assemblyListManager.LoadList(spySettings, sessionSettings.ActiveAssemblyList); this.assemblyList = assemblyListManager.LoadList(spySettings, sessionSettings.ActiveAssemblyList);
HandleCommandLineArguments(App.CommandLineArguments); HandleCommandLineArguments(App.CommandLineArguments);
if (assemblyList.GetAssemblies().Length == 0 if (assemblyList.GetAssemblies().Length == 0
&& assemblyList.ListName == AssemblyListManager.DefaultListName) && assemblyList.ListName == AssemblyListManager.DefaultListName) {
{
LoadInitialAssemblies(); LoadInitialAssemblies();
} }
ShowAssemblyList(this.assemblyList); ShowAssemblyList(this.assemblyList);
Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(() => OpenAssemblies(spySettings)));
}
void OpenAssemblies(ILSpySettings spySettings)
{
HandleCommandLineArgumentsAfterShowList(App.CommandLineArguments); HandleCommandLineArgumentsAfterShowList(App.CommandLineArguments);
if (App.CommandLineArguments.NavigateTo == null && App.CommandLineArguments.AssembliesToLoad.Count != 1) { if (App.CommandLineArguments.NavigateTo == null && App.CommandLineArguments.AssembliesToLoad.Count != 1) {
SharpTreeNode node = null; SharpTreeNode node = null;

Loading…
Cancel
Save