mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-25 18:06:12 +02:00
- **(Add) PrusaSlicer printers:** - Creality HALOT-MAX CL-133 - Nova3D Elfin2 - Nova3D Elfin2 Mono SE - Nova3D Elfin3 Mini - Nova3D Bene4 - Nova3D Bene5 - Nova3D Whale - Nova3D Whale2 - **About box:** - (Add) Runtime information - (Fix) Limit panels width and height to not overgrow - **(Fix) macOS:** - macOS version auto-upgrade (Will only work on future releases and if running v2.16.0 or greater) - Demo file not loading - Auto disable windows scaling factor when on Monjave or greater on new instalations - (Add) Tool: Raise platform on print finish - (Add) CXDLP: Support for Halot MAX CL-133 - (Improvement) Tools: Better handling/validation of tools that are unable to run with abstraction - (Improvement) CWS: Simplify filenames inside the archive - (Upgrade) EmguCV from 4.5.2 to 4.5.3 - (Change) Allow to set layer `LightPWM` to 0 - (Fix) Arrange dropdown arrow from layer image save icon to be at center
72 lines
3.2 KiB
C#
72 lines
3.2 KiB
C#
using Avalonia.Markup.Xaml;
|
|
using UVtools.Core.Operations;
|
|
using UVtools.WPF.Windows;
|
|
|
|
namespace UVtools.WPF.Controls.Tools
|
|
{
|
|
public class ToolRepairLayersControl : ToolControl
|
|
{
|
|
public OperationRepairLayers Operation => BaseOperation as OperationRepairLayers;
|
|
|
|
public ToolRepairLayersControl()
|
|
{
|
|
BaseOperation = new OperationRepairLayers(SlicerFile);
|
|
if (!ValidateSpawn()) return;
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
public static OperationRepairLayers GetOperationRepairLayers() => new (App.SlicerFile)
|
|
{
|
|
RepairIslands = UserSettings.Instance.LayerRepair.RepairIslands,
|
|
RepairResinTraps = UserSettings.Instance.LayerRepair.RepairResinTraps,
|
|
RemoveEmptyLayers = UserSettings.Instance.LayerRepair.RemoveEmptyLayers,
|
|
RemoveIslandsBelowEqualPixelCount = UserSettings.Instance.LayerRepair.RemoveIslandsBelowEqualPixels,
|
|
RemoveIslandsRecursiveIterations = UserSettings.Instance.LayerRepair.RemoveIslandsRecursiveIterations,
|
|
AttachIslandsBelowLayers = UserSettings.Instance.LayerRepair.AttachIslandsBelowLayers,
|
|
GapClosingIterations = UserSettings.Instance.LayerRepair.ClosingIterations,
|
|
NoiseRemovalIterations = UserSettings.Instance.LayerRepair.OpeningIterations,
|
|
};
|
|
|
|
public void SetFromUserSettings()
|
|
{
|
|
Operation.RepairIslands = UserSettings.Instance.LayerRepair.RepairIslands;
|
|
Operation.RepairResinTraps = UserSettings.Instance.LayerRepair.RepairResinTraps;
|
|
Operation.RemoveEmptyLayers = UserSettings.Instance.LayerRepair.RemoveEmptyLayers;
|
|
Operation.RemoveIslandsBelowEqualPixelCount = UserSettings.Instance.LayerRepair.RemoveIslandsBelowEqualPixels;
|
|
Operation.RemoveIslandsRecursiveIterations = UserSettings.Instance.LayerRepair.RemoveIslandsRecursiveIterations;
|
|
Operation.AttachIslandsBelowLayers = UserSettings.Instance.LayerRepair.AttachIslandsBelowLayers;
|
|
Operation.GapClosingIterations = UserSettings.Instance.LayerRepair.ClosingIterations;
|
|
Operation.NoiseRemovalIterations = UserSettings.Instance.LayerRepair.OpeningIterations;
|
|
}
|
|
|
|
public override void Callback(ToolWindow.Callbacks callback)
|
|
{
|
|
switch (callback)
|
|
{
|
|
case ToolWindow.Callbacks.Init:
|
|
case ToolWindow.Callbacks.Loaded:
|
|
if (callback is ToolWindow.Callbacks.Init)
|
|
{
|
|
ParentWindow.LayerRangeVisible = false;
|
|
ParentWindow.IsCheckBox1Visible = true;
|
|
}
|
|
|
|
SetFromUserSettings();
|
|
break;
|
|
case ToolWindow.Callbacks.Checkbox1:
|
|
ParentWindow.LayerRangeVisible = ParentWindow.IsCheckBox1Checked;
|
|
if (!ParentWindow.IsCheckBox1Checked)
|
|
{
|
|
ParentWindow.SelectAllLayers();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|