Got copy user overrides in. Butter updating of settings

This commit is contained in:
Lars Brubaker 2022-04-13 17:44:10 -07:00
parent 9c40370cc2
commit d6996afb4b
5 changed files with 98 additions and 10 deletions

View file

@ -387,6 +387,8 @@ namespace MatterHackers.MatterControl
public event EventHandler<WorkspacesChangedEventArgs> WorkspacesChanged;
public event EventHandler ReloadSettingsTriggered;
public void ReloadSettings(PrinterConfig printer)
{
var printerTabPage = this.MainView.Descendants<PrinterTabPage>().Where(page => page.Printer == printer).FirstOrDefault();
@ -415,6 +417,8 @@ namespace MatterHackers.MatterControl
sideBar.ReplacePage("Slice Settings", new SliceSettingsWidget(printer, settingsContext, Theme));
ApplicationController.Instance.IsReloading = false;
}
ReloadSettingsTriggered?.Invoke(null, null);
}
public static Action WebRequestFailed;

View file

@ -92,8 +92,79 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
public string ThumbnailName => nameof(PartSettingsObject3D);
private void UpdateSettingsDisplay(PrinterConfig containingPrinter)
{
if (containingPrinter != null)
{
this.Invalidate(InvalidateType.DisplayValues);
ApplicationController.Instance.ReloadSettings(containingPrinter);
// refresh the properties pannel by unselecting and selecting
containingPrinter.Bed.Scene.SelectedItem = null;
containingPrinter.Bed.Scene.SelectedItem = this;
}
}
public static HashSet<string> settingsToIgnore = new HashSet<string>()
{
SettingsKey.spiral_vase,
SettingsKey.layer_to_pause,
SettingsKey.perimeter_acceleration,
SettingsKey.default_acceleration,
SettingsKey.t1_extrusion_move_speed_multiplier,
SettingsKey.bed_surface,
SettingsKey.brim_extruder,
SettingsKey.support_material_extruder,
SettingsKey.support_material_interface_extruder,
SettingsKey.material_color,
SettingsKey.material_color_1,
SettingsKey.material_color_2,
SettingsKey.material_color_3,
SettingsKey.filament_diameter,
SettingsKey.filament_density,
SettingsKey.filament_cost,
SettingsKey.temperature,
SettingsKey.temperature1,
SettingsKey.temperature2,
SettingsKey.temperature3,
SettingsKey.bed_temperature,
SettingsKey.bed_temperature_blue_tape,
SettingsKey.bed_temperature_buildtak,
SettingsKey.bed_temperature_garolite,
SettingsKey.bed_temperature_glass,
SettingsKey.bed_temperature_kapton,
SettingsKey.bed_temperature_pei,
SettingsKey.bed_temperature_pp,
SettingsKey.inactive_cool_down,
SettingsKey.seconds_to_reheat,
};
public IEnumerable<EditorButtonData> GetEditorButtonsData()
{
var containingPrinter = this.ContainingPrinter();
if (containingPrinter != null)
{
yield return new EditorButtonData()
{
Action = () =>
{
var settingsContext = new SettingsContext(containingPrinter, null, NamedSettingsLayers.All);
foreach (var setting in containingPrinter.Settings.UserLayer)
{
var data = SliceSettingsRow.GetStyleData(containingPrinter, ApplicationController.Instance.Theme, settingsContext, setting.Key, true);
if (!settingsToIgnore.Contains(setting.Key) && data.showRestoreButton)
{
Overrides[setting.Key] = setting.Value;
}
}
UpdateSettingsDisplay(containingPrinter);
},
Name = "Add User Overrides".Localize(),
HelpText = "Copy in all current user overides".Localize()
};
}
if (ApplicationController.Instance.UserHasPermission(this))
{
yield return new EditorButtonData()
@ -101,6 +172,8 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
Action = () =>
{
var settings = new PrinterSettings();
// set this after the PrinterConfig is constructed to change it to overrides
settings.GetSceneLayer = () => Overrides;
var printer = new PrinterConfig(settings);
// set this after the PrinterConfig is constructed to change it to overrides
settings.GetSceneLayer = () => Overrides;
@ -114,15 +187,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
editMaterialPresetsPage.Closed += (s, e2) =>
{
ApplicationController.Instance.AcitveSlicePresetsPage = null;
var containingPrinter = this.ContainingPrinter();
if (containingPrinter != null)
{
this.Invalidate(InvalidateType.DisplayValues);
ApplicationController.Instance.ReloadSettings(containingPrinter);
// refresh the properties pannel by unselecting and selecting
containingPrinter.Bed.Scene.SelectedItem = null;
containingPrinter.Bed.Scene.SelectedItem = this;
}
UpdateSettingsDisplay(containingPrinter);
};
ApplicationController.Instance.AcitveSlicePresetsPage = editMaterialPresetsPage;

View file

@ -68,6 +68,19 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
var sliceSettingsWidget = CreateSliceSettingsWidget(printer, presetsContext.PersistenceLayer);
contentRow.AddChild(sliceSettingsWidget);
void ReloadSettings(object s, EventArgs e)
{
var newSliceSettingsWidget = CreateSliceSettingsWidget(printer, presetsContext.PersistenceLayer);
contentRow.ReplaceChild(sliceSettingsWidget, newSliceSettingsWidget);
contentRow.Width += 1;
contentRow.Width -= 1;
sliceSettingsWidget = newSliceSettingsWidget;
}
ApplicationController.Instance.ReloadSettingsTriggered += ReloadSettings;
this.Closed += (s, e) => ApplicationController.Instance.ReloadSettingsTriggered -= ReloadSettings;
GuiWidget duplicateButton = null;
if (presetsContext.SetAsActive != null)

View file

@ -247,6 +247,9 @@ Translated:Add to Queue
English:Add to Selection
Translated:Add to Selection
English:Add User Overrides
Translated:Add User Overrides
English:Additional Printing Errors
Translated:Additional Printing Errors
@ -1042,6 +1045,9 @@ Translated:Copy everything but hardware specific calibration settings
English:Copy extrusions data
Translated:Copy extrusions data
English:Copy in all current user overides
Translated:Copy in all current user overides
English:Copy Mesh
Translated:Copy Mesh

@ -1 +1 @@
Subproject commit 7ea2bbbf3634ab37698640cc184ac2d2755cffbe
Subproject commit 303fb1cf3baada642aaa46eb4d2e9fd546045bf7