From 2026bb220c4e78e66c0b49108758dca5df20887d Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Fri, 5 Feb 2021 17:52:19 -0800 Subject: [PATCH] improving item button logic fix spelling --- MatterControl.Printing/Settings/SliceSettingsFields.cs | 2 +- MatterControlLib/DesignTools/Interfaces/EditorButtonData.cs | 5 ++++- MatterControlLib/DesignTools/PublicPropertyEditor.cs | 5 +++-- MatterControlLib/Library/Widgets/AddPrinterWidget.cs | 4 ++-- MatterControlLib/PartPreviewWindow/View3D/SceneActions.cs | 5 +++-- .../SlicerConfiguration/Settings/ProfileManager.cs | 2 +- .../SlicePresetsWindow/SlicePresetsPage.cs | 2 +- Program.cs | 2 ++ Submodules/agg-sharp | 2 +- 9 files changed, 18 insertions(+), 11 deletions(-) diff --git a/MatterControl.Printing/Settings/SliceSettingsFields.cs b/MatterControl.Printing/Settings/SliceSettingsFields.cs index ddb4d5ede..c210eab1d 100644 --- a/MatterControl.Printing/Settings/SliceSettingsFields.cs +++ b/MatterControl.Printing/Settings/SliceSettingsFields.cs @@ -766,7 +766,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { SlicerConfigName = SettingsKey.has_c_axis, PresentationName = "Has C Axis".Localize(), - HelpText = "The printer has a c axis used by too changer (e3d quad extruder).".Localize(), + HelpText = "The printer has a c axis used by a tool changer (e3d quad extruder).".Localize(), DataEditType = DataEditTypes.CHECK_BOX, ShowAsOverride = true, RequiredDisplayDetail = DisplayDetailRequired.Advanced, diff --git a/MatterControlLib/DesignTools/Interfaces/EditorButtonData.cs b/MatterControlLib/DesignTools/Interfaces/EditorButtonData.cs index 1b8ff7041..ecde84f97 100644 --- a/MatterControlLib/DesignTools/Interfaces/EditorButtonData.cs +++ b/MatterControlLib/DesignTools/Interfaces/EditorButtonData.cs @@ -39,7 +39,10 @@ namespace MatterHackers.MatterControl.DesignTools public string HelpText { get; set; } - public Action SetStates { get; set; } + /// + /// First parameter is the actual button, second parameter is the row containing the button + /// + public Action SetStates { get; set; } public Action Action { get; set; } } diff --git a/MatterControlLib/DesignTools/PublicPropertyEditor.cs b/MatterControlLib/DesignTools/PublicPropertyEditor.cs index 9e97602fa..90bbf7917 100644 --- a/MatterControlLib/DesignTools/PublicPropertyEditor.cs +++ b/MatterControlLib/DesignTools/PublicPropertyEditor.cs @@ -178,13 +178,14 @@ namespace MatterHackers.MatterControl.DesignTools Margin = 5, ToolTipText = editorButtonData.HelpText, }; - editorButtonData.SetStates(editorButton); + var row = new SettingsRow("".Localize(), null, editorButton, theme); + editorButtonData.SetStates(editorButton, row); editorButton.Click += (s, e) => { editorButtonData.Action?.Invoke(); }; - mainContainer.AddChild(new SettingsRow("".Localize(), null, editorButton, theme)); + mainContainer.AddChild(row); } } } diff --git a/MatterControlLib/Library/Widgets/AddPrinterWidget.cs b/MatterControlLib/Library/Widgets/AddPrinterWidget.cs index 59f6b4db3..d20e6e5de 100644 --- a/MatterControlLib/Library/Widgets/AddPrinterWidget.cs +++ b/MatterControlLib/Library/Widgets/AddPrinterWidget.cs @@ -54,7 +54,7 @@ namespace MatterHackers.MatterControl.PrintLibrary : base(theme) { this.nextButtonEnabled = nextButtonEnabled; - this.ExistingPrinterNames = ProfileManager.Instance.ActiveProfiles.Select(p => p.Name).ToList(); + this.ExistingPrinterNames = new HashSet(ProfileManager.Instance.ActiveProfiles.Select(p => p.Name)); this.Name = "AddPrinterWidget"; horizontalSplitter.Panel2.Padding = theme.DefaultContainerPadding; @@ -166,7 +166,7 @@ namespace MatterHackers.MatterControl.PrintLibrary } } - public IReadOnlyList ExistingPrinterNames { get; private set; } + public HashSet ExistingPrinterNames { get; private set; } public TextWidget PrinterNameError { get; private set; } diff --git a/MatterControlLib/PartPreviewWindow/View3D/SceneActions.cs b/MatterControlLib/PartPreviewWindow/View3D/SceneActions.cs index 1a76d8329..dc8270ec5 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/SceneActions.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/SceneActions.cs @@ -237,6 +237,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow // Copy selected item IObject3D newItem = await Task.Run(() => { + var namedItems = new HashSet(scene.DescendantsAndSelf().Select((d) => d.Name)); if (sourceItem != null) { if (sourceItem is SelectionGroupObject3D) @@ -249,7 +250,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow var clonedItem = item.Clone(); clonedItem.Translate(xOffset); // make the name unique - var newName = agg_basics.GetNonCollidingName(item.Name, scene.DescendantsAndSelf().Select((d) => d.Name)); + var newName = agg_basics.GetNonCollidingName(item.Name, namedItems); clonedItem.Name = newName; // add it to the scene scene.Children.Add(clonedItem); @@ -266,7 +267,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow if (!string.IsNullOrWhiteSpace(sourceItem.Name)) { // make the name unique - var newName = agg_basics.GetNonCollidingName(sourceItem.Name, scene.DescendantsAndSelf().Select((d) => d.Name)); + var newName = agg_basics.GetNonCollidingName(sourceItem.Name, namedItems); clonedItem.Name = newName; } diff --git a/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs b/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs index c8b0600bf..7d433def3 100644 --- a/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs +++ b/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs @@ -609,7 +609,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration } string fileName = Path.GetFileNameWithoutExtension(settingsFilePath); - var existingPrinterNames = Instance.ActiveProfiles.Select(p => p.Name); + var existingPrinterNames = new HashSet(Instance.ActiveProfiles.Select(p => p.Name)); var printerInfo = new PrinterInfo { diff --git a/MatterControlLib/SlicerConfiguration/SlicePresetsWindow/SlicePresetsPage.cs b/MatterControlLib/SlicerConfiguration/SlicePresetsWindow/SlicePresetsPage.cs index cc0e53140..cd88831e4 100644 --- a/MatterControlLib/SlicerConfiguration/SlicePresetsWindow/SlicePresetsPage.cs +++ b/MatterControlLib/SlicerConfiguration/SlicePresetsWindow/SlicePresetsPage.cs @@ -85,7 +85,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration duplicateButton.Click += (s, e) => { string sanitizedName = numberMatch.Replace(inlineNameEdit.Text, "").Trim(); - string newProfileName = agg_basics.GetNonCollidingName(sanitizedName, presetsContext.PresetLayers.Select(preset => preset.ValueOrDefault(SettingsKey.layer_name))); + string newProfileName = agg_basics.GetNonCollidingName(sanitizedName, new HashSet(presetsContext.PresetLayers.Select(preset => preset.ValueOrDefault(SettingsKey.layer_name)))); var clonedLayer = presetsContext.PersistenceLayer.Clone(); clonedLayer.Name = newProfileName; diff --git a/Program.cs b/Program.cs index 67082ee7b..a9fead498 100644 --- a/Program.cs +++ b/Program.cs @@ -116,6 +116,7 @@ namespace MatterHackers.MatterControl ApplicationVersion = VersionInfo.Instance.ReleaseVersion }; +#if !DEBUG if (AggContext.OperatingSystem == OSType.Windows) { waitHandle = new EventWaitHandle(false, EventResetMode.ManualReset, "MatterControl#Startup", out bool created); @@ -147,6 +148,7 @@ namespace MatterHackers.MatterControl "Service started: {0};", string.Join(", ", serviceHost.Description.Endpoints.Select(s => s.ListenUri.AbsoluteUri).ToArray())); } +#endif // If MatterControl isn't running and valid files were shelled, schedule a StartupAction to open the files after load var shellFiles = args.Where(f => File.Exists(f) && shellFileExtensions.Contains(Path.GetExtension(f).ToLower())); diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index c7866db87..9693c16ef 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit c7866db87cc4a8d1a7e0ae074d30b4a2986f7f0e +Subproject commit 9693c16ef9df11e1ebb3a4ea5a2bf94916341207