Conditionally display validation errors based on ignore status

- Add icon to dismiss/ignore warnings
This commit is contained in:
jlewin 2019-03-08 16:45:32 -08:00
parent 18bb3e9b08
commit 27847818fa
2 changed files with 24 additions and 1 deletions

View file

@ -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();

View file

@ -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);
}
}