Browse Source

Implement File>Open.

pull/1/head
Daniel Grunwald 14 years ago
parent
commit
db54508e73
  1. 4
      ILSpy/AssemblyTreeNode.cs
  2. 5
      ILSpy/MainWindow.xaml
  3. 34
      ILSpy/MainWindow.xaml.cs

4
ILSpy/AssemblyTreeNode.cs

@ -33,6 +33,10 @@ namespace ICSharpCode.ILSpy @@ -33,6 +33,10 @@ namespace ICSharpCode.ILSpy
this.LazyLoading = true;
}
public string FileName {
get { return fileName; }
}
public override object Text {
get { return name; }
}

5
ILSpy/MainWindow.xaml

@ -9,6 +9,11 @@ @@ -9,6 +9,11 @@
UseLayoutRounding="True"
TextOptions.TextFormattingMode="Display"
>
<Window.CommandBindings>
<CommandBinding
Command="Open"
Executed="OpenCommandExecuted" />
</Window.CommandBindings>
<DockPanel>
<Menu
DockPanel.Dock="Top">

34
ILSpy/MainWindow.xaml.cs

@ -3,10 +3,13 @@ @@ -3,10 +3,13 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Windows;
using System.Windows.Input;
using ICSharpCode.TreeView;
using Microsoft.Win32;
namespace ICSharpCode.ILSpy
{
@ -39,7 +42,34 @@ namespace ICSharpCode.ILSpy @@ -39,7 +42,34 @@ namespace ICSharpCode.ILSpy
assemblies = treeView.Root.Children;
foreach (Assembly asm in initialAssemblies)
assemblies.Add(new AssemblyTreeNode(asm.Location));
OpenAssembly(asm.Location);
}
void OpenCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
e.Handled = true;
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = ".NET assemblies|*.dll;*.exe|All files|*.*";
dlg.Multiselect = true;
dlg.RestoreDirectory = true;
if (dlg.ShowDialog() == true) {
treeView.UnselectAll();
foreach (string file in dlg.FileNames) {
treeView.SelectedItems.Add(OpenAssembly(file));
}
}
}
AssemblyTreeNode OpenAssembly(string file)
{
file = Path.GetFullPath(file);
var node = assemblies.OfType<AssemblyTreeNode>().FirstOrDefault(a => file.Equals(a.FileName, StringComparison.OrdinalIgnoreCase));
if (node == null) {
node = new AssemblyTreeNode(file);
assemblies.Add(node);
}
return node;
}
void ExitClick(object sender, RoutedEventArgs e)

Loading…
Cancel
Save