From 66a4a92e6690aced555ea693eabaa9df3d336c56 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Fri, 7 May 2021 11:29:59 -0700 Subject: [PATCH] Made better messaging around advanced added 316L scaling made a new back button --- .../LibrarySelector/FolderBreadCrumbWidget.cs | 2 +- .../DesignTools/Operations/AlignObject3D.cs | 5 ++ .../DesignTools/Operations/ScaleObject3D_2.cs | 13 +++- .../DesignTools/Operations/TwistObject3D.cs | 1 + .../Primitives/CylinderObject3D.cs | 6 ++ .../DesignTools/Primitives/RingObject3D.cs | 6 ++ .../DesignTools/Primitives/SphereObject3D.cs | 6 ++ .../DesignTools/Primitives/TorusObject3D.cs | 6 ++ .../DesignTools/PublicPropertyEditor.cs | 67 +++++++++++++----- .../Library/Widgets/LibraryWidget.cs | 1 - StaticData/Icons/Library/back.png | Bin 0 -> 5738 bytes StaticData/Icons/Library/upfolder_20.png | Bin 291 -> 0 bytes 12 files changed, 91 insertions(+), 22 deletions(-) create mode 100644 StaticData/Icons/Library/back.png delete mode 100644 StaticData/Icons/Library/upfolder_20.png diff --git a/MatterControlLib/CustomWidgets/LibrarySelector/FolderBreadCrumbWidget.cs b/MatterControlLib/CustomWidgets/LibrarySelector/FolderBreadCrumbWidget.cs index de463c708..4846b36fe 100644 --- a/MatterControlLib/CustomWidgets/LibrarySelector/FolderBreadCrumbWidget.cs +++ b/MatterControlLib/CustomWidgets/LibrarySelector/FolderBreadCrumbWidget.cs @@ -59,7 +59,7 @@ namespace MatterHackers.MatterControl.CustomWidgets { this.CloseChildren(); - var upbutton = new IconButton(StaticData.Instance.LoadIcon(Path.Combine("Library", "upfolder_20.png"), 20, 20, theme.InvertIcons), theme) + var upbutton = new IconButton(StaticData.Instance.LoadIcon(Path.Combine("Library", "back.png"), 20, 20, theme.InvertIcons), theme) { VAnchor = VAnchor.Fit | VAnchor.Center, Enabled = currentContainer.Parent != null, diff --git a/MatterControlLib/DesignTools/Operations/AlignObject3D.cs b/MatterControlLib/DesignTools/Operations/AlignObject3D.cs index 057d39e28..d5e6d123e 100644 --- a/MatterControlLib/DesignTools/Operations/AlignObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/AlignObject3D.cs @@ -175,6 +175,10 @@ namespace MatterHackers.MatterControl.DesignTools.Operations public bool Advanced { get; set; } = false; + [ReadOnly(true)] + [DisplayName("")] // clear the display name so this text will be the full width of the editor + public string EasyModeMessage { get; set; } = "You can switch to Advanced mode to get more align options."; + [SectionStart("X Axis"), DisplayName("Align")] [EnumDisplay(IconPaths = new string[] { "424.png", "align_left.png", "align_center_x.png", "align_right.png", "align_origin.png" }, InvertIcons = true)] public Align XAlign { get; set; } = Align.None; @@ -401,6 +405,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations change.SetRowVisible(nameof(YOffset), () => Advanced); change.SetRowVisible(nameof(ZAlignTo), () => Advanced); change.SetRowVisible(nameof(ZOffset), () => Advanced); + change.SetRowVisible(nameof(EasyModeMessage), () => !Advanced); } private static bool IsSet(FaceAlign variableToCheck, FaceAlign faceToCheckFor, FaceAlign faceToAssertNot) diff --git a/MatterControlLib/DesignTools/Operations/ScaleObject3D_2.cs b/MatterControlLib/DesignTools/Operations/ScaleObject3D_2.cs index e3e9cb038..797a3a60f 100644 --- a/MatterControlLib/DesignTools/Operations/ScaleObject3D_2.cs +++ b/MatterControlLib/DesignTools/Operations/ScaleObject3D_2.cs @@ -205,7 +205,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations } } - public bool ScaleLocked => LockProportions && ScaleType == ScaleTypes.Custom; + public bool ScaleLocked => LockProportions; private void FixIfLockedProportions(int index, double newScale) { @@ -214,8 +214,11 @@ namespace MatterHackers.MatterControl.DesignTools.Operations ScaleRatio[index] = newScale; if (ScaleType != ScaleTypes.Custom) { - ScaleType = ScaleTypes.Custom; - Invalidate(new InvalidateArgs(null, InvalidateType.DisplayValues)); + // WIP: switch back to custom scaling (as we are no longer on a fixed scaling) + // needs to: + // - create an undo point for the switch + // - update the properties control to show the right drop down + // - show all the settings } if (LockProportions) @@ -224,6 +227,8 @@ namespace MatterHackers.MatterControl.DesignTools.Operations ScaleRatio[(index + 2) % 3] = ScaleRatio[index]; Invalidate(new InvalidateArgs(null, InvalidateType.DisplayValues)); } + + Rebuild(); } } @@ -299,11 +304,13 @@ namespace MatterHackers.MatterControl.DesignTools.Operations case ScaleTypes.Ultrafuse_316L: ScaleRatio = new Vector3(1.1982, 1.1982, 1.261); Rebuild(); + Invalidate(new InvalidateArgs(null, InvalidateType.DisplayValues)); return; } ScaleRatio = new Vector3(scale, scale, scale); Rebuild(); + Invalidate(new InvalidateArgs(null, InvalidateType.DisplayValues)); } else if (change.Changed == nameof(LockProportions)) { diff --git a/MatterControlLib/DesignTools/Operations/TwistObject3D.cs b/MatterControlLib/DesignTools/Operations/TwistObject3D.cs index 774095017..2393371a1 100644 --- a/MatterControlLib/DesignTools/Operations/TwistObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/TwistObject3D.cs @@ -92,6 +92,7 @@ namespace MatterHackers.MatterControl.DesignTools public bool Advanced { get; set; } = false; [ReadOnly(true)] + [DisplayName("")] // clear the display name so this text will be the full width of the editor public string EasyModeMessage { get; set; } = "You can switch to Advanced mode to get more twist options."; [Description("Allows for the repositioning of the rotation origin")] diff --git a/MatterControlLib/DesignTools/Primitives/CylinderObject3D.cs b/MatterControlLib/DesignTools/Primitives/CylinderObject3D.cs index aa192f5d1..c915e3c70 100644 --- a/MatterControlLib/DesignTools/Primitives/CylinderObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/CylinderObject3D.cs @@ -130,6 +130,10 @@ namespace MatterHackers.MatterControl.DesignTools public bool Advanced { get; set; } = false; + [ReadOnly(true)] + [DisplayName("")] // clear the display name so this text will be the full width of the editor + public string EasyModeMessage { get; set; } = "You can switch to Advanced mode to get more cylinder options."; + [MaxDecimalPlaces(2)] public double StartingAngle { get; set; } = 0; @@ -215,6 +219,8 @@ namespace MatterHackers.MatterControl.DesignTools { endingAngleWidget.Visible = Advanced; } + + change.SetRowVisible(nameof(EasyModeMessage), () => !Advanced); } public void AddObject3DControls(Object3DControlsLayer object3DControlsLayer) diff --git a/MatterControlLib/DesignTools/Primitives/RingObject3D.cs b/MatterControlLib/DesignTools/Primitives/RingObject3D.cs index faa245384..530373d9d 100644 --- a/MatterControlLib/DesignTools/Primitives/RingObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/RingObject3D.cs @@ -29,6 +29,7 @@ either expressed or implied, of the FreeBSD Project. using System; using System.Collections.Generic; +using System.ComponentModel; using System.Threading.Tasks; using MatterHackers.Agg; using MatterHackers.Agg.VertexSource; @@ -82,6 +83,10 @@ namespace MatterHackers.MatterControl.DesignTools public bool Advanced { get; set; } = false; + [ReadOnly(true)] + [DisplayName("")] // clear the display name so this text will be the full width of the editor + public string EasyModeMessage { get; set; } = "You can switch to Advanced mode to get more ring options."; + [MaxDecimalPlaces(2)] public double StartingAngle { get; set; } = 0; @@ -150,6 +155,7 @@ namespace MatterHackers.MatterControl.DesignTools { change.SetRowVisible(nameof(StartingAngle), () => Advanced); change.SetRowVisible(nameof(EndingAngle), () => Advanced); + change.SetRowVisible(nameof(EasyModeMessage), () => !Advanced); } public void AddObject3DControls(Object3DControlsLayer object3DControlsLayer) diff --git a/MatterControlLib/DesignTools/Primitives/SphereObject3D.cs b/MatterControlLib/DesignTools/Primitives/SphereObject3D.cs index 251749d93..02f353552 100644 --- a/MatterControlLib/DesignTools/Primitives/SphereObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/SphereObject3D.cs @@ -29,6 +29,7 @@ either expressed or implied, of the FreeBSD Project. using System; using System.Collections.Generic; +using System.ComponentModel; using System.Threading.Tasks; using MatterHackers.Agg; using MatterHackers.Agg.VertexSource; @@ -81,6 +82,10 @@ namespace MatterHackers.MatterControl.DesignTools public bool Advanced { get; set; } = false; + [ReadOnly(true)] + [DisplayName("")] // clear the display name so this text will be the full width of the editor + public string EasyModeMessage { get; set; } = "You can switch to Advanced mode to get more sphere options."; + [MaxDecimalPlaces(2)] public double StartingAngle { get; set; } = 0; @@ -178,6 +183,7 @@ namespace MatterHackers.MatterControl.DesignTools change.SetRowVisible(nameof(StartingAngle), () => Advanced); change.SetRowVisible(nameof(EndingAngle), () => Advanced); change.SetRowVisible(nameof(LatitudeSides), () => Advanced); + change.SetRowVisible(nameof(EasyModeMessage), () => !Advanced); } public void AddObject3DControls(Object3DControlsLayer object3DControlsLayer) diff --git a/MatterControlLib/DesignTools/Primitives/TorusObject3D.cs b/MatterControlLib/DesignTools/Primitives/TorusObject3D.cs index 35460f69c..5c5d1b0b1 100644 --- a/MatterControlLib/DesignTools/Primitives/TorusObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/TorusObject3D.cs @@ -29,6 +29,7 @@ either expressed or implied, of the FreeBSD Project. using System; using System.Collections.Generic; +using System.ComponentModel; using System.Threading.Tasks; using MatterHackers.Agg; using MatterHackers.Agg.VertexSource; @@ -67,6 +68,10 @@ namespace MatterHackers.MatterControl.DesignTools public bool Advanced { get; set; } = false; + [ReadOnly(true)] + [DisplayName("")] // clear the display name so this text will be the full width of the editor + public string EasyModeMessage { get; set; } = "You can switch to Advanced mode to get more torus options."; + [MaxDecimalPlaces(2)] public double StartingAngle { get; set; } = 0; @@ -157,6 +162,7 @@ namespace MatterHackers.MatterControl.DesignTools change.SetRowVisible(nameof(EndingAngle), () => Advanced); change.SetRowVisible(nameof(RingSides), () => Advanced); change.SetRowVisible(nameof(RingPhaseAngle), () => Advanced); + change.SetRowVisible(nameof(EasyModeMessage), () => !Advanced); } public void AddObject3DControls(Object3DControlsLayer object3DControlsLayer) diff --git a/MatterControlLib/DesignTools/PublicPropertyEditor.cs b/MatterControlLib/DesignTools/PublicPropertyEditor.cs index 3e2b976ed..5bc519589 100644 --- a/MatterControlLib/DesignTools/PublicPropertyEditor.cs +++ b/MatterControlLib/DesignTools/PublicPropertyEditor.cs @@ -670,12 +670,57 @@ namespace MatterHackers.MatterControl.DesignTools { if (readOnly) { - rowContainer = new WrappedTextWidget(stringValue, - textColor: theme.TextColor, - pointSize: 10) + WrappedTextWidget wrappedTextWidget = null; + if (!string.IsNullOrEmpty(property.DisplayName)) { - Margin = 5 - }; + rowContainer = new GuiWidget() + { + HAnchor = HAnchor.Stretch, + VAnchor = VAnchor.Fit, + Margin = 9 + }; + + var displayName = rowContainer.AddChild(new TextWidget(property.DisplayName, + textColor: theme.TextColor, + pointSize: 10) + { + VAnchor = VAnchor.Center, + }); + + var wrapContainer = new GuiWidget() + { + Margin = new BorderDouble(displayName.Width + displayName.Margin.Width + 15, 9, 9, 9), + HAnchor = HAnchor.Stretch, + VAnchor = VAnchor.Fit + }; + wrappedTextWidget = new WrappedTextWidget(stringValue, textColor: theme.TextColor, pointSize: 10) + { + HAnchor = HAnchor.Stretch + }; + wrappedTextWidget.TextWidget.HAnchor = HAnchor.Right; + wrapContainer.AddChild(wrappedTextWidget); + rowContainer.AddChild(wrapContainer); + } + else + { + rowContainer = wrappedTextWidget = new WrappedTextWidget(stringValue, + textColor: theme.TextColor, + pointSize: 10) + { + Margin = 9 + }; + } + + void RefreshField(object s, InvalidateArgs e) + { + if (e.InvalidateType.HasFlag(InvalidateType.DisplayValues)) + { + wrappedTextWidget.Text = property.Value.ToString(); + } + } + + object3D.Invalidated += RefreshField; + wrappedTextWidget.Closed += (s, e) => object3D.Invalidated -= RefreshField; } else // normal edit row { @@ -776,18 +821,6 @@ namespace MatterHackers.MatterControl.DesignTools } }; - void RefreshField(object s, InvalidateArgs e) - { - if (e.InvalidateType.HasFlag(InvalidateType.DisplayValues) - && field.Content is MHDropDownList list - && list.SelectedValue != property.Value.ToString()) - { - propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name)); - } - } - - object3D.Invalidated += RefreshField; - if (addToSettingsRow) { rowContainer = CreateSettingsRow(property, field, theme); diff --git a/MatterControlLib/Library/Widgets/LibraryWidget.cs b/MatterControlLib/Library/Widgets/LibraryWidget.cs index 8fbcaa065..2d8b5c355 100644 --- a/MatterControlLib/Library/Widgets/LibraryWidget.cs +++ b/MatterControlLib/Library/Widgets/LibraryWidget.cs @@ -50,7 +50,6 @@ namespace MatterHackers.MatterControl.PrintLibrary { public class LibraryWidget : GuiWidget { - private readonly FlowLayoutWidget buttonPanel; private readonly ILibraryContext libraryContext; private readonly LibraryListView libraryView; diff --git a/StaticData/Icons/Library/back.png b/StaticData/Icons/Library/back.png new file mode 100644 index 0000000000000000000000000000000000000000..b985c8621dcc143cd4ffc8d8276bdb7364d8fdd6 GIT binary patch literal 5738 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 literal 0 HcmV?d00001 diff --git a/StaticData/Icons/Library/upfolder_20.png b/StaticData/Icons/Library/upfolder_20.png deleted file mode 100644 index e56acb18fada5566bf46eeaee673b92fe905e6d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0y~yU=U$oU=ZS9V_;y2zVJ_gfq{V~-O<;Pfnj4m_n$;o z1_lPs0*}aI1_r(ZAk3I`t&@|1fkCpwHKHUqKdq!Zu_%?HATcwqL@zJ3M8QPQK+n+3 zC3F2(1_p)&o-U3d7XEK1@8)WD5MkYFWUn&mn45>B&L_>rj=57~yZ&T1B_tI0?cR5& z_4OjfUgqZXTA%cUo|{(+*F1TDko(NrDIYnfP0+ufo$sN;*|wprcFp#t8Z&3^PtEL4 znvcaU|IL>ks5`^yUd^F1xm8X2+xrU~xaATUAHOqU^JL05c;&~Z`{S&M#wPZw52Ux1 to%+G{^Y+}gQ$F&p`eV1FSM3MG^PcF4@F_>C85kHCJYD@<);T3K0RWpYZwLSY