private void Workspaces_Changed(object sender, WorkspacesChangedEventArgs e) { var workspace = e.Workspace; var activePrinter = workspace.Printer; if (e.Operation == WorkspacesChangedEventArgs.OperationType.Add || e.Operation == WorkspacesChangedEventArgs.OperationType.Restore) { // Create printer or part tab bool isPrinter = activePrinter?.Settings.PrinterSelected == true; ChromeTab newTab = isPrinter ? CreatePrinterTab(workspace, theme) : CreatePartTab(workspace); if (e.Operation == WorkspacesChangedEventArgs.OperationType.Add) { ApplicationController.Instance.MainTabKey = newTab.Key; } // Activate tab with previously active key if (newTab.Key == ApplicationController.Instance.MainTabKey) { tabControl.ActiveTab = newTab; } } else { // Close existing printer tabs if (tabControl.AllTabs.FirstOrDefault(t => t.TabContent is PrinterTabPage printerTab && printerTab.Printer.Settings.ID == activePrinter.Settings.ID) is ITab tab && tab.TabContent is PrinterTabPage printerPage) { tabControl.CloseTab(tab); } } }
private void Workspaces_Changed(object sender, WorkspacesChangedEventArgs e) { var activePrinter = e.Workspace.Printer; if (e.Operation == WorkspacesChangedEventArgs.OperationType.Add) { // Create and switch to new printer tab if (activePrinter?.Settings.PrinterSelected == true) { tabControl.ActiveTab = this.CreatePrinterTab(e.Workspace, theme); } else { tabControl.ActiveTab = this.CreatePartTab(e.Workspace); } tabControl.RefreshTabPointers(); } else { // Close existing printer tabs if (tabControl.AllTabs.FirstOrDefault(t => t.TabContent is PrinterTabPage printerTab && printerTab.printer.Settings.ID == activePrinter.Settings.ID) is ITab tab && tab.TabContent is PrinterTabPage printerPage) { tabControl.RemoveTab(tab); tabControl.RefreshTabPointers(); } } }