From 3149572fbc43c951895af1903eeda3b7a1b107be Mon Sep 17 00:00:00 2001 From: oneill <516991+oneill@users.noreply.github.com> Date: Sun, 31 Jul 2022 18:27:18 +0900 Subject: [PATCH] Added the name of the slice setting to the 'Save to' menu items --- .../SlicerConfiguration/SliceSettingsRow.cs | 10 +++- StaticData/Translations/Master.txt | 6 ++ .../SliceSettingsTests.cs | 57 +++++++++++++++++++ 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/MatterControlLib/SlicerConfiguration/SliceSettingsRow.cs b/MatterControlLib/SlicerConfiguration/SliceSettingsRow.cs index f6f230bb0..ddd06ac7d 100644 --- a/MatterControlLib/SlicerConfiguration/SliceSettingsRow.cs +++ b/MatterControlLib/SlicerConfiguration/SliceSettingsRow.cs @@ -325,7 +325,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration // add menu item to set quality { - var setAsQualityMenuItem = subMenu.CreateMenuItem("Quality Setting".Localize()); + var qualitySettingName = printer.Settings.QualityLayer?.Name; + var setAsQualityMenuItem = subMenu.CreateMenuItem(!string.IsNullOrEmpty(qualitySettingName) ? + "Quality Setting '{0}'".Localize().FormatWith(qualitySettingName) : + "Quality Setting".Localize()); setAsQualityMenuItem.Enabled = canSaveQuality; setAsQualityMenuItem.Click += (s, e) => { @@ -338,7 +341,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration // add menu item to set material { - var setAsMaterialMenuItem = subMenu.CreateMenuItem("Material Setting".Localize()); + var materialSettingName = printer.Settings.MaterialLayer?.Name; + var setAsMaterialMenuItem = subMenu.CreateMenuItem(!string.IsNullOrEmpty(materialSettingName) ? + "Material Setting '{0}'".Localize().FormatWith(materialSettingName) : + "Material Setting".Localize()); setAsMaterialMenuItem.Enabled = canSaveMaterial; setAsMaterialMenuItem.Click += (s, e) => { diff --git a/StaticData/Translations/Master.txt b/StaticData/Translations/Master.txt index 13151d6fc..fb12aef41 100644 --- a/StaticData/Translations/Master.txt +++ b/StaticData/Translations/Master.txt @@ -2782,6 +2782,9 @@ Translated:Material density. Only used for estimating mass in the Layer View. English:Material Setting Translated:Material Setting +English:Material Setting '{0}' +Translated:Material Setting '{0}' + English:Material Settings Translated:Material Settings @@ -3898,6 +3901,9 @@ Translated:Quality English:Quality Setting Translated:Quality Setting +English:Quality Setting '{0}' +Translated:Quality Setting '{0}' + English:Queue Translated:Queue diff --git a/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs b/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs index 637b83018..71b4d9a95 100644 --- a/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs +++ b/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs @@ -520,6 +520,63 @@ namespace MatterHackers.MatterControl.Tests.Automation }, maxTimeToRun: 1000); } + [Test, ChildProcessTest] + public async Task ValidateSaveMenuItemLabels() + { + await MatterControlUtilities.RunTest((testRunner) => + { + testRunner.AddAndSelectPrinter("Airwolf 3D", "HD"); + + // Navigate to Slice Settings Tab and make sure Layer Thickness row is visible + testRunner.SwitchToSliceSettings() + .NavigateToSliceSettingsField(SettingsKey.layer_height); + + // Set Quality to "Coarse" and Material to "ABS" + testRunner.ClickByName("Quality") + .ClickByName("Coarse Menu") + .ClickByName("Material") + .ClickByName("ABS Menu") + .RightClickByName("Layer Thickness OverrideIndicator", offset: new Point2D(30, 0)) + .ClickByName("Save to Menu Item") + .Delay(.5); + Assert.IsTrue(testRunner.NameExists("Quality Setting 'Coarse' Menu Item")); + Assert.IsTrue(testRunner.NameExists("Material Setting 'ABS' Menu Item")); + + // Set Quality to "Fine" and Material to "BENDLAY" + testRunner.ClickByName("Quality") + .ClickByName("Fine Menu") + .ClickByName("Material") + .ClickByName("BENDLAY Menu") + .RightClickByName("Layer Thickness OverrideIndicator", offset: new Point2D(30, 0)) + .ClickByName("Save to Menu Item") + .Delay(.5); + Assert.IsTrue(testRunner.NameExists("Quality Setting 'Fine' Menu Item")); + Assert.IsTrue(testRunner.NameExists("Material Setting 'BENDLAY' Menu Item")); + + // Set Quality to none + testRunner.ClickByName("Quality") + .ClickByName("- none - Menu Item") + .RightClickByName("Layer Thickness OverrideIndicator", offset: new Point2D(30, 0)) + .ClickByName("Save to Menu Item") + .Delay(.5); + Assert.IsTrue(testRunner.NameExists("Quality Setting Menu Item")); + Assert.IsTrue(testRunner.NameExists("Material Setting 'BENDLAY' Menu Item")); + + // Set Quality to "Standard" and Material to none + testRunner.ClickByName("Quality") + .ClickByName("Standard Menu") + .ClickByName("Material") + .ClickByName("- none - Menu Item") + .RightClickByName("Layer Thickness OverrideIndicator", offset: new Point2D(30, 0)) + .ClickByName("Save to Menu Item") + .Delay(.5); + Assert.IsTrue(testRunner.NameExists("Quality Setting 'Standard' Menu Item")); + Assert.IsTrue(testRunner.NameExists("Material Setting Menu Item")); + + return Task.CompletedTask; + }, maxTimeToRun: 1000); + } + [Test, ChildProcessTest] public async Task DeleteProfileWorksForGuest() {