/// <summary> /// Closes a specific file or the opened design and optionally updates the design tab control. /// </summary> /// <param name="name"></param> /// <param name="updateDesignControl"></param> /// <returns></returns> public string CloseFile(string name = null, bool updateDesignControl = true) { // Get active design Design activeDesign = DesignController.GetActiveDesign(); string designName = name ?? activeDesign.FileName; Design design = designName == null ? activeDesign : DesignController.GetDesign(designName); bool save = true; if (design.IsDirty) { DialogResult result = DialogBox.New("Confirm", $"{designName} has unsaved changes. Would you like to save these changes?", DialogType.YesNoCancel); if (result == DialogResult.No) { save = false; } else if (result == DialogResult.Cancel) { return(null); } } // Remove nav tree node of the design MainWindow.RemoveNavTreeNode(designName); // If design tab control needs to be updated if (updateDesignControl) { // Close design tab and design DisplayController.CloseDesignTab(designName); } // Close design DesignController.CloseDesign(designName, save); return(designName); }