public SessionSettings(ILSpySettings spySettings) { XElement doc = spySettings["SessionSettings"]; XElement filterSettings = doc.Element("FilterSettings"); if (filterSettings == null) { filterSettings = new XElement("FilterSettings"); } this.FilterSettings = new FilterSettings(filterSettings); this.ActiveAssemblyList = Unescape((string)doc.Element("ActiveAssemblyList")); this.WindowState = FromString((string)doc.Element("WindowState"), WindowState.Normal); this.IsFullScreen = FromString((string)doc.Element("IsFullScreen"), false); var winBoundsString = (string)doc.Element("WindowBounds"); if (winBoundsString != null) { this.WindowBounds = FromString(winBoundsString, DefaultWindowBounds); } this.LeftColumnWidth = FromString((string)doc.Element("LeftColumnWidth"), 0.0); this.WordWrap = FromString((string)doc.Element("WordWrap"), false); this.HighlightCurrentLine = FromString((string)doc.Element("HighlightCurrentLine"), true); this.TopPaneSettings.Name = FromString((string)doc.Element("TopPaneName"), string.Empty); this.TopPaneSettings.Height = FromString((string)doc.Element("TopPaneHeight"), 200.0); this.BottomPaneSettings.Name = FromString((string)doc.Element("BottomPaneName"), string.Empty); this.BottomPaneSettings.Height = FromString((string)doc.Element("BottomPaneHeight"), 200.0); this.ThemeName = (string)doc.Element("ThemeName") ?? dnSpy.dntheme.Themes.DefaultThemeName; var ignoreXml = doc.Element("IgnoredWarnings"); if (ignoreXml != null) { foreach (var child in ignoreXml.Elements("Warning")) { var id = Unescape((string)child); if (id != null) { IgnoredWarnings.Add(id); } } } var groups = doc.Element("TabGroups"); if (groups == null) { this.TabsFound = false; this.SavedTabGroupsState = new SavedTabGroupsState(); } else { this.TabsFound = true; this.SavedTabGroupsState = SavedTabGroupsState.FromXml(groups); } }
public static SavedTabGroupsState FromXml(XElement child) { var savedState = new SavedTabGroupsState(); savedState.Index = (int)child.Attribute("index"); savedState.IsHorizontal = (bool)child.Attribute("is-horizontal"); foreach (var group in child.Elements("TabGroup")) savedState.Groups.Add(SavedTabGroupState.FromXml(group)); return savedState; }
public static SavedTabGroupsState FromXml(XElement child) { var savedState = new SavedTabGroupsState(); savedState.Index = (int)child.Attribute("index"); savedState.IsHorizontal = (bool)child.Attribute("is-horizontal"); foreach (var group in child.Elements("TabGroup")) { savedState.Groups.Add(SavedTabGroupState.FromXml(group)); } return(savedState); }
SavedTabGroupsState CreateSavedTabGroupsState() { var state = new SavedTabGroupsState(); state.IsHorizontal = tabGroupsManager.IsHorizontal; state.Index = tabGroupsManager.ActiveIndex; foreach (var tabManager in tabGroupsManager.AllTabGroups) state.Groups.Add(CreateSavedTabGroupState(tabManager)); return state; }
void RestoreTabGroups(SavedTabGroupsState savedGroups) { Debug.Assert(tabGroupsManager.AllTabGroups.Count == 1); bool first = true; foreach (var savedGroupState in savedGroups.Groups) { var tabManager = first ? tabGroupsManager.ActiveTabGroup : tabGroupsManager.CreateTabGroup(savedGroups.IsHorizontal); first = false; foreach (var savedTabState in savedGroupState.Tabs) { var tabState = CreateNewTabState(tabManager, Languages.GetLanguage(savedTabState.Language)); CreateTabState(tabState, savedTabState); } tabManager.SetSelectedIndex(savedGroupState.Index); } tabGroupsManager.SetSelectedIndex(savedGroups.Index); }