From 2b2c63048ba3226d6e06a8125f64aadaf775e460 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Sat, 13 Jan 2018 10:57:02 -0800 Subject: [PATCH 1/3] Disable View GCode buttons in the non-printer case - Issue MatterHackers/MCCentral#2643 --- PartPreviewWindow/ViewControls3D.cs | 21 ++++++++++++------ .../{2d.png => gcode_2d.png} | Bin .../{3d.png => gcode_3d.png} | Bin 3 files changed, 14 insertions(+), 7 deletions(-) rename StaticData/Icons/ViewTransformControls/{2d.png => gcode_2d.png} (100%) rename StaticData/Icons/ViewTransformControls/{3d.png => gcode_3d.png} (100%) diff --git a/PartPreviewWindow/ViewControls3D.cs b/PartPreviewWindow/ViewControls3D.cs index 614207b38..e80a099e1 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); @@ -443,6 +445,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/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 From 3cc73d093350bdd0a559425476386c8eabeba9a4 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Sat, 13 Jan 2018 10:57:24 -0800 Subject: [PATCH 2/3] Left align menu - Issue MatterHackers/MCCentral#2644 Bed/part menu should not be align right --- PartPreviewWindow/ViewControls3D.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/PartPreviewWindow/ViewControls3D.cs b/PartPreviewWindow/ViewControls3D.cs index e80a099e1..906864629 100644 --- a/PartPreviewWindow/ViewControls3D.cs +++ b/PartPreviewWindow/ViewControls3D.cs @@ -436,7 +436,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow BackgroundColor = theme.MinimalShade, GradientDistance = -1, DrawArrow = true, - AlignToRightEdge = true, Margin = theme.ButtonSpacing, }; From 8964c599196499b58d6a6d842e17529edf2daece Mon Sep 17 00:00:00 2001 From: John Lewin Date: Sat, 13 Jan 2018 11:38:46 -0800 Subject: [PATCH 3/3] Clamp extruder_count - Issue MatterHackers/MCCentral#2616 Add extruder count constraints --- SlicerConfiguration/SliceSettingsWidget.cs | 11 ++++++++++- SlicerConfiguration/UIFields/IntField.cs | 12 ++++++++++-- Submodules/agg-sharp | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) 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/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