private bool GetStateChangeInfo(Element2D element, string settingName, SlicerSettingsItem setting, string parentTag, out AdvancedPrintSettingsFrame.ErrorStateEnum oldState, out AdvancedPrintSettingsFrame.ErrorStateEnum currentState) { if (!tabsErrorWarningCount.ContainsKey(parentTag)) { tabsErrorWarningCount[parentTag] = new AdvancedPrintSettingsFrame.TabErrorStateCount(); } oldState = AdvancedPrintSettingsFrame.ErrorStateEnum.AllGood; var flag = false; if (settingErrorWarningState.ContainsKey(settingName)) { oldState = settingErrorWarningState[settingName]; } if (setting.HasError && setting.IsSettingOn) { currentState = AdvancedPrintSettingsFrame.ErrorStateEnum.Error; flag = true; if (!settingErrorWarningState.ContainsKey(settingName)) { settingErrorWarningState.Add(settingName, AdvancedPrintSettingsFrame.ErrorStateEnum.Error); } else { flag = settingErrorWarningState[settingName] != AdvancedPrintSettingsFrame.ErrorStateEnum.Error; settingErrorWarningState[settingName] = AdvancedPrintSettingsFrame.ErrorStateEnum.Error; } } else if (setting.HasWarning && setting.IsSettingOn) { currentState = AdvancedPrintSettingsFrame.ErrorStateEnum.Warning; flag = true; if (!settingErrorWarningState.ContainsKey(settingName)) { settingErrorWarningState.Add(settingName, AdvancedPrintSettingsFrame.ErrorStateEnum.Warning); } else { flag = settingErrorWarningState[settingName] != AdvancedPrintSettingsFrame.ErrorStateEnum.Warning; settingErrorWarningState[settingName] = AdvancedPrintSettingsFrame.ErrorStateEnum.Warning; } } else { currentState = AdvancedPrintSettingsFrame.ErrorStateEnum.AllGood; if (settingErrorWarningState.ContainsKey(settingName)) { settingErrorWarningState.Remove(settingName); flag = true; } element.Enabled = setting.IsSettingOn; if (!element.Enabled) { flag = true; } } return(flag); }
private void ProcessValidity(string settingName, SlicerSettingsItem setting, Element2D element) { Element2D parent = element.Parent; while (parent != null && string.IsNullOrEmpty(parent.tag)) { parent = parent.Parent; } if (parent == null) { return; } var tag = parent.tag; var num = GetStateChangeInfo(element, settingName, setting, tag, out ErrorStateEnum oldState, out ErrorStateEnum currentState) ? 1 : 0; Element2D childElement = element.Parent.FindChildElement(GetRangeText(settingName)); if (num != 0) { AdvancedPrintSettingsFrame.TabErrorStateCount tabErrorStateCount = tabsErrorWarningCount[tag]; switch (oldState) { case AdvancedPrintSettingsFrame.ErrorStateEnum.Warning: --tabErrorStateCount.Warnings; --globalWarningCount; if (tabErrorStateCount.Warnings == 0) { Image_Helper(GetWarningImageTag(tag), false); break; } break; case AdvancedPrintSettingsFrame.ErrorStateEnum.Error: --tabErrorStateCount.Errors; --globalErrorCount; if (tabErrorStateCount.Errors == 0) { Image_Helper(GetErrorImageTag(tag), false); break; } break; } Color4 color4 = DEFAULT_COLOR; var flag = true; switch (currentState) { case AdvancedPrintSettingsFrame.ErrorStateEnum.Warning: color4 = WARNING_COLOR; ++tabErrorStateCount.Warnings; ++globalWarningCount; if (tabErrorStateCount.Warnings == 1) { Image_Helper(GetWarningImageTag(tag), true); break; } break; case AdvancedPrintSettingsFrame.ErrorStateEnum.Error: color4 = ERROR_COLOR; ++tabErrorStateCount.Errors; ++globalErrorCount; if (tabErrorStateCount.Errors == 1) { Image_Helper(GetErrorImageTag(tag), true); break; } break; default: flag = false; break; } if (element is EditBoxWidget) { (element as EditBoxWidget).Color = color4; } if (childElement is TextWidget) { var textWidget = childElement as TextWidget; textWidget.Color = color4; textWidget.Visible = flag; } UpdateErrorWarningMessage(); } if (!(childElement is TextWidget)) { return; } (childElement as TextWidget).Text = setting.GetErrorMsg(); }