/// <summary> /// Saves the specifies assembly list into the config file. /// </summary> public static void SaveList(AssemblyList list) { if (!list.CanSave) { return; } ILSpySettings.Update( delegate(XElement root) { XElement doc = root.Element("AssemblyLists"); if (doc == null) { doc = new XElement("AssemblyLists"); root.Add(doc); } XElement listElement = doc.Elements("List").FirstOrDefault(e => SessionSettings.Unescape((string)e.Attribute("name")) == list.ListName); if (listElement != null) { listElement.ReplaceWith(list.SaveAsXml()); } else { doc.Add(list.SaveAsXml()); } }); }
public MainWindow() { instance = this; spySettings = ILSpySettings.Load(); this.sessionSettings = new SessionSettings(spySettings); this.assemblyListManager = new AssemblyListManager(spySettings); this.Icon = new BitmapImage(new Uri("pack://application:,,,/ILSpy;component/images/ILSpy.ico")); this.DataContext = sessionSettings; this.Left = sessionSettings.WindowBounds.Left; this.Top = sessionSettings.WindowBounds.Top; this.Width = sessionSettings.WindowBounds.Width; this.Height = sessionSettings.WindowBounds.Height; // TODO: validate bounds (maybe a monitor was removed...) this.WindowState = sessionSettings.WindowState; InitializeComponent(); App.CompositionContainer.ComposeParts(this); mainPane.Content = decompilerTextView; if (sessionSettings.SplitterPosition > 0 && sessionSettings.SplitterPosition < 1) { leftColumn.Width = new GridLength(sessionSettings.SplitterPosition, GridUnitType.Star); rightColumn.Width = new GridLength(1 - sessionSettings.SplitterPosition, GridUnitType.Star); } sessionSettings.FilterSettings.PropertyChanged += filterSettings_PropertyChanged; InitMainMenu(); InitToolbar(); ContextMenuProvider.Add(treeView); this.Loaded += new RoutedEventHandler(MainWindow_Loaded); }
AssemblyList DoLoadList(ILSpySettings spySettings, string listName) { XElement doc = spySettings["AssemblyLists"]; if (listName != null) { foreach (var list in doc.Elements("List")) { if (SessionSettings.Unescape((string)list.Attribute("name")) == listName) { return(new AssemblyList(list)); } } } XElement firstList = doc.Elements("List").FirstOrDefault(); if (firstList != null) { return(new AssemblyList(firstList)); } else { return(new AssemblyList(listName ?? DefaultListName)); } }
public MainWindow() { instance = this; var spySettings = ILSpySettings.Load(); this.spySettingsForMainWindow_Loaded = spySettings; this.sessionSettings = new SessionSettings(spySettings); this.assemblyListManager = new AssemblyListManager(spySettings); this.Icon = new BitmapImage(new Uri("pack://application:,,,/ILSpy;component/images/ILSpy.ico")); this.DataContext = new MainWindowDataContext { Workspace = DockWorkspace.Instance, SessionSettings = sessionSettings }; DockWorkspace.Instance.LoadSettings(sessionSettings); InitializeComponent(); DockWorkspace.Instance.InitializeLayout(DockManager); sessionSettings.FilterSettings.PropertyChanged += filterSettings_PropertyChanged; InitMainMenu(); InitToolbar(); ContextMenuProvider.Add(treeView); this.Loaded += MainWindow_Loaded; }
public MainWindow() { instance = this; spySettings = ILSpySettings.Load(); this.sessionSettings = new SessionSettings(spySettings); this.assemblyListManager = new AssemblyListManager(spySettings); this.Icon = new WindowIcon("Images/ILSpy.png"); this.DataContext = sessionSettings; InitializeComponent(); #if DEBUG this.AttachDevTools(); #endif decompilerTextView = App.ExportProvider.GetExportedValue <DecompilerTextView>(); mainPane.Content = decompilerTextView; if (sessionSettings.SplitterPosition > 0 && sessionSettings.SplitterPosition < 1) { leftColumn.Width = new GridLength(sessionSettings.SplitterPosition, GridUnitType.Star); rightColumn.Width = new GridLength(1 - sessionSettings.SplitterPosition, GridUnitType.Star); } sessionSettings.FilterSettings.PropertyChanged += filterSettings_PropertyChanged; ContextMenuProvider.Add(treeView, decompilerTextView); }
public MainWindow() { instance = this; spySettings = ILSpySettings.Load(); this.sessionSettings = new SessionSettings(spySettings); this.assemblyListManager = new AssemblyListManager(spySettings); this.Icon = new BitmapImage(new Uri("pack://application:,,,/ILSpy;component/images/ILSpy.ico")); this.DataContext = sessionSettings; InitializeComponent(); App.CompositionContainer.ComposeParts(this); mainPane.Content = decompilerTextView; if (sessionSettings.SplitterPosition > 0 && sessionSettings.SplitterPosition < 1) { leftColumn.Width = new GridLength(sessionSettings.SplitterPosition, GridUnitType.Star); rightColumn.Width = new GridLength(1 - sessionSettings.SplitterPosition, GridUnitType.Star); } sessionSettings.FilterSettings.PropertyChanged += filterSettings_PropertyChanged; InitMainMenu(); InitToolbar(); ContextMenuProvider.Add(treeView, decompilerTextView); this.Loaded += MainWindow_Loaded; }
DnSpyFileList DoLoadList(DNSpySettings spySettings, string listName) { var doc = GetFileListsElement(spySettings); if (listName != null) { foreach (var listElem in doc.Elements(LIST_SECTION_NAME)) { if (SessionSettings.Unescape((string)listElem.Attribute("name")) == listName) { return(Initialize(Create(listElem))); } } } XElement firstList = doc.Elements(LIST_SECTION_NAME).FirstOrDefault(); DnSpyFileList list; if (firstList != null) { list = Create(firstList); } else { list = new DnSpyFileList(options, listName ?? DefaultListName); } return(Initialize(list)); }
public MainWindow() { instance = this; var spySettings = ILSpySettings.Load(); this.spySettingsForMainWindow_Loaded = spySettings; this.sessionSettings = new SessionSettings(spySettings); this.assemblyListManager = new AssemblyListManager(spySettings); this.Icon = new BitmapImage(new Uri("pack://application:,,,/ILSpy;component/images/ILSpy.ico")); this.DataContext = sessionSettings; InitializeComponent(); decompilerTextView = App.ExportProvider.GetExportedValue <DecompilerTextView>(); mainPane.Content = decompilerTextView; sessionSettings.DockLayout.Deserialize(new XmlLayoutSerializer(DockManager)); sessionSettings.FilterSettings.PropertyChanged += filterSettings_PropertyChanged; InitMainMenu(); InitToolbar(); ContextMenuProvider.Add(treeView, decompilerTextView); this.Loaded += MainWindow_Loaded; }
static XElement SaveAsXml(DnSpyFileList list) { return(new XElement( LIST_SECTION_NAME, new XAttribute("name", SessionSettings.Escape(list.Name)), list.GetDnSpyFiles().Where(file => !file.IsAutoLoaded && file.CanBeSavedToSettingsFile && !string.IsNullOrWhiteSpace(file.Filename)).Select(asm => new XElement(FILE_SECTION_NAME, SessionSettings.Escape(asm.Filename))) )); }
public AssemblyListManager(ILSpySettings spySettings) { XElement doc = spySettings["AssemblyLists"]; foreach (var list in doc.Elements("List")) { AssemblyLists.Add(SessionSettings.Unescape((string)list.Attribute("name"))); } }
/// <summary> /// Saves this assembly list to XML. /// </summary> internal XElement SaveAsXml() { lock (assemblies) { return(new XElement( "List", new XAttribute("name", SessionSettings.Escape(this.ListName)), assemblies.Where(asm => !asm.IsAutoLoaded && !string.IsNullOrWhiteSpace(asm.FileName)).Select(asm => new XElement("Assembly", SessionSettings.Escape(asm.FileName))) )); } }
public DnSpyFileListManager(IDnSpyFileListOptions options, DNSpySettings spySettings) { this.options = options; var doc = GetFileListsElement(spySettings); foreach (var list in doc.Elements(LIST_SECTION_NAME)) { FileLists.Add(SessionSettings.Unescape((string)list.Attribute("name"))); } }
/// <summary> /// Loads an assembly list from XML. /// </summary> public AssemblyList(XElement listElement) : this(SessionSettings.Unescape((string)listElement.Attribute("name"))) { foreach (var asm in listElement.Elements("Assembly")) { try { OpenAssembly(SessionSettings.Unescape((string)asm)); } catch (ArgumentException) { // invalid filename } } this.dirty = false; // OpenAssembly() sets dirty, so reset it afterwards }
public XElement ToXml(XElement xml) { xml.SetAttributeValue("language", SessionSettings.Escape(Language)); foreach (var path in Paths) { xml.Add(path.ToXml(new XElement("Path"))); } var asms = new XElement("ActiveAutoLoadedAssemblies", ActiveAutoLoadedAssemblies.Select(p => new XElement("Node", SessionSettings.Escape(p)))); xml.Add(asms); xml.Add(EditorPositionState.ToXml(new XElement("EditorPositionState"))); return(xml); }
DnSpyFileList Create(XElement listElement) { var name = SessionSettings.Unescape((string)listElement.Attribute("name")); var list = new DnSpyFileList(options, name); var elems = listElement.Elements(FILE_SECTION_NAME).ToList(); elems.AddRange(listElement.Elements(FILE_SECTION_NAME_OLD)); foreach (var asm in elems) { try { list.OpenFile(SessionSettings.Unescape((string)asm)); } catch { } } list.IsDirty = false; return(list); }
public MainWindow() { instance = this; var spySettings = ILSpySettings.Load(); this.spySettingsForMainWindow_Loaded = spySettings; this.sessionSettings = new SessionSettings(spySettings); this.assemblyListManager = new AssemblyListManager(spySettings); this.Icon = new BitmapImage(new Uri("pack://application:,,,/ILSpy;component/images/ILSpy.ico")); this.DataContext = new MainWindowDataContext { Workspace = DockWorkspace.Instance, SessionSettings = sessionSettings }; DockWorkspace.Instance.LoadSettings(sessionSettings); InitializeComponent(); XmlLayoutSerializer serializer = new XmlLayoutSerializer(DockManager); serializer.LayoutSerializationCallback += DockWorkspace.Instance.LayoutSerializationCallback; try { sessionSettings.DockLayout.Deserialize(serializer); } finally { serializer.LayoutSerializationCallback -= DockWorkspace.Instance.LayoutSerializationCallback; } DockWorkspace.Instance.EnsureUnclosablePanes(); sessionSettings.FilterSettings.PropertyChanged += filterSettings_PropertyChanged; InitMainMenu(); InitToolbar(); ContextMenuProvider.Add(treeView); this.Loaded += MainWindow_Loaded; }
public static SavedTabState FromXml(XElement child) { var savedState = new SavedTabState(); savedState.Language = SessionSettings.Unescape((string)child.Attribute("language")) ?? "C#"; foreach (var path in child.Elements("Path")) { savedState.Paths.Add(FullNodePathName.FromXml(path)); } savedState.ActiveAutoLoadedAssemblies = new List <string>(); var autoAsms = child.Element("ActiveAutoLoadedAssemblies"); if (autoAsms != null) { savedState.ActiveAutoLoadedAssemblies.AddRange(autoAsms.Elements().Select(e => SessionSettings.Unescape((string)e))); } savedState.EditorPositionState = EditorPositionState.FromXml(child.Element("EditorPositionState")); return(savedState); }
public bool DeleteList(string Name) { if (AssemblyLists.Contains(Name)) { AssemblyLists.Remove(Name); ILSpySettings.Update( delegate(XElement root) { XElement doc = root.Element("AssemblyLists"); if (doc == null) { return; } XElement listElement = doc.Elements("List").FirstOrDefault(e => SessionSettings.Unescape((string)e.Attribute("name")) == Name); if (listElement != null) { listElement.Remove(); } }); return(true); } return(false); }
public bool DeleteList(string Name) { if (FileLists.Contains(Name)) { FileLists.Remove(Name); DNSpySettings.Update( delegate(XElement root) { XElement doc = root.Element(FILELISTS_SECTION_NAME); if (doc == null) { root.Element(FILELISTS_SECTION_NAME_OLD); } if (doc == null) { return; } XElement listElement = doc.Elements(LIST_SECTION_NAME).FirstOrDefault(e => SessionSettings.Unescape((string)e.Attribute("name")) == Name); if (listElement != null) { listElement.Remove(); } }); return(true); } return(false); }
/// <summary> /// Saves the specifies assembly list into the config file. /// </summary> public static void SaveList(DnSpyFileList list) { DNSpySettings.Update((root) => { var doc = root.Element(FILELISTS_SECTION_NAME) ?? root.Element(FILELISTS_SECTION_NAME_OLD); if (doc != null) { doc.Name = FILELISTS_SECTION_NAME; } if (doc == null) { doc = new XElement(FILELISTS_SECTION_NAME); root.Add(doc); } XElement listElement = doc.Elements(LIST_SECTION_NAME).FirstOrDefault(e => SessionSettings.Unescape((string)e.Attribute("name")) == list.Name); if (listElement != null) { listElement.ReplaceWith(SaveAsXml(list)); } else { doc.Add(SaveAsXml(list)); } }); }