mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-12 11:32:33 +02:00
2c7ad09dc0
- (Change) `Layer.IsBottomLayer` no longer calculate the value using the position of the layer, a new property `IsBottomLayerByHeight` is now used to get that result - (Improvement) Tool - Double exposure: Increase the bottom layer count per cloned bottom layer - (Improvement) Calibration - Exposure time finder: Set the absolute bottom layer count accordingly when also testing for bottom time - (Improvement) Goo: Enforce Wait times or Light-off-delay flag based on property set - (Fix) AnyCubic and Goo: `PerLayerSetting` flag was set inverted causing printer not to follow layer settings when it should and also the otherwise (#689) - (Fix) Tool - Scripting: Prevent from reload UI multiple times when using profiles (#694)
77 lines
3.7 KiB
C#
77 lines
3.7 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,
|
|
RepairSuctionCups = UserSettings.Instance.LayerRepair.RepairSuctionCups,
|
|
RemoveEmptyLayers = UserSettings.Instance.LayerRepair.RemoveEmptyLayers,
|
|
RemoveIslandsBelowEqualPixelCount = UserSettings.Instance.LayerRepair.RemoveIslandsBelowEqualPixels,
|
|
RemoveIslandsRecursiveIterations = UserSettings.Instance.LayerRepair.RemoveIslandsRecursiveIterations,
|
|
AttachIslandsBelowLayers = UserSettings.Instance.LayerRepair.AttachIslandsBelowLayers,
|
|
ResinTrapsOverlapBy = UserSettings.Instance.LayerRepair.ResinTrapsOverlapBy,
|
|
SuctionCupsVentHole = UserSettings.Instance.LayerRepair.SuctionCupsVentHole,
|
|
GapClosingIterations = UserSettings.Instance.LayerRepair.ClosingIterations,
|
|
NoiseRemovalIterations = UserSettings.Instance.LayerRepair.OpeningIterations,
|
|
IssuesDetectionConfig = App.MainWindow.GetIssuesDetectionConfiguration()
|
|
};
|
|
|
|
public void SetFromUserSettings()
|
|
{
|
|
Operation.RepairIslands = UserSettings.Instance.LayerRepair.RepairIslands;
|
|
Operation.RepairResinTraps = UserSettings.Instance.LayerRepair.RepairResinTraps;
|
|
Operation.RepairSuctionCups = UserSettings.Instance.LayerRepair.RepairSuctionCups;
|
|
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.ResinTrapsOverlapBy = UserSettings.Instance.LayerRepair.ResinTrapsOverlapBy;
|
|
Operation.SuctionCupsVentHole = UserSettings.Instance.LayerRepair.SuctionCupsVentHole;
|
|
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:
|
|
ParentWindow.LayerRangeVisible = false;
|
|
ParentWindow.IsCheckBox1Visible = true;
|
|
|
|
SetFromUserSettings();
|
|
Operation.IssuesDetectionConfig = App.MainWindow.GetIssuesDetectionConfiguration();
|
|
break;
|
|
case ToolWindow.Callbacks.AfterLoadProfile:
|
|
Operation.IssuesDetectionConfig = App.MainWindow.GetIssuesDetectionConfiguration();
|
|
break;
|
|
case ToolWindow.Callbacks.Checkbox1:
|
|
ParentWindow.LayerRangeVisible = ParentWindow.IsCheckBox1Checked;
|
|
if (!ParentWindow.IsCheckBox1Checked)
|
|
{
|
|
ParentWindow.SelectAllLayers();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
} |