diff --git a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrintPopupMenu.cs b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrintPopupMenu.cs index 306893b78..d30f7b7ef 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrintPopupMenu.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrintPopupMenu.cs @@ -196,8 +196,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow }; var hasErrors = errors.Any(e => e.ErrorLevel == ValidationErrorLevel.Error); - var hasErrorsOrWarnings = errors.Any(); + var hasWarnings = errors.Any(e => e.ErrorLevel == ValidationErrorLevel.Warning + && UserSettings.Instance.get($"Ignore_{e.ID}") != "true"); + var hasErrorsOrWarnings = hasErrors || hasWarnings; if (hasErrorsOrWarnings) { string label = hasErrors ? "Action Required".Localize() : "Action Recommended".Localize(); diff --git a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/ValidationErrorsPanel.cs b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/ValidationErrorsPanel.cs index f14c36c38..93827046c 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/ValidationErrorsPanel.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/ValidationErrorsPanel.cs @@ -53,6 +53,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow foreach (var validationError in errors.OrderByDescending(e => e.ErrorLevel)) { + if (validationError.ErrorLevel == ValidationErrorLevel.Warning + && UserSettings.Instance.get($"Ignore_{validationError.ID}") == "true") + { + continue; + } + string errorText, errorDetails; var settingsValidationError = validationError as SettingsValidationError; @@ -106,6 +112,21 @@ namespace MatterHackers.MatterControl.PartPreviewWindow row.AddChild(button); } + if (validationError.ErrorLevel == ValidationErrorLevel.Warning) + { + var dismissButton = theme.CreateSmallResetButton(); + dismissButton.HAnchor = HAnchor.Absolute; + dismissButton.Margin = new BorderDouble(right: theme.ButtonHeight / 2 - dismissButton.Width / 2); + dismissButton.Name = "Dismiss " + validationError.ID; + dismissButton.ToolTipText = "Dismiss".Localize(); + dismissButton.Click += (sender, e) => + { + UserSettings.Instance.set($"Ignore_{validationError.ID}", "true"); + }; + + row.AddChild(dismissButton); + } + this.AddChild(row); } }