Beispiel #1
0
        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);
        }
Beispiel #2
0
        private void comboBoxChangedCallBack(ComboBoxWidget combobox)
        {
            var tag = combobox.tag;
            SlicerSettingsItem smartSlicerSetting = smartSlicerSettings[tag];

            smartSlicerSetting.ParseUserValue(combobox.Value.ToString());
            ProcessValidity(tag, smartSlicerSetting, combobox);
        }
Beispiel #3
0
        private void EditBoxCallback(EditBoxWidget edit)
        {
            var tag = edit.tag;
            SlicerSettingsItem smartSlicerSetting = smartSlicerSettings[tag];

            smartSlicerSetting.ParseUserValue(edit.Value.ToString());
            ProcessValidity(tag, smartSlicerSetting, edit);
        }
Beispiel #4
0
        private void UpdateGUIFromSetting(string name, SlicerSettingsItem setting)
        {
            if (tab_frame == null)
            {
                return;
            }

            Element2D childElement = tab_frame.FindChildElement(name);

            if (childElement == null)
            {
                return;
            }

            var userValue = setting.TranslateToUserValue();

            switch (setting.GetItemType())
            {
            case SettingItemType.IntType:
            case SettingItemType.FloatMMType:
                var editBoxWidget = childElement as EditBoxWidget;
                if (editBoxWidget != null)
                {
                    editBoxWidget.Text = userValue;
                    break;
                }
                break;

            case SettingItemType.BoolType:
                var buttonWidget = childElement as ButtonWidget;
                if (buttonWidget != null)
                {
                    buttonWidget.Checked = bool.Parse(userValue);
                    break;
                }
                break;

            case SettingItemType.FillPatternType:
            case SettingItemType.SupportPatternType:
                var comboBoxWidget   = childElement as ComboBoxWidget;
                var settingsEnumItem = setting as SlicerSettingsEnumItem;
                if (comboBoxWidget != null && settingsEnumItem != null)
                {
                    comboBoxWidget.Select = settingsEnumItem.ValueInt;
                    break;
                }
                break;

            default:
                throw new NotImplementedException("GenerateAdvancedSettings was given an unknown setting");
            }
            ProcessValidity(name, setting, childElement);
        }
Beispiel #5
0
        private void CheckBoxCallback(ButtonWidget button)
        {
            var tag = button.tag;

            if (tag.StartsWith("InternalToGUI_"))
            {
                PrinterObject selectedPrinter = SelectedPrinter;
                var           filament        = (FilamentSpool)null;
                if (selectedPrinter != null)
                {
                    filament = selectedPrinter.GetCurrentFilament();
                }

                SlicerConnection.SlicerSettings.SmartCheckBoxCallBack(tag, button.Checked, filament);
                SyncAllSettingWithGUI();
            }
            else
            {
                SlicerSettingsItem smartSlicerSetting = smartSlicerSettings[tag];
                smartSlicerSetting.ParseUserValue(button.Value.ToString());
                ProcessValidity(tag, smartSlicerSetting, button);
            }
        }
Beispiel #6
0
        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();
        }