mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-13 03:47:40 +02:00
ada646f92d
- **(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
61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
using System;
|
|
using Avalonia.Markup.Xaml;
|
|
using UVtools.Core;
|
|
using UVtools.Core.Operations;
|
|
using UVtools.WPF.Windows;
|
|
|
|
namespace UVtools.WPF.Controls.Tools
|
|
{
|
|
public class ToolLayerRemoveControl : ToolControl
|
|
{
|
|
public OperationLayerRemove Operation => BaseOperation as OperationLayerRemove;
|
|
|
|
public uint ExtraLayers => (uint)Math.Max(0, (int)Operation.LayerIndexEnd - Operation.LayerIndexStart + 1);
|
|
|
|
public string InfoLayersStr
|
|
{
|
|
get
|
|
{
|
|
uint extraLayers = ExtraLayers;
|
|
return $"Layers: {SlicerFile.LayerCount} → {SlicerFile.LayerCount - extraLayers} (- {extraLayers})";
|
|
}
|
|
}
|
|
|
|
public string InfoHeightsStr
|
|
{
|
|
get
|
|
{
|
|
float extraHeight = Layer.RoundHeight(ExtraLayers * SlicerFile.LayerHeight);
|
|
return $"Height: {SlicerFile.PrintHeight}mm → {Layer.RoundHeight(App.SlicerFile.PrintHeight - extraHeight)}mm (- {extraHeight}mm)";
|
|
}
|
|
}
|
|
|
|
public ToolLayerRemoveControl()
|
|
{
|
|
BaseOperation = new OperationLayerRemove(SlicerFile);
|
|
if (!ValidateSpawn()) return;
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
public override void Callback(ToolWindow.Callbacks callback)
|
|
{
|
|
switch (callback)
|
|
{
|
|
case ToolWindow.Callbacks.Init:
|
|
case ToolWindow.Callbacks.Loaded:
|
|
Operation.PropertyChanged += (sender, args) =>
|
|
{
|
|
RaisePropertyChanged(nameof(InfoLayersStr));
|
|
RaisePropertyChanged(nameof(InfoHeightsStr));
|
|
};
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|