Skip to content

Commit

Permalink
v3.15.0
Browse files Browse the repository at this point in the history
- **File formats:**
  - (Add) CXDLPv4 format
  - (Improvement) Add missing keys for SL1 format from PrusaSlicer 2.6.0
- **UI**:
  - (Add) About - Terms of Use
  - (Add) Outline: Enclosing circles
  - (Improvement) Minor alteration on how current layer preview cache the contours
  - (Improvement) Revamp tool Edit print parameters
  - (Improvement) Revamp message boxes
  - (Remove) Avalonia.MessageBox dependency in favor of use our own message box
- (Change) PrusaSlicer printers - Creality Halot Mage/Pro: Use CXDLPV4 format instead ENCRYPTED.CTB
  • Loading branch information
sn4k3 committed Jun 26, 2023
1 parent cd38da5 commit ddcc5a2
Show file tree
Hide file tree
Showing 68 changed files with 3,582 additions and 765 deletions.
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
# Changelog

## 26/06/2023 - v3.15.0

- **File formats:**
- (Add) CXDLPv4 format
- (Improvement) Add missing keys for SL1 format from PrusaSlicer 2.6.0
- **UI**:
- (Add) About - Terms of Use
- (Add) Outline: Enclosing circles
- (Improvement) Minor alteration on how current layer preview cache the contours
- (Improvement) Revamp tool Edit print parameters
- (Improvement) Revamp message boxes
- (Remove) Avalonia.MessageBox dependency in favor of use our own message box
- (Change) PrusaSlicer printers - Creality Halot Mage/Pro: Use CXDLPV4 format instead ENCRYPTED.CTB

## 21/06/2023 - v3.14.4

- (Add) File - Rename: Allow to rename the current file with a new name (Ctrl + F2)
- (Improvement) Settings - Issues: Removed the "Compute issues on load" in favor of a new setting which allow to have three types (No not compute issues, Compute time inexpensive issues, Compute the enabled issues). The default option remain unchanged (The second option), if you had the old setting enabled you need to select the last option.
- (Improvement) Tool - Edit print parameters: It now apply settings without close the window, allowing user to do continuous work. After all editing is done the user must manually close the window (#731)
- (Improvement) Resin traps and suction cups: Optimization of contour grouping will now make the detection faster if it contains a large number of contours
- (Change) Lower the default setting for binary threshold for resin traps, from 127 to 100
Expand Down
8 changes: 5 additions & 3 deletions PrusaSlicer/printer/Creality Halot Mage CL-103L.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# generated by PrusaSlicer 2.5.2+win64 on 2023-05-05 at 21:41:15 UTC
# generated by PrusaSlicer 2.6.0+win64 on 2023-06-24 at 15:21:33 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
Expand Down Expand Up @@ -27,7 +27,7 @@ min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_HALOT-MAGE\nFILEFORMAT_ENCRYPTED.CTB\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2\nBottomLiftHeight_7\nLiftHeight_6\nBottomLiftSpeed_80\nLiftSpeed_80\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_HALOT-MAGE\nFILEFORMAT_CXDLPV4\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2\nBottomLiftHeight_7\nLiftHeight_6\nBottomLiftSpeed_80\nLiftSpeed_80\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
Expand All @@ -38,5 +38,7 @@ relative_correction = 1,1
relative_correction_x = 1
relative_correction_y = 1
relative_correction_z = 1
sla_archive_format = SL1
sla_output_precision = 0.001
slow_tilt_time = 8
thumbnails = 116x116,90x290,90x290
thumbnails = 120x120,300x300
8 changes: 5 additions & 3 deletions PrusaSlicer/printer/Creality Halot Mage Pro CL-103.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# generated by PrusaSlicer 2.5.2+win64 on 2023-05-05 at 21:41:31 UTC
# generated by PrusaSlicer 2.6.0+win64 on 2023-06-24 at 15:21:41 UTC
absolute_correction = 0
area_fill = 50
bed_custom_model =
Expand Down Expand Up @@ -27,7 +27,7 @@ min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_HALOT-MAGE-PRO\nFILEFORMAT_ENCRYPTED.CTB\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2\nBottomLiftHeight_7\nLiftHeight_6\nBottomLiftSpeed_80\nLiftSpeed_80\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_HALOT-MAGE-PRO\nFILEFORMAT_CXDLPV4\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2\nBottomLiftHeight_7\nLiftHeight_6\nBottomLiftSpeed_80\nLiftSpeed_80\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
Expand All @@ -38,5 +38,7 @@ relative_correction = 1,1
relative_correction_x = 1
relative_correction_y = 1
relative_correction_z = 1
sla_archive_format = SL1
sla_output_precision = 0.001
slow_tilt_time = 8
thumbnails = 116x116,90x290,90x290
thumbnails = 120x120,300x300
23 changes: 22 additions & 1 deletion PrusaSlicer/sla_print/Universal 0.10 - Light Supports.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
# generated by PrusaSlicer 2.3.0+win64 on 2021-03-24 at 03:00:47 UTC
# generated by PrusaSlicer 2.6.0+win64 on 2023-06-24 at 15:32:46 UTC
branchingsupport_base_diameter = 4
branchingsupport_base_height = 1
branchingsupport_base_safety_distance = 1
branchingsupport_buildplate_only = 0
branchingsupport_critical_angle = 45
branchingsupport_head_front_diameter = 0.4
branchingsupport_head_penetration = 0.2
branchingsupport_head_width = 1
branchingsupport_max_bridge_length = 5
branchingsupport_max_bridges_on_pillar = 2
branchingsupport_max_pillar_link_distance = 10
branchingsupport_max_weight_on_model = 10
branchingsupport_object_elevation = 5
branchingsupport_pillar_connection_mode = dynamic
branchingsupport_pillar_diameter = 1
branchingsupport_pillar_widening_factor = 0.5
branchingsupport_small_pillar_diameter_percent = 50%
compatible_printers =
compatible_printers_condition =
default_sla_print_profile =
Expand All @@ -24,22 +41,26 @@ pad_wall_slope = 90
pad_wall_thickness = 0.2
sla_print_settings_id =
slice_closing_radius = 0.005
slicing_mode = regular
support_base_diameter = 3
support_base_height = 1
support_base_safety_distance = 1
support_buildplate_only = 0
support_critical_angle = 45
support_enforcers_only = 0
support_head_front_diameter = 0.6
support_head_penetration = 0.4
support_head_width = 3
support_max_bridge_length = 10
support_max_bridges_on_pillar = 3
support_max_pillar_link_distance = 10
support_max_weight_on_model = 10
support_object_elevation = 5
support_pillar_connection_mode = zigzag
support_pillar_diameter = 1.3
support_pillar_widening_factor = 0
support_points_density_relative = 100
support_points_minimal_distance = 1
support_small_pillar_diameter_percent = 60%
support_tree_type = default
supports_enable = 1
50 changes: 9 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,58 +99,26 @@ But also, I need victims for test subject. Proceed at your own risk!

# Known File Formats

- SL1 (PrusaSlicer)
- SL1S (PrusaSlicer)
- Zip (Chitubox)
- Photon (Chitubox)
- Photons (Chitubox)
- CBDDLP (Chitubox)
- CTB (Chitubox)
- PHZ (Chitubox)
- FDG (Voxelab)
- PWS (Photon Workshop)
- PW0 (Photon Workshop)
- PWX (Photon Workshop)
- DLP (Photon Workshop)
- DL2P (Photon Workshop)
- PWMO (Photon Workshop)
- PWMA (Photon Workshop)
- PWMS (Photon Workshop)
- PWMX (Photon Workshop)
- PMX2 (Photon Workshop)
- PWMB (Photon Workshop)
- PWSQ (Photon Workshop)
- PX6S (Photon Workshop)
- PM3 (Photon Workshop)
- PM3N (Photon Workshop)
- PM3M (Photon Workshop)
- PM3R (Photon Workshop)
- PM5 (Photon Workshop)
- PM5S (Photon Workshop)
- PWC (Photon Workshop)
- SL1, SL1S (PrusaSlicer)
- Photon, Photons, CBDDLP, CTB, PHZ, FDG, ZIP (Chitubox)
- PWS, PW0, PWX, DLP, DL2P, PWMO, PWMA, PWMS, PWMX, PMX2, PWMB, PWSQ, PX6S, PM3, PM3N, PM3M, PM3R, PM5, PM5S, PWC (Photon Workshop)
- JXS (GKone Slicer)
- ZCode (UnizMaker)
- ZCodex (Z-Suite)
- CWS (NovaMaker)
- RGB.CWS (Nova Bene4 Mono / Elfin2 Mono SE)
- CWS (NovaMaker), RGB.CWS (Nova Bene4 Mono / Elfin2 Mono SE)
- XML.CWS (Wanhao Workshop)
- MDLP (Makerbase MKS-DLP v1)
- GR1 (GR1 Workshop)
- CXDLP (Creality Box)
- CXDLP, CXDLPV4 (Creality Box)
- GOO (Elegoo)
- LGS (Longer Orange 10)
- LGS30 (Longer Orange 30)
- LGS120 (Longer Orange 120)
- LGS4K (Longer Orange 4K & mono)
- LGS (Longer Orange 10), LGS30 (Longer Orange 30), LGS120 (Longer Orange 120), LGS4K (Longer Orange 4K & mono)
- Flashforge SVGX
- Anet N4
- Anet N7
- ZIP (Generic / Phrozen Zip)
- VDA.ZIP (Voxeldance Additive)
- Anet N4, Anet N7
- OSLA (Open SLA universal binary file)
- VDT (Voxeldance Tango)
- OSF (Vlare Open File Format)
- UVJ (Vendor-neutral format for manual manipulation)
- VDT (Voxeldance Tango), VDA.ZIP (Voxeldance Additive)
- ZIP (Generic / Phrozen Zip)
- Image files (png, jpg, jpeg, jp2, tif, bmp, pbm, pgm, ras, sr)

# PrusaSlicer
Expand Down
19 changes: 11 additions & 8 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
- (Add) File - Rename: Allow to rename the current file with a new name (Ctrl + F2)
- (Improvement) Tool - Edit print parameters: It now apply settings without close the window, allowing user to do continuous work. After all editing is done the user must manually close the window (#731)
- (Improvement) Resin traps and suction cups: Optimization of contour grouping will now make the detection faster if it contain a large number of contours
- (Change) Lower the default setting for binary threshold for resin traps, from 127 to 100
- (Fix) macOS: Unable to have settings on Monterey or above due the settings folder no longer exists on recent systems. (#728)
Your current settings will not be automatically transferred to the new location, to do such please copy them over or use the following command before upgrade: `mv "$HOME/.local/share/UVtools" "$HOME/Library/Application Support"`
If you already ran UVtools and would like to transfer old settings, use: `cp -Rf "$HOME/.local/share/UVtools/" "$HOME/Library/Application Support/UVtools/"`
- (Upgrade) .NET from 6.0.16 to 6.0.18
- **File formats:**
- (Add) CXDLPv4 format
- (Improvement) Add missing keys for SL1 format from PrusaSlicer 2.6.0
- **UI**:
- (Add) About - Terms of Use
- (Add) Outline: Enclosing circles
- (Improvement) Minor alteration on how current layer preview cache the contours
- (Improvement) Revamp tool Edit print parameters
- (Improvement) Revamp message boxes
- (Remove) Avalonia.MessageBox dependency in favor of use our own message box
- (Change) PrusaSlicer printers - Creality Halot Mage/Pro: Use CXDLPV4 format instead ENCRYPTED.CTB

101 changes: 52 additions & 49 deletions Scripts/010 Editor/cxdlpv4.bt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

LittleEndian();

enum <uint> BOOL { False, True };

struct HEADER {
BigEndian();
uint32 MagicSize <fgcolor=cBlack, bgcolor=cWhite>;
Expand All @@ -24,8 +26,8 @@ struct HEADER {
float BedSizeY <fgcolor=cBlack, bgcolor=cRed>;
float BedSizeZ <fgcolor=cBlack, bgcolor=cRed>;

float TotalHeightMilimeter <fgcolor=cBlack, bgcolor=cRed>;
float LayerHeightMilimeter <fgcolor=cBlack, bgcolor=cRed>;
float PrintHeight <fgcolor=cBlack, bgcolor=cRed>;
float LayerHeight <fgcolor=cBlack, bgcolor=cRed>;
uint BottomLayersCount <fgcolor=cBlack, bgcolor=cRed>;

uint PreviewSmallOffsetAddress <fgcolor=cBlack, bgcolor=cRed>;
Expand All @@ -45,14 +47,14 @@ struct HEADER {
} header;

struct PREVIEW {
uint ResolutionX <fgcolor=cBlack, bgcolor=cRed>;
uint ResolutionY <fgcolor=cBlack, bgcolor=cRed>;
uint ImageOffset <fgcolor=cBlack, bgcolor=cRed>;
uint ImageLength <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown1 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown2 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown3 <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown4 <fgcolor=cBlack, bgcolor=cRed>;
uint ResolutionX <fgcolor=cBlack, bgcolor=cGreen>;
uint ResolutionY <fgcolor=cBlack, bgcolor=cGreen>;
uint ImageOffset <fgcolor=cBlack, bgcolor=cGreen>;
uint ImageLength <fgcolor=cBlack, bgcolor=cGreen>;
uint Unknown1 <fgcolor=cBlack, bgcolor=cGreen>;
uint Unknown2 <fgcolor=cBlack, bgcolor=cGreen>;
uint Unknown3 <fgcolor=cBlack, bgcolor=cGreen>;
uint Unknown4 <fgcolor=cBlack, bgcolor=cGreen>;

ubyte Data[ImageLength] <fgcolor=cBlack, bgcolor=cYellow>;
};
Expand All @@ -79,26 +81,26 @@ struct PRINT_PARAMETERS {
};

struct SLICER_INFO {
float BottomLiftHeight2 <fgcolor=cBlack, bgcolor=cRed>;
float BottomLiftSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float LiftHeight2 <fgcolor=cBlack, bgcolor=cRed>;
float LiftSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float RetractHeight2 <fgcolor=cBlack, bgcolor=cRed>;
float RetractSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeAfterLift <fgcolor=cBlack, bgcolor=cRed>;

uint PerLayerSettings <fgcolor=cBlack, bgcolor=cRed, format=hex>; // 0 to not support, 1 to support
uint TimestampMinutes <fgcolor=cBlack, bgcolor=cRed>;
uint AntiAliasLevel <fgcolor=cBlack, bgcolor=cRed>;
uint SoftwareVersion <fgcolor=cBlack, bgcolor=cRed, format=hex>; // 0
float RestTimeAfterRetract <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeBeforeLift <fgcolor=cBlack, bgcolor=cRed>;
float BottomExposureTime <fgcolor=cBlack, bgcolor=cRed>;
float ExposureTime <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeAfterLift <fgcolor=cBlack, bgcolor=cRed>;
uint TransitionLayerCount <fgcolor=cBlack, bgcolor=cRed>;
uint Padding <fgcolor=cBlack, bgcolor=cRed>;
uint Padding <fgcolor=cBlack, bgcolor=cRed>;
float BottomLiftHeight2 <fgcolor=cBlack, bgcolor=cGreen>;
float BottomLiftSpeed2 <fgcolor=cBlack, bgcolor=cGreen>;
float LiftHeight2 <fgcolor=cBlack, bgcolor=cGreen>;
float LiftSpeed2 <fgcolor=cBlack, bgcolor=cGreen>;
float RetractHeight2 <fgcolor=cBlack, bgcolor=cGreen>;
float RetractSpeed2 <fgcolor=cBlack, bgcolor=cGreen>;
float RestTimeAfterLift <fgcolor=cBlack, bgcolor=cGreen>;

BOOL PerLayerSettings <fgcolor=cBlack, bgcolor=cGreen>; // 0 to not support, 1 to support
uint TimestampMinutes <fgcolor=cBlack, bgcolor=cGreen>;
uint AntiAliasLevel <fgcolor=cBlack, bgcolor=cGreen>;
uint SoftwareVersion <fgcolor=cBlack, bgcolor=cGreen, format=hex>; // 0
float RestTimeAfterRetract <fgcolor=cBlack, bgcolor=cGreen>;
float RestTimeBeforeLift <fgcolor=cBlack, bgcolor=cGreen>;
float BottomExposureTime <fgcolor=cBlack, bgcolor=cGreen>;
float ExposureTime <fgcolor=cBlack, bgcolor=cGreen>;
float RestTimeAfterLift <fgcolor=cBlack, bgcolor=cGreen>;
uint TransitionLayerCount <fgcolor=cBlack, bgcolor=cGreen>;
uint Padding <fgcolor=cBlack, bgcolor=cGreen>;
uint Padding <fgcolor=cBlack, bgcolor=cGreen>;
};

if(header.PreviewSmallOffsetAddress > 0)
Expand All @@ -123,31 +125,31 @@ if(header.SlicerOffset > 0){
SLICER_INFO SlicerInfo <fgcolor=cBlack, bgcolor=cYellow>;
}

struct LAYER_DATA {
float LayerPositionZ <fgcolor=cBlack, bgcolor=cRed>;
float LayerExposure <fgcolor=cBlack, bgcolor=cRed>;
struct LAYER_DEF {
float PositionZ <fgcolor=cBlack, bgcolor=cRed>;
float ExposureTime <fgcolor=cBlack, bgcolor=cRed>;
float LightOffSeconds <fgcolor=cBlack, bgcolor=cRed>;
uint DataAddress <fgcolor=cBlack, bgcolor=cRed>;
uint DataSize <fgcolor=cBlack, bgcolor=cRed>;
uint DataType <fgcolor=cBlack, bgcolor=cRed>;
uint DataType <fgcolor=cBlack, bgcolor=cRed>; // pixel=0,line=1, segment=2
uint CentroidDistance <fgcolor=cBlack, bgcolor=cRed>;
uint TotalArea <fgcolor=cBlack, bgcolor=cRed>;
uint LargestArea <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown <fgcolor=cBlack, bgcolor=cRed>;
uint Unknown <fgcolor=cBlack, bgcolor=cRed>;
};

struct LAYER_DATAEX {
float LiftHeight <fgcolor=cBlack, bgcolor=cRed>;
float LiftSpeed <fgcolor=cBlack, bgcolor=cRed>;
float LiftHeight2 <fgcolor=cBlack, bgcolor=cRed>;
float LiftSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float RetractSpeed <fgcolor=cBlack, bgcolor=cRed>;
float RetractHeight2 <fgcolor=cBlack, bgcolor=cRed>;
float RetractSpeed2 <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeBeforeLift <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeAfterLift <fgcolor=cBlack, bgcolor=cRed>;
float RestTimeAfterRetract <fgcolor=cBlack, bgcolor=cRed>;
float LightPWM <fgcolor=cBlack, bgcolor=cRed>;
struct LAYER_DEFEX {
float LiftHeight <fgcolor=cBlack, bgcolor=cGreen>;
float LiftSpeed <fgcolor=cBlack, bgcolor=cGreen>;
float LiftHeight2 <fgcolor=cBlack, bgcolor=cGreen>;
float LiftSpeed2 <fgcolor=cBlack, bgcolor=cGreen>;
float RetractSpeed <fgcolor=cBlack, bgcolor=cGreen>;
float RetractHeight2 <fgcolor=cBlack, bgcolor=cGreen>;
float RetractSpeed2 <fgcolor=cBlack, bgcolor=cGreen>;
float RestTimeBeforeLift <fgcolor=cBlack, bgcolor=cGreen>;
float RestTimeAfterLift <fgcolor=cBlack, bgcolor=cGreen>;
float RestTimeAfterRetract <fgcolor=cBlack, bgcolor=cGreen>;
float LightPWM <fgcolor=cBlack, bgcolor=cGreen>;
};


Expand All @@ -159,21 +161,22 @@ FSeek(header.LayersDefinitionOffsetAddress);
struct LAYERS {
local uint i;
for( i = 0; i < header.LayerCount; i++ ){
LAYER_DATA layerData <fgcolor=cBlack, bgcolor=cYellow>;
LAYER_DEF layerData <fgcolor=cBlack, bgcolor=cYellow>;
}
} layers;

struct LAYERSEX {
local uint i;

for( i = 0; i < header.LayerCount; i++ ){
LAYER_DATAEX layerDataEx;
LAYER_DEFEX layerDataEx;
LAYER_RLE lD(layers.layerData[i].DataSize - 44);
}

} layersEx;


BigEndian();
FSeek(FileSize()-4);
uint CheckSum <fgcolor=cBlack, bgcolor=cWhite>;
LittleEndian();
4 changes: 2 additions & 2 deletions Scripts/UVtools.ScriptSample/ScriptAdvancedDialogSample.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,10 @@ public bool ScriptExecute()
// Trigger an message box to user, will also show in console runs but in text form
var result = MessageBoxManager.Standard.ShowDialog("This is my script",
"Script is about to start, are you sure you want to continue?\n" +
"This will destroy your file!", AbstractMessageBoxStandard.MessageButtons.YesNo).Result;
"This will destroy your file!", MessageButtons.YesNo).Result;

// throw error without stack trace
if (result != AbstractMessageBoxStandard.MessageButtonResult.Yes) throw new MessageException("User wanted to abort the script :(");
if (result != MessageButtonResult.Yes) throw new MessageException("User wanted to abort the script :(");

// Write some text to show after the operation has completed with success
Operation.AfterCompleteReport = "My operation has performed the following changes:\n";
Expand Down
Loading

0 comments on commit ddcc5a2

Please sign in to comment.