diff --git a/PartPreviewWindow/ViewControls3D.cs b/PartPreviewWindow/ViewControls3D.cs index 614207b38..906864629 100644 --- a/PartPreviewWindow/ViewControls3D.cs +++ b/PartPreviewWindow/ViewControls3D.cs @@ -285,21 +285,22 @@ namespace MatterHackers.MatterControl.PartPreviewWindow SiblingRadioButtonList = buttonGroupB, Name = "Model View Button", Checked = printer?.ViewState.ViewMode == PartViewMode.Model || printer == null, - ToolTipText = "Model".Localize(), + ToolTipText = "Model View".Localize(), Margin = commonMargin }; modelViewButton.Click += SwitchModes_Click; buttonGroupB.Add(modelViewButton); AddChild(modelViewButton); - iconPath = Path.Combine("ViewTransformControls", "3d.png"); + iconPath = Path.Combine("ViewTransformControls", "gcode_3d.png"); layers3DButton = new RadioIconButton(AggContext.StaticData.LoadIcon(iconPath, IconColor.Theme), theme) { SiblingRadioButtonList = buttonGroupB, Name = "Layers3D Button", Checked = printer?.ViewState.ViewMode == PartViewMode.Layers3D, - ToolTipText = "3D Layers".Localize(), - Margin = commonMargin + ToolTipText = "3D Layer View".Localize(), + Margin = commonMargin, + Enabled = isPrinterType }; layers3DButton.Click += SwitchModes_Click; buttonGroupB.Add(layers3DButton); @@ -309,14 +310,15 @@ namespace MatterHackers.MatterControl.PartPreviewWindow this.AddChild(layers3DButton); } - iconPath = Path.Combine("ViewTransformControls", "2d.png"); + iconPath = Path.Combine("ViewTransformControls", "gcode_2d.png"); layers2DButton = new RadioIconButton(AggContext.StaticData.LoadIcon(iconPath, IconColor.Theme), theme) { SiblingRadioButtonList = buttonGroupB, Name = "Layers2D Button", Checked = printer?.ViewState.ViewMode == PartViewMode.Layers2D, - ToolTipText = "2D Layers".Localize(), - Margin = commonMargin + ToolTipText = "2D Layer View".Localize(), + Margin = commonMargin, + Enabled = isPrinterType }; layers2DButton.Click += SwitchModes_Click; buttonGroupB.Add(layers2DButton); @@ -434,7 +436,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow BackgroundColor = theme.MinimalShade, GradientDistance = -1, DrawArrow = true, - AlignToRightEdge = true, Margin = theme.ButtonSpacing, }; @@ -443,6 +444,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private void SwitchModes_Click(object sender, MouseEventArgs e) { + if (!IsPrinterMode) + { + return; + } + if (sender is GuiWidget widget) { if (widget.Name == "Layers2D Button") diff --git a/SlicerConfiguration/SliceSettingsWidget.cs b/SlicerConfiguration/SliceSettingsWidget.cs index 92cc2e237..9560791c7 100644 --- a/SlicerConfiguration/SliceSettingsWidget.cs +++ b/SlicerConfiguration/SliceSettingsWidget.cs @@ -469,7 +469,16 @@ namespace MatterHackers.MatterControl.SlicerConfiguration switch (settingData.DataEditType) { case SliceSettingData.DataEditTypes.INT: - uiField = new IntField(); + + var intField = new IntField(); + uiField = intField; + + if (settingData.SlicerConfigName == "extruder_count") + { + intField.MaxValue = 4; + intField.MinValue = 0; + } + break; case SliceSettingData.DataEditTypes.DOUBLE: diff --git a/SlicerConfiguration/UIFields/IntField.cs b/SlicerConfiguration/UIFields/IntField.cs index d258b71ca..c5ade67d5 100644 --- a/SlicerConfiguration/UIFields/IntField.cs +++ b/SlicerConfiguration/UIFields/IntField.cs @@ -1,5 +1,5 @@ /* -Copyright (c) 2017, Lars Brubaker, John Lewin +Copyright (c) 2018, Lars Brubaker, John Lewin All rights reserved. Redistribution and use in source and binary forms, with or without @@ -27,6 +27,7 @@ of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. */ +using System; namespace MatterHackers.MatterControl.SlicerConfiguration { @@ -34,10 +35,17 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { private int intValue; + public int MinValue { get; set; } = int.MinValue; + + public int MaxValue { get; set; } = int.MaxValue; + protected override string ConvertValue(string newValue) { decimal.TryParse(newValue, out decimal currentValue); - intValue = (int)currentValue; + + // Clamp to range + intValue = Math.Min((int)currentValue, this.MaxValue); + intValue = Math.Max(intValue, this.MinValue); return intValue.ToString(); } diff --git a/StaticData/Icons/ViewTransformControls/2d.png b/StaticData/Icons/ViewTransformControls/gcode_2d.png similarity index 100% rename from StaticData/Icons/ViewTransformControls/2d.png rename to StaticData/Icons/ViewTransformControls/gcode_2d.png diff --git a/StaticData/Icons/ViewTransformControls/3d.png b/StaticData/Icons/ViewTransformControls/gcode_3d.png similarity index 100% rename from StaticData/Icons/ViewTransformControls/3d.png rename to StaticData/Icons/ViewTransformControls/gcode_3d.png diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 62ffc915f..e28826c49 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 62ffc915f217c8a2232810fb4f567f9b4b1009f3 +Subproject commit e28826c49a73ed885dd459b4631f021d6d26406c