Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sn4k3/UVtools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Conceição <Tiago_caza@hotmail.com>2022-09-20 21:40:26 +0300
committerTiago Conceição <Tiago_caza@hotmail.com>2022-09-20 21:40:26 +0300
commit57dbbce7845cc563103bfbe084fb3392c3cda84d (patch)
tree51a2b924b2644e5639de1bfa6187ce2046dff725
parentcae2f061baeca302ed38399bba4dfa4619024d68 (diff)
v3.6.6v3.6.6
- **UI:** - (Improvement) Auto show a horizontal scroll bar on wider than screen contents on the tool windows - (Improvement) Move normal windows to zero position if negative and auto constrain height if necessary - (Improvement) Set a minimum width and minimum height for tool windows - (Fix) Setting - "Allow resize the tool windows" had been lost and no effect when checked - (Add) Windows MSI - Option: Add installation directory to system PATH environment variable - (Improvement) Better fetch of UVtools.Core.dll on PowerShell scripts under Windows - (Improvement) Better handling in get the process output, this fixes processor name not being shown on macOS
-rw-r--r--CHANGELOG.md19
-rw-r--r--RELEASE_NOTES.md19
-rw-r--r--Scripts/UVtools.Powershell/Erode-Bottom.ps135
-rw-r--r--Scripts/UVtools.Powershell/List-Layers.ps135
-rw-r--r--Scripts/UVtools.Powershell/README.md54
-rw-r--r--UVtools.Core/SystemOS/SystemAware.cs103
-rw-r--r--UVtools.Core/UVtools.Core.csproj2
-rw-r--r--UVtools.Installer/Code/HeatGeneratedFileList.wxs76
-rw-r--r--UVtools.Installer/Code/Product.wxs21
-rw-r--r--UVtools.Installer/Code/UI_CustomInstallDirDlg.wxs48
-rw-r--r--UVtools.WPF/Controls/WindowEx.cs27
-rw-r--r--UVtools.WPF/UVtools.WPF.csproj2
-rw-r--r--UVtools.WPF/Windows/MessageWindow.axaml3
-rw-r--r--UVtools.WPF/Windows/MessageWindow.axaml.cs4
-rw-r--r--UVtools.WPF/Windows/ToolWindow.axaml28
-rw-r--r--UVtools.WPF/Windows/ToolWindow.axaml.cs11
-rw-r--r--build/createRelease.ps13
17 files changed, 358 insertions, 132 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d31bb56..0d6e702 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,12 +1,23 @@
# Changelog
+## 20/09/2022 - v3.6.6
+
+- **UI:**
+ - (Improvement) Auto show a horizontal scroll bar on wider than screen contents on the tool windows
+ - (Improvement) Move normal windows to zero position if negative and auto constrain height if necessary
+ - (Improvement) Set a minimum width and minimum height for tool windows
+ - (Fix) Setting - "Allow resize the tool windows" had been lost and no effect when checked
+- (Add) Windows MSI - Option: Add installation directory to system PATH environment variable
+- (Improvement) Better fetch of UVtools.Core.dll on PowerShell scripts under Windows
+- (Improvement) Better handling in get the process output, this fixes processor name not being shown on macOS
+
## 18/09/2022 - v3.6.5
- **UI:**
- - (Add) Groups to convert menu
- - (Improvement) Re-arrange convert menu order
- - (Fix) Settings: Open file dialog filter dropdown width
- - (Fix) Hide "Debug tools" from "Help" menu
+ - (Add) Groups to convert menu
+ - (Improvement) Re-arrange convert menu order
+ - (Fix) Settings: Open file dialog filter dropdown width
+ - (Fix) Hide "Debug tools" from "Help" menu
- **PrusaSlicer:**
- (Add) AnyCubic Photon D2
- (Add) Creality Halot Ray CL925
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index e62d09d..57d9827 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,14 +1,9 @@
- **UI:**
- - (Add) Groups to convert menu
- - (Improvement) Re-arrange convert menu order
- - (Fix) Settings: Open file dialog filter dropdown width
-- **PrusaSlicer:**
- - (Add) AnyCubic Photon D2
- - (Add) Creality Halot Ray CL925
- - (Add) Elegoo Saturn 8K
- - (Add) Uniformation GKtwo
- - (Add) Nova3D Whale3 Pro
- - (Add) Phrozen Sonic Mighty 8K
-- (Add) AnyCubic Photon D2 (.dl2p) compatibility to AnyCubic file format
-- (Fix) Hide "Debug tools" from "Help" menu
+ - (Improvement) Auto show a horizontal scroll bar on wider than screen contents on the tool windows
+ - (Improvement) Move normal windows to zero position if negative and auto constrain height if necessary
+ - (Improvement) Set a minimum width and minimum height for tool windows
+ - (Fix) Setting - "Allow resize the tool windows" had been lost and no effect when checked
+- (Add) Windows MSI - Option: Add installation directory to system PATH environment variable
+- (Improvement) Better fetch of UVtools.Core.dll on PowerShell scripts under Windows
+- (Improvement) Better handling in get the process output, this fixes processor name not being shown on macOS
diff --git a/Scripts/UVtools.Powershell/Erode-Bottom.ps1 b/Scripts/UVtools.Powershell/Erode-Bottom.ps1
index 527b8aa..b7c47bf 100644
--- a/Scripts/UVtools.Powershell/Erode-Bottom.ps1
+++ b/Scripts/UVtools.Powershell/Erode-Bottom.ps1
@@ -42,17 +42,38 @@ Write-Output "Version: $_VERSION"
Write-Output "###############################################"
try{
-if(Test-Path "$Env:UVTOOLS_PATH${dirSeparator}${coreDll}" -PathType Leaf){
- Add-Type -Path "$Env:UVTOOLS_PATH${dirSeparator}${coreDll}"
+$coreDllFullPath = $null
+if(Test-Path "${coreDll}" -PathType Leaf){
+ $coreDllFullPath = "${coreDll}"
+}
+elseif(Test-Path "$Env:UVTOOLS_PATH${dirSeparator}${coreDll}" -PathType Leaf){
+ $coreDllFullPath = "$Env:UVTOOLS_PATH${dirSeparator}${coreDll}"
}
elseif(Test-Path "${_CORE_PATH}${dirSeparator}${coreDll}" -PathType Leaf) {
- Add-Type -Path "${_CORE_PATH}${dirSeparator}${coreDll}"
+ $coreDllFullPath = "${_CORE_PATH}${dirSeparator}${coreDll}"
} else {
+ if($IsWindows) {
+ $UVtoolsInstallDirReg = Get-ItemProperty -Path HKCU:\Software\UVtools -Name InstallDir -ErrorAction SilentlyContinue
+ if($UVtoolsInstallDirReg -and $UVtoolsInstallDirReg.InstallDir -and (Test-Path "$($UVtoolsInstallDirReg.InstallDir)${coreDll}" -PathType Leaf)) {
+ $coreDllFullPath = "$($UVtoolsInstallDirReg.InstallDir)${coreDll}"
+ }else{
+ foreach ($path in $Env:Path.Split(';')){
+ if (!$path.EndsWith('UVtools\') -and !(Test-Path "${path}${coreDll}" -PathType Leaf)) {continue}
+ $coreDllFullPath = "${path}${coreDll}"
+ }
+ }
+ }
+}
+
+if($coreDllFullPath){
+ Add-Type -Path "${coreDllFullPath}"
+}
+else {
Write-Error "Unable to find $coreDll, solutions are:
-1) Open powershell with admin and run: [System.Environment]::SetEnvironmentVariable('UVTOOLS_PATH','FOLDER/PATH/TO/UVTOOLS', [System.EnvironmentVariableTarget]::User)
-2) Edit the script and set the _CORE_PATH variable with the FOLDER/PATH/TO/UVTOOLS
-Path example: 'C:\Program Files (x86)\UVtools'
-Exiting now!"
+ 1) Open powershell with admin and run: [System.Environment]::SetEnvironmentVariable('UVTOOLS_PATH','FOLDER/PATH/TO/UVTOOLS', [System.EnvironmentVariableTarget]::User)
+ 2) Edit the script and set the _CORE_PATH variable with the FOLDER/PATH/TO/UVTOOLS
+ Path example: 'C:\Program Files (x86)\UVtools'
+ Exiting now!"
return
}
diff --git a/Scripts/UVtools.Powershell/List-Layers.ps1 b/Scripts/UVtools.Powershell/List-Layers.ps1
index 4aef1ee..511b884 100644
--- a/Scripts/UVtools.Powershell/List-Layers.ps1
+++ b/Scripts/UVtools.Powershell/List-Layers.ps1
@@ -42,17 +42,38 @@ Write-Output "Version: $_VERSION"
Write-Output "###############################################"
try{
-if(Test-Path "$Env:UVTOOLS_PATH${dirSeparator}${coreDll}" -PathType Leaf){
- Add-Type -Path "$Env:UVTOOLS_PATH${dirSeparator}${coreDll}"
+$coreDllFullPath = $null
+if(Test-Path "${coreDll}" -PathType Leaf){
+ $coreDllFullPath = "${coreDll}"
+}
+elseif(Test-Path "$Env:UVTOOLS_PATH${dirSeparator}${coreDll}" -PathType Leaf){
+ $coreDllFullPath = "$Env:UVTOOLS_PATH${dirSeparator}${coreDll}"
}
elseif(Test-Path "${_CORE_PATH}${dirSeparator}${coreDll}" -PathType Leaf) {
- Add-Type -Path "${_CORE_PATH}${dirSeparator}${coreDll}"
+ $coreDllFullPath = "${_CORE_PATH}${dirSeparator}${coreDll}"
} else {
+ if($IsWindows) {
+ $UVtoolsInstallDirReg = Get-ItemProperty -Path HKCU:\Software\UVtools -Name InstallDir -ErrorAction SilentlyContinue
+ if($UVtoolsInstallDirReg -and $UVtoolsInstallDirReg.InstallDir -and (Test-Path "$($UVtoolsInstallDirReg.InstallDir)${coreDll}" -PathType Leaf)) {
+ $coreDllFullPath = "$($UVtoolsInstallDirReg.InstallDir)${coreDll}"
+ }else{
+ foreach ($path in $Env:Path.Split(';')){
+ if (!$path.EndsWith('UVtools\') -and !(Test-Path "${path}${coreDll}" -PathType Leaf)) {continue}
+ $coreDllFullPath = "${path}${coreDll}"
+ }
+ }
+ }
+}
+
+if($coreDllFullPath){
+ Add-Type -Path "${coreDllFullPath}"
+}
+else {
Write-Error "Unable to find $coreDll, solutions are:
-1) Open powershell with admin and run: [System.Environment]::SetEnvironmentVariable('UVTOOLS_PATH','FOLDER/PATH/TO/UVTOOLS', [System.EnvironmentVariableTarget]::User)
-2) Edit the script and set the _CORE_PATH variable with the FOLDER/PATH/TO/UVTOOLS
-Path example: 'C:\Program Files (x86)\UVtools'
-Exiting now!"
+ 1) Open powershell with admin and run: [System.Environment]::SetEnvironmentVariable('UVTOOLS_PATH','FOLDER/PATH/TO/UVTOOLS', [System.EnvironmentVariableTarget]::User)
+ 2) Edit the script and set the _CORE_PATH variable with the FOLDER/PATH/TO/UVTOOLS
+ Path example: 'C:\Program Files (x86)\UVtools'
+ Exiting now!"
return
}
diff --git a/Scripts/UVtools.Powershell/README.md b/Scripts/UVtools.Powershell/README.md
index 2867f60..67d81b0 100644
--- a/Scripts/UVtools.Powershell/README.md
+++ b/Scripts/UVtools.Powershell/README.md
@@ -8,9 +8,9 @@ You will get same performance as native calling, plus you can stack all your act
## Requirements
-* UVtools
-* [PowerShell >= 7.1](https://github.com/PowerShell/PowerShell/releases)
-* [Visual Studio Code](https://code.visualstudio.com/) (Optional but easier to run and edit scripts)
+- UVtools
+- [PowerShell >= 7.1](https://github.com/PowerShell/PowerShell/releases)
+- [Visual Studio Code](https://code.visualstudio.com/) (Optional but easier to run and edit scripts)
## How to run scripts
@@ -18,21 +18,21 @@ You will get same performance as native calling, plus you can stack all your act
Never run scripts from untrusted sources! Always inspect the script content before run something new from others.
Always try to run scripts with non-adminstration privileges.
-1. First you need to register the UVtools install directory under a environment variable. This will
+1. First and if not on Windows you need to register the UVtools install directory under a environment variable. This will
allow you to run scripts without have to modify each script to put the UVtools path in order to run them.
- * Open a PowerShell instance as admin
- * Enter: `[System.Environment]::SetEnvironmentVariable('UVTOOLS_PATH','FOLDER/PATH/TO/UVTOOLS', [System.EnvironmentVariableTarget]::User)`
- * Replace 'FOLDER/PATH/TO/UVTOOLS' with your UVtools instalation folder
- * Run command
- * Run: `$Env:UVTOOLS_PATH` to confirm if path is registed
- * Quit terminal
- * Note: You need to repeat this step if you change install directory
- * If your system is unable to register a environment you need to manuall set the path on each script
+ - Open a PowerShell instance as admin
+ - Enter: `[System.Environment]::SetEnvironmentVariable('UVTOOLS_PATH','FOLDER/PATH/TO/UVTOOLS', [System.EnvironmentVariableTarget]::User)`
+ - Replace 'FOLDER/PATH/TO/UVTOOLS' with your UVtools instalation folder
+ - Run command
+ - Run: `$Env:UVTOOLS_PATH` to confirm if path is registed
+ - Quit terminal
+ - Note: You need to repeat this step if you change install directory
+ - If your system is unable to register a environment you need to manuall set the path on each script
2. Download and open a script with Visual Studio Code
- * After open a .ps1 file for the first time, visual code will ask if you want to install the PowerShell extension, say 'yes' and wait for instalation
+ - After open a .ps1 file for the first time, visual code will ask if you want to install the PowerShell extension, say 'yes' and wait for instalation
3. Click on the play arrow (Run) or F5
4. Script will run and prompt for inputs
- * The easier way to input a file is drag and drop the file on the terminal
+ - The easier way to input a file is drag and drop the file on the terminal
## Documentation
@@ -45,9 +45,9 @@ eg: `$slicerFile.`, if the list don't show up, press CTRL+Space, that should for
Take **[Erode-Bottom.ps1](https://github.com/sn4k3/UVtools/blob/master/UVtools.Scripts/Erode-Bottom.ps1)** as bootstrap and minimal script, read each line and start exploring!
-* [Core - Source code](https://github.com/sn4k3/UVtools/tree/master/UVtools.Core)
-* [FileFormat.cs - File format functions & variables](https://github.com/sn4k3/UVtools/blob/master/UVtools.Core/FileFormats/FileFormat.cs)
- * How to load file:
+- [Core - Source code](https://github.com/sn4k3/UVtools/tree/master/UVtools.Core)
+- [FileFormat.cs - File format functions & variables](https://github.com/sn4k3/UVtools/blob/master/UVtools.Core/FileFormats/FileFormat.cs)
+ - How to load file:
```Powershell
# Find a file format given a file path, $true = is file path, $true = Create a new instance
# Returns null if file is invalid
@@ -55,12 +55,12 @@ Take **[Erode-Bottom.ps1](https://github.com/sn4k3/UVtools/blob/master/UVtools.S
if(!$slicerFile){ return } # Invalid file, exit
$slicerFile.Decode($inputFile)
```
-* [Layer.cs - Layer representation and hold it's own data](https://github.com/sn4k3/UVtools/blob/master/UVtools.Core/Layer/Layer.cs)
- * How to access:
- * `$slicerFile[layerIndex]`
- * `$slicerFile.LayerManager[layerIndex]` (Alternative)
- * `$slicerFile.LayerManager.Layers[layerIndex]` (Alternative)
- * Example:
+- [Layer.cs - Layer representation and hold it's own data](https://github.com/sn4k3/UVtools/blob/master/UVtools.Core/Layer/Layer.cs)
+ - How to access:
+ - `$slicerFile[layerIndex]`
+ - `$slicerFile.LayerManager[layerIndex]` (Alternative)
+ - `$slicerFile.LayerManager.Layers[layerIndex]` (Alternative)
+ - Example:
```Powershell
Write-Output $slicerFile[layerIndex].PositionZ
Write-Output $slicerFile[layerIndex].ExposureTime
@@ -73,10 +73,10 @@ Take **[Erode-Bottom.ps1](https://github.com/sn4k3/UVtools/blob/master/UVtools.S
Write-Output $slicerFile[layerIndex].NonZeroPixelCount
Write-Output $slicerFile[layerIndex].IsModified
```
-* [LayerManager.cs - The layer manager that keeps all layers within the file](https://github.com/sn4k3/UVtools/blob/master/UVtools.Core/Layer/LayerManager.cs)
- * How to access: `$slicerFile.LayerManager`
-* [Operations - Applies operation over layers, the tools menu on the GUI](https://github.com/sn4k3/UVtools/tree/master/UVtools.Core/Operations)
- * Example:
+- [LayerManager.cs - The layer manager that keeps all layers within the file](https://github.com/sn4k3/UVtools/blob/master/UVtools.Core/Layer/LayerManager.cs)
+ - How to access: `$slicerFile.LayerManager`
+- [Operations - Applies operation over layers, the tools menu on the GUI](https://github.com/sn4k3/UVtools/tree/master/UVtools.Core/Operations)
+ - Example:
```Powershell
# Erode bottom layers
$morph = [UVtools.Core.Operations.OperationMorph]::new($slicerFile)
diff --git a/UVtools.Core/SystemOS/SystemAware.cs b/UVtools.Core/SystemOS/SystemAware.cs
index 561b8fe..a3781cb 100644
--- a/UVtools.Core/SystemOS/SystemAware.cs
+++ b/UVtools.Core/SystemOS/SystemAware.cs
@@ -165,11 +165,6 @@ public static class SystemAware
return key?.GetValue("ProcessorNameString")?.ToString();
}
- if (OperatingSystem.IsMacOS())
- {
- return GetProcessOutput("sysctl", "-n machdep.cpu.brand_string")?.TrimEnd('\r', '\n');
- }
-
if (OperatingSystem.IsLinux())
{
if (!File.Exists("/proc/cpuinfo")) return null;
@@ -183,6 +178,11 @@ public static class SystemAware
return match.Groups[1].ToString();
}
+
+ if (OperatingSystem.IsMacOS())
+ {
+ return GetProcessOutput("sysctl", "-n machdep.cpu.brand_string")?.TrimEnd('\r', '\n');
+ }
}
catch (Exception e)
{
@@ -270,22 +270,93 @@ public static class SystemAware
return OperatingSystem.IsWindows() ? $"{executable}.exe" : executable;
}
- public static string? GetProcessOutput(string filename, string? arguments = null)
+ public static (string standardOutput, string errorOutput) GetProcessOutputWithErrors(string filename, string? arguments = null, string? workingDirectory = null, int timeout = Timeout.Infinite)
{
- using var proc = Process.Start(new ProcessStartInfo
+ using var process = new Process();
+ process.StartInfo.WorkingDirectory = workingDirectory;
+ process.StartInfo.FileName = filename;
+ process.StartInfo.Arguments = arguments;
+ process.StartInfo.CreateNoWindow = true;
+ process.StartInfo.RedirectStandardOutput = true;
+ process.StartInfo.RedirectStandardError = true;
+ process.StartInfo.UseShellExecute = false;
+
+ var standardOutput = new StringBuilder();
+ var errorOutput = new StringBuilder();
+
+
+ using var outputWaitHandle = new AutoResetEvent(false);
+ using var errorWaitHandle = new AutoResetEvent(false);
+
+ process.OutputDataReceived += (sender, e) =>
{
- FileName = filename,
- Arguments = arguments,
- RedirectStandardOutput = true,
- UseShellExecute = false,
- });
- if (proc is null) return null;
+ if (e.Data is null)
+ {
+ outputWaitHandle.Set();
+ }
+ else
+ {
+ standardOutput.AppendLine(e.Data);
+ }
+ };
+
+ process.ErrorDataReceived += (sender, e) =>
+ {
+ if (e.Data is null)
+ {
+ errorWaitHandle.Set();
+ }
+ else
+ {
+ errorOutput.AppendLine(e.Data);
+ }
+ };
+
+ process.Start();
+
+ process.BeginErrorReadLine();
+ process.BeginOutputReadLine();
+
+ process.WaitForExit(timeout);
+ outputWaitHandle.WaitOne(timeout);
+ errorWaitHandle.WaitOne(timeout);
+
+ return (standardOutput.ToString(), errorOutput.ToString());
+ }
+
+ public static string GetProcessOutput(string filename, string? arguments = null, string? workingDirectory = null, int timeout = Timeout.Infinite)
+ {
+ using var process = new Process();
+ process.StartInfo.WorkingDirectory = workingDirectory;
+ process.StartInfo.FileName = filename;
+ process.StartInfo.Arguments = arguments;
+ process.StartInfo.CreateNoWindow = true;
+ process.StartInfo.RedirectStandardOutput = true;
+ process.StartInfo.UseShellExecute = false;
+
var stringBuilder = new StringBuilder();
- while (!proc.HasExited)
+
+ using var outputWaitHandle = new AutoResetEvent(false);
+
+ process.OutputDataReceived += (sender, e) =>
{
- stringBuilder.Append(proc.StandardOutput.ReadToEnd());
- }
+ if (e.Data is null)
+ {
+ outputWaitHandle.Set();
+ }
+ else
+ {
+ stringBuilder.AppendLine(e.Data);
+ }
+ };
+
+ process.Start();
+
+ process.BeginOutputReadLine();
+ process.WaitForExit(timeout);
+ outputWaitHandle.WaitOne(timeout);
+
return stringBuilder.ToString();
}
diff --git a/UVtools.Core/UVtools.Core.csproj b/UVtools.Core/UVtools.Core.csproj
index bc8270f..1be2e3a 100644
--- a/UVtools.Core/UVtools.Core.csproj
+++ b/UVtools.Core/UVtools.Core.csproj
@@ -10,7 +10,7 @@
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
<PackageProjectUrl>https://github.com/sn4k3/UVtools</PackageProjectUrl>
<Description>MSLA/DLP, file analysis, calibration, repair, conversion and manipulation</Description>
- <Version>3.6.5</Version>
+ <Version>3.6.6</Version>
<Copyright>Copyright © 2020 PTRTECH</Copyright>
<PackageIcon>UVtools.png</PackageIcon>
<Platforms>AnyCPU;x64</Platforms>
diff --git a/UVtools.Installer/Code/HeatGeneratedFileList.wxs b/UVtools.Installer/Code/HeatGeneratedFileList.wxs
index 388e753..df7d2eb 100644
--- a/UVtools.Installer/Code/HeatGeneratedFileList.wxs
+++ b/UVtools.Installer/Code/HeatGeneratedFileList.wxs
@@ -395,6 +395,9 @@
<Component Id="cmp4CA8A8377EC5F30AF1C8BF2ABE2B916B" Guid="*">
<File Id="filF574BF00EFD9442D9E5911559F8D7CB3" KeyPath="yes" Source="$(var.HarvestPath)\System.Collections.Specialized.dll" />
</Component>
+ <Component Id="cmp3B9C9B9385920A10BBA478F4EB3B7ACD" Guid="*">
+ <File Id="fil88E781372CFBEE069440964A1F323BF4" KeyPath="yes" Source="$(var.HarvestPath)\System.CommandLine.dll" />
+ </Component>
<Component Id="cmp86FA15ED6758AB64222C7B872722AE2A" Guid="*">
<File Id="fil4462620259C842921061439D47904D07" KeyPath="yes" Source="$(var.HarvestPath)\System.ComponentModel.Annotations.dll" />
</Component>
@@ -896,6 +899,21 @@
<Component Id="cmp10FE7896CFCD38A6CD8142CE0A08210B" Guid="*">
<File Id="filE27A63E22148F18A6C0CC29BC2B31930" KeyPath="yes" Source="$(var.HarvestPath)\UVtools.sh" />
</Component>
+ <Component Id="cmpA5EF28FE13D2F5A6BF7F313B516C07FF" Guid="*">
+ <File Id="fil93951F99F1262E05D49777984D888E67" KeyPath="yes" Source="$(var.HarvestPath)\UVtoolsCmd.deps.json" />
+ </Component>
+ <Component Id="cmp0689D02B3B151F4009E983276282DEB8" Guid="*">
+ <File Id="filA84B1BA77A184C68087EC604EB5B9C1C" KeyPath="yes" Source="$(var.HarvestPath)\UVtoolsCmd.dll" />
+ </Component>
+ <Component Id="cmp599EF0BF15905A04DD89A2D533A560CE" Guid="*">
+ <File Id="fil230DE403941FD431769F78376288092D" KeyPath="yes" Source="$(var.HarvestPath)\UVtoolsCmd.exe" />
+ </Component>
+ <Component Id="cmp3E7487FC5691D74F45793AEDB7DA0615" Guid="*">
+ <File Id="filC909C604D80638D8DF2CD3DFD6ED880F" KeyPath="yes" Source="$(var.HarvestPath)\UVtoolsCmd.pdb" />
+ </Component>
+ <Component Id="cmp0FE8807B1234A038F2E65D7F13679252" Guid="*">
+ <File Id="filF4D8BF038F9BF7DFF32BFC101F0D8C64" KeyPath="yes" Source="$(var.HarvestPath)\UVtoolsCmd.runtimeconfig.json" />
+ </Component>
<Component Id="cmp6A53CEABB3F189BA4137E2F343C2BDED" Guid="*">
<File Id="filEB1D097EE95ECA4245C95B68206CCF6B" KeyPath="yes" Source="$(var.HarvestPath)\UVtools_demo_file.sl1" />
</Component>
@@ -1348,6 +1366,9 @@
<Component Id="cmp37322184723F32E87C32C6657838819B" Guid="*">
<File Id="fil4D20B50559B84222B72C88ECD59231E8" KeyPath="yes" Source="$(var.HarvestPath)\cs\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmpB9BB68262D6F364DB61C2FD54DBEC5C6" Guid="*">
+ <File Id="filEE0D5F74D4CD51B10AEEE02C2F12161A" KeyPath="yes" Source="$(var.HarvestPath)\cs\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dir242DC17B8DFC53C13CAF172FC08B730A" Name="de">
<Component Id="cmp85D8AE1A380C35C1F931FDA83B69C206" Guid="*">
@@ -1362,6 +1383,9 @@
<Component Id="cmpF8FBE43A8EA39C78103156EADA7945B6" Guid="*">
<File Id="fil7B754F5D8B3AF0FF84798ECEB66F230E" KeyPath="yes" Source="$(var.HarvestPath)\de\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmp9C9F9A8C48E144F01800F7BE0B23E099" Guid="*">
+ <File Id="filD5311452B32D096826D32259CC06C429" KeyPath="yes" Source="$(var.HarvestPath)\de\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dir9AE38F4F5CB5E565E774521E138F44FD" Name="es">
<Component Id="cmpA138D05BA7C9460CAD63D20A63C165EE" Guid="*">
@@ -1376,6 +1400,9 @@
<Component Id="cmp3B1E5DA2C5015F32B4CAC36177A0AD6C" Guid="*">
<File Id="fil82066FEF1F56A4BE328F9A51416BB8CF" KeyPath="yes" Source="$(var.HarvestPath)\es\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmpE16B65E6AF1BF0C046FEF89E6D8AA2D0" Guid="*">
+ <File Id="fil45C8D9ACD13BF45C1E1214CE86BB3AF4" KeyPath="yes" Source="$(var.HarvestPath)\es\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dirB55DFDA91FEE7CCCBC65CA7493B75748" Name="fr">
<Component Id="cmp02F007F6E349BF1E45B754BBDA475E79" Guid="*">
@@ -1390,6 +1417,9 @@
<Component Id="cmp0B5CBD1C9582ED64279F4795FCF6FD94" Guid="*">
<File Id="filF1C818BF553CE0B1EC73EDB71B6C4A44" KeyPath="yes" Source="$(var.HarvestPath)\fr\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmpD46F44A1C6353143CAEEA32D23C705D2" Guid="*">
+ <File Id="fil7CC5CACB4A01C88FB3527EFFFC7B01C0" KeyPath="yes" Source="$(var.HarvestPath)\fr\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dir45DE18DD71F3E8DD6BE4A0E2B48778C8" Name="it">
<Component Id="cmp102B5DCE898C00C320BA06B659830D47" Guid="*">
@@ -1404,6 +1434,9 @@
<Component Id="cmp3687991C08BE7AEF0C4FA46A5908C16C" Guid="*">
<File Id="fil38D4054D95423E588065E5F96ADDF13E" KeyPath="yes" Source="$(var.HarvestPath)\it\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmp05678FE6EC643214A6A8D23DFA7AE822" Guid="*">
+ <File Id="fil46DDA9E5EDB260BE4E8E7CA5CF3A8B0F" KeyPath="yes" Source="$(var.HarvestPath)\it\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dir997B58958EFAE06BB705E870622AB899" Name="ja">
<Component Id="cmp30BCC02AA5E2FFB6E2A18CE70A2036D7" Guid="*">
@@ -1418,6 +1451,9 @@
<Component Id="cmp8F0AFDC4BB2EF3A1B85A68C7C34278A2" Guid="*">
<File Id="fil84C91A88F7718550B6C87B85346ED7CC" KeyPath="yes" Source="$(var.HarvestPath)\ja\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmpC8398AF47E20A91750FDB27E2EA845AC" Guid="*">
+ <File Id="fil9615928A77FBA265BD5D69D1D9DB4022" KeyPath="yes" Source="$(var.HarvestPath)\ja\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dirF152986C1E6339E5EF84FD1370841521" Name="ko">
<Component Id="cmpE8F42607C46BFC0A18FABF940AD6FA25" Guid="*">
@@ -1432,6 +1468,9 @@
<Component Id="cmp5E4B200F1A4C5FDBA941BAF5A85D0253" Guid="*">
<File Id="fil55C442AE2ED96907CCC78BA2BDCA17BA" KeyPath="yes" Source="$(var.HarvestPath)\ko\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmpEC42E1B66622887B11916A3BC8B33433" Guid="*">
+ <File Id="filCD3BD6B25561E25694B08D153B29EFBE" KeyPath="yes" Source="$(var.HarvestPath)\ko\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dirB6C57608593BDEA87B90E388CF59E0E8" Name="pl">
<Component Id="cmp453447E5E1D259CC610930DA5FCA889C" Guid="*">
@@ -1446,6 +1485,9 @@
<Component Id="cmp094C979D272BA58FE5C8614401B2D2A2" Guid="*">
<File Id="fil6CA57BE7F80EFE1450E7B9C52ABA6D4A" KeyPath="yes" Source="$(var.HarvestPath)\pl\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmp8BBB7575523A411E8D4A3305EA653BDC" Guid="*">
+ <File Id="filA670FDDC078C32CB187D51BB0A60BF2B" KeyPath="yes" Source="$(var.HarvestPath)\pl\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dir339F53F3A11C56B053FD1FEC9B438810" Name="pt-BR">
<Component Id="cmpDD32D43AD2385F827B9330031F55CD10" Guid="*">
@@ -1460,6 +1502,9 @@
<Component Id="cmp132B1ECF6D51D06422F1B26490EBC9A1" Guid="*">
<File Id="fil68EA4B6BF7BDB77D2A744F52DDC9381C" KeyPath="yes" Source="$(var.HarvestPath)\pt-BR\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmp4A7E19170CD7F50BA4AECCF1C62DC983" Guid="*">
+ <File Id="fil5C04C0B35A0A57FDB5643C5615D3B4EB" KeyPath="yes" Source="$(var.HarvestPath)\pt-BR\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dirE9205C68F964857267FD3312DBFF9A91" Name="ru">
<Component Id="cmpDEC9D2448E75375534A64A2FFFB8ECA4" Guid="*">
@@ -1474,6 +1519,9 @@
<Component Id="cmpABF8AB076AB25BF4F6F5883694AD5666" Guid="*">
<File Id="fil20DBAB512840A8C954468CD79D885C1F" KeyPath="yes" Source="$(var.HarvestPath)\ru\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmp564C80D36F172E4317802E9007BA888A" Guid="*">
+ <File Id="filB92D9079553F7B3842DD6DC9CADCE294" KeyPath="yes" Source="$(var.HarvestPath)\ru\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dirE562A4656FE03253EA39D17E8127BA05" Name="tr">
<Component Id="cmpD055CD4BE37AC69A6C3179A8EF50014E" Guid="*">
@@ -1488,6 +1536,9 @@
<Component Id="cmp8149269E4085AD11DCE2CEB24D0B5146" Guid="*">
<File Id="fil3DF355F8336F9F39F805899775DE103D" KeyPath="yes" Source="$(var.HarvestPath)\tr\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmp751198041C5687C4EC51BBF3F1DFD15B" Guid="*">
+ <File Id="fil5CAAF4FE2EB27D38B0562D3D9C41C3EA" KeyPath="yes" Source="$(var.HarvestPath)\tr\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dir4A8DD77DBC79775EC39CACBC8AA06107" Name="zh-Hans">
<Component Id="cmpE74E1BFCBF5DAF24230ADED9F41CA273" Guid="*">
@@ -1502,6 +1553,9 @@
<Component Id="cmp8A90A0DA436254684AFD659A0EC91C6F" Guid="*">
<File Id="fil34568C9B0A854E7A3F600616A38EBE44" KeyPath="yes" Source="$(var.HarvestPath)\zh-Hans\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmpCA421AD9C018D39263D035C87777C6DD" Guid="*">
+ <File Id="fil1CEBED6A1CA0BF9A3062BC30EF913619" KeyPath="yes" Source="$(var.HarvestPath)\zh-Hans\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
<Directory Id="dir083BC4C92455CD933FA93376E7459C85" Name="zh-Hant">
<Component Id="cmp572927903A3BC09BE84571AB3FCED87B" Guid="*">
@@ -1516,6 +1570,9 @@
<Component Id="cmp8007C403B2B0EE0CC6585944312D705B" Guid="*">
<File Id="filB8835712DC63B7023A140F1026EE7FAE" KeyPath="yes" Source="$(var.HarvestPath)\zh-Hant\Microsoft.CodeAnalysis.Scripting.resources.dll" />
</Component>
+ <Component Id="cmp7D94C646F68C1D38D6249B8EF959C559" Guid="*">
+ <File Id="fil6A5ACD3A20F080FD657B7596B83D8F5C" KeyPath="yes" Source="$(var.HarvestPath)\zh-Hant\System.CommandLine.resources.dll" />
+ </Component>
</Directory>
</DirectoryRef>
</Fragment>
@@ -1652,6 +1709,7 @@
<ComponentRef Id="cmp969F6EDF2594F3809D7A716387BF8894" />
<ComponentRef Id="cmp1340CAF41213E899D78462CF580BF2AD" />
<ComponentRef Id="cmp4CA8A8377EC5F30AF1C8BF2ABE2B916B" />
+ <ComponentRef Id="cmp3B9C9B9385920A10BBA478F4EB3B7ACD" />
<ComponentRef Id="cmp86FA15ED6758AB64222C7B872722AE2A" />
<ComponentRef Id="cmp9556FA278AFE7EC69B499286701C47DD" />
<ComponentRef Id="cmp912EE5CA7F0C138422055A3D0C240C38" />
@@ -1819,6 +1877,11 @@
<ComponentRef Id="cmpAB7F561FED8AF0E04BD19C1A49D60088" />
<ComponentRef Id="cmp4A9972573F3D42E417332BD1AB8B12DF" />
<ComponentRef Id="cmp10FE7896CFCD38A6CD8142CE0A08210B" />
+ <ComponentRef Id="cmpA5EF28FE13D2F5A6BF7F313B516C07FF" />
+ <ComponentRef Id="cmp0689D02B3B151F4009E983276282DEB8" />
+ <ComponentRef Id="cmp599EF0BF15905A04DD89A2D533A560CE" />
+ <ComponentRef Id="cmp3E7487FC5691D74F45793AEDB7DA0615" />
+ <ComponentRef Id="cmp0FE8807B1234A038F2E65D7F13679252" />
<ComponentRef Id="cmp6A53CEABB3F189BA4137E2F343C2BDED" />
<ComponentRef Id="cmpF4BDAE8A068B7352141D703E6D5E677B" />
<ComponentRef Id="cmpC45B25996E14AF1484591C266BD5D670" />
@@ -1966,54 +2029,67 @@
<ComponentRef Id="cmpDC3B50B369901B069599D5A9DCFC4737" />
<ComponentRef Id="cmp567E1D848FA3F3C2D261218B840CB447" />
<ComponentRef Id="cmp37322184723F32E87C32C6657838819B" />
+ <ComponentRef Id="cmpB9BB68262D6F364DB61C2FD54DBEC5C6" />
<ComponentRef Id="cmp85D8AE1A380C35C1F931FDA83B69C206" />
<ComponentRef Id="cmp7EE71344283EBFAF4E0B746B0C65460D" />
<ComponentRef Id="cmp9D0FF61921F53533FB2FB9D10155662D" />
<ComponentRef Id="cmpF8FBE43A8EA39C78103156EADA7945B6" />
+ <ComponentRef Id="cmp9C9F9A8C48E144F01800F7BE0B23E099" />
<ComponentRef Id="cmpA138D05BA7C9460CAD63D20A63C165EE" />
<ComponentRef Id="cmp6CD45E7EFE2DC965DC04D55F2262EDD9" />
<ComponentRef Id="cmp64EADCD00A83038F25D1F27C60A7FF51" />
<ComponentRef Id="cmp3B1E5DA2C5015F32B4CAC36177A0AD6C" />
+ <ComponentRef Id="cmpE16B65E6AF1BF0C046FEF89E6D8AA2D0" />
<ComponentRef Id="cmp02F007F6E349BF1E45B754BBDA475E79" />
<ComponentRef Id="cmp5203EBBB6981B5C92881E467FD5FD638" />
<ComponentRef Id="cmp3E836866A5CFF75D04105DFA16D35F67" />
<ComponentRef Id="cmp0B5CBD1C9582ED64279F4795FCF6FD94" />
+ <ComponentRef Id="cmpD46F44A1C6353143CAEEA32D23C705D2" />
<ComponentRef Id="cmp102B5DCE898C00C320BA06B659830D47" />
<ComponentRef Id="cmp26778E79E71D7454DDDF91E4904BCE79" />
<ComponentRef Id="cmp6780D332346713440CC057DAEC4B0FD3" />
<ComponentRef Id="cmp3687991C08BE7AEF0C4FA46A5908C16C" />
+ <ComponentRef Id="cmp05678FE6EC643214A6A8D23DFA7AE822" />
<ComponentRef Id="cmp30BCC02AA5E2FFB6E2A18CE70A2036D7" />
<ComponentRef Id="cmpF90137E538BE414F02361C37D4F14E49" />
<ComponentRef Id="cmp2B73574A3CA3F07C3746A122ED4F122C" />
<ComponentRef Id="cmp8F0AFDC4BB2EF3A1B85A68C7C34278A2" />
+ <ComponentRef Id="cmpC8398AF47E20A91750FDB27E2EA845AC" />
<ComponentRef Id="cmpE8F42607C46BFC0A18FABF940AD6FA25" />
<ComponentRef Id="cmp07496961364F2B1E6C5512132AEB868D" />
<ComponentRef Id="cmp61FFF7DB5F7D94DDB645987CAD6018D7" />
<ComponentRef Id="cmp5E4B200F1A4C5FDBA941BAF5A85D0253" />
+ <ComponentRef Id="cmpEC42E1B66622887B11916A3BC8B33433" />
<ComponentRef Id="cmp453447E5E1D259CC610930DA5FCA889C" />
<ComponentRef Id="cmp62A7E69BEE769697BB17AB809D093C8A" />
<ComponentRef Id="cmpBD442C3313944AF0F84FA2455FFE0F72" />
<ComponentRef Id="cmp094C979D272BA58FE5C8614401B2D2A2" />
+ <ComponentRef Id="cmp8BBB7575523A411E8D4A3305EA653BDC" />
<ComponentRef Id="cmpDD32D43AD2385F827B9330031F55CD10" />
<ComponentRef Id="cmp10102F81CF5631F7A3EBBCA8F8DA3A8C" />
<ComponentRef Id="cmpF7DB1AFA92F263C99DF8FCE16B9DAA60" />
<ComponentRef Id="cmp132B1ECF6D51D06422F1B26490EBC9A1" />
+ <ComponentRef Id="cmp4A7E19170CD7F50BA4AECCF1C62DC983" />
<ComponentRef Id="cmpDEC9D2448E75375534A64A2FFFB8ECA4" />
<ComponentRef Id="cmpFBF3162909E9534BDBD81F0FD83517DF" />
<ComponentRef Id="cmp5845F1E73436266617221056BBF0D320" />
<ComponentRef Id="cmpABF8AB076AB25BF4F6F5883694AD5666" />
+ <ComponentRef Id="cmp564C80D36F172E4317802E9007BA888A" />
<ComponentRef Id="cmpD055CD4BE37AC69A6C3179A8EF50014E" />
<ComponentRef Id="cmpA3FC5EE89233A8B0F40E39C5D1C7DEAF" />
<ComponentRef Id="cmp893EB9C0C959C8AACD7BC975D074C94C" />
<ComponentRef Id="cmp8149269E4085AD11DCE2CEB24D0B5146" />
+ <ComponentRef Id="cmp751198041C5687C4EC51BBF3F1DFD15B" />
<ComponentRef Id="cmpE74E1BFCBF5DAF24230ADED9F41CA273" />
<ComponentRef Id="cmp4B689609F084DFD0F056DEBB8870BFDD" />
<ComponentRef Id="cmp337184108B965333B018985B74BF5CF7" />
<ComponentRef Id="cmp8A90A0DA436254684AFD659A0EC91C6F" />
+ <ComponentRef Id="cmpCA421AD9C018D39263D035C87777C6DD" />
<ComponentRef Id="cmp572927903A3BC09BE84571AB3FCED87B" />
<ComponentRef Id="cmp7148BCB5F758CEDE2ACBB0DE4FCAE477" />
<ComponentRef Id="cmp1D928052D0F5AFF2C2D503668E55EDC3" />
<ComponentRef Id="cmp8007C403B2B0EE0CC6585944312D705B" />
+ <ComponentRef Id="cmp7D94C646F68C1D38D6249B8EF959C559" />
</ComponentGroup>
</Fragment>
</Wix> \ No newline at end of file
diff --git a/UVtools.Installer/Code/Product.wxs b/UVtools.Installer/Code/Product.wxs
index a96aae2..c371e6c 100644
--- a/UVtools.Installer/Code/Product.wxs
+++ b/UVtools.Installer/Code/Product.wxs
@@ -48,12 +48,17 @@
<Property Id="CREATEDESKTOPSHORTCUT" Value="1">
<!--<RegistrySearch Id="CREATEDESKTOPSHORTCUT_REG" Type="raw" Root="HKCU" Key="Software\[ProductName]" Name="CreateDesktopShortcut" />!-->
</Property>
- <SetProperty Id="CREATEDESKTOPSHORTCUT" Value="0" Before="WriteRegistryValues" Sequence="execute">NOT (CREATEDESKTOPSHORTCUT="1")</SetProperty>
+ <SetProperty Id="CREATEDESKTOPSHORTCUT" Value="0" Before="WriteRegistryValues" Sequence="execute">NOT (CREATEDESKTOPSHORTCUT=1)</SetProperty>
<Property Id="CREATEFILEASSOCIATIONS" Value="1">
<!--<RegistrySearch Id="CREATEFILEASSOCIATIONS_REG" Type="raw" Root="HKCU" Key="Software\[ProductName]" Name="CreateFileAssociations" />!-->
</Property>
- <SetProperty Id="CREATEFILEASSOCIATIONS" Value="0" Before="WriteRegistryValues" Sequence="execute">NOT (CREATEFILEASSOCIATIONS="1")</SetProperty>
+ <SetProperty Id="CREATEFILEASSOCIATIONS" Value="0" Before="WriteRegistryValues" Sequence="execute">NOT (CREATEFILEASSOCIATIONS=1)</SetProperty>
+
+ <Property Id="SETPATHENVIRONMENTVAR" Value="1">
+ <!--<RegistrySearch Id="SETPATHENVIRONMENTVAR_REG" Type="raw" Root="HKCU" Key="Software\[ProductName]" Name="SetPathEnvironmentVar" />!-->
+ </Property>
+ <SetProperty Id="SETPATHENVIRONMENTVAR" Value="0" Before="WriteRegistryValues" Sequence="execute">NOT (SETPATHENVIRONMENTVAR=1)</SetProperty>
<UIRef Id="UI" />
@@ -104,12 +109,20 @@
</Directory>
</Directory>
+ <!-- Environment vars -->
+ <Component Id="CMP_SetPathEnvironmentVar" Guid="974A9C67-F75E-44BB-BDCD-59680100504E">
+ <Condition>SETPATHENVIRONMENTVAR = 1</Condition>
+ <Environment Id="PathEnvironmentVar" Name="PATH" Value="[INSTALLFOLDER]" Permanent="no" Part="last" Action="set" System="yes" />
+ </Component>
+
+ <!-- Start Registry -->
<Component Id="RegInstallInfo" Guid="C3603223-A8C1-4393-8C06-36B48DED2652">
<!-- Install directory -->
<RegistryKey Root="HKCU" Key="Software\[ProductName]" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryValue Name="InstallDir" Value="[INSTALLFOLDER]" Type="string" />
<RegistryValue Name="CreateDesktopShortcut" Value="[CREATEDESKTOPSHORTCUT]" Type="integer" />
<RegistryValue Name="CreateFileAssociations" Value="[CREATEFILEASSOCIATIONS]" Type="integer" />
+ <RegistryValue Name="SetPathEnvironmentVar" Value="[SETPATHENVIRONMENTVAR]" Type="integer" />
</RegistryKey>
</Component>
@@ -128,15 +141,19 @@
</RegistryKey>
</Component>
+ <!-- End Registry -->
</DirectoryRef>
+ <!-- Start Features -->
<Feature Id="UVtools" Title="UVtools" Description="Installs all the files needed for [ProductName]" Level="1" AllowAdvertise="no" ConfigurableDirectory="INSTALLFOLDER">
<ComponentRef Id="RegInstallInfo" />
<ComponentRef Id="RegFilesAssociations" />
<ComponentGroupRef Id="HeatGeneratedFileList" />
<ComponentRef Id="CMP_DesktopShortcuts" />
<ComponentRef Id="CMP_StartMenuShortcuts" />
+ <ComponentRef Id="CMP_SetPathEnvironmentVar" />
</Feature>
+ <!-- End Features -->
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch UVtools" />
<Property Id="WixShellExecTarget" Value="[INSTALLFOLDER]UVtools.exe" />
diff --git a/UVtools.Installer/Code/UI_CustomInstallDirDlg.wxs b/UVtools.Installer/Code/UI_CustomInstallDirDlg.wxs
index 22add8b..b9905ce 100644
--- a/UVtools.Installer/Code/UI_CustomInstallDirDlg.wxs
+++ b/UVtools.Installer/Code/UI_CustomInstallDirDlg.wxs
@@ -1,31 +1,29 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
-
-
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
- <Fragment>
- <UI>
- <Dialog Id="UI_CustomInstallDirDlg" Width="370" Height="270" Title="!(loc.InstallDirDlg_Title)">
- <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
- <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
- <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
- <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
- </Control>
-
- <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.InstallDirDlgDescription)" />
- <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.InstallDirDlgTitle)" />
- <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
- <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
- <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
+ <Fragment>
+ <UI>
+ <Dialog Id="UI_CustomInstallDirDlg" Width="370" Height="270" Title="!(loc.InstallDirDlg_Title)">
+ <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
+ <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
+ <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
+ <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
+ </Control>
- <Control Id="FolderLabel" Type="Text" X="20" Y="60" Width="290" Height="30" NoPrefix="yes" Text="!(loc.InstallDirDlgFolderLabel)" />
- <Control Id="Folder" Type="PathEdit" X="20" Y="100" Width="320" Height="18" Property="WIXUI_INSTALLDIR" Indirect="yes" />
- <Control Id="ChangeFolder" Type="PushButton" X="20" Y="120" Width="56" Height="17" Text="!(loc.InstallDirDlgChange)" />
+ <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.InstallDirDlgDescription)" />
+ <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.InstallDirDlgTitle)" />
+ <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
+ <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
+ <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
- <Control Id="CreateFileAssociations" Type="CheckBox" X="25" Y="165" Width="320" Height="17" Property="CREATEFILEASSOCIATIONS" CheckBoxValue="1" Text="Add open in UVtools when right-click on supported files" />
+ <Control Id="FolderLabel" Type="Text" X="20" Y="60" Width="290" Height="30" NoPrefix="yes" Text="!(loc.InstallDirDlgFolderLabel)" />
+ <Control Id="Folder" Type="PathEdit" X="20" Y="100" Width="320" Height="18" Property="WIXUI_INSTALLDIR" Indirect="yes" />
+ <Control Id="ChangeFolder" Type="PushButton" X="20" Y="120" Width="56" Height="17" Text="!(loc.InstallDirDlgChange)" />
- <Control Id="CreateShortcutCheckbox" Type="CheckBox" X="25" Y="185" Width="320" Height="17" Property="CREATEDESKTOPSHORTCUT" CheckBoxValue="1" Text="Create desktop shortcut" />
- </Dialog>
- </UI>
- </Fragment>
+ <Control Id="Control_CreateFileAssociations" Type="CheckBox" X="25" Y="165" Width="320" Height="17" Property="CREATEFILEASSOCIATIONS" CheckBoxValue="1" Text="Add &quot;Open with UVtools&quot; to the context-menu when right-click on supported files" />
+ <Control Id="Control_SetPathEnvVar" Type="CheckBox" X="25" Y="185" Width="320" Height="17" Property="SETPATHENVIRONMENTVAR" CheckBoxValue="1" Text="Add installation directory to system PATH environment variable" />
+ <Control Id="Control_CreateShortcutCheckbox" Type="CheckBox" X="25" Y="205" Width="320" Height="17" Property="CREATEDESKTOPSHORTCUT" CheckBoxValue="1" Text="Create a desktop shortcut" />
+ </Dialog>
+ </UI>
+ </Fragment>
</Wix> \ No newline at end of file
diff --git a/UVtools.WPF/Controls/WindowEx.cs b/UVtools.WPF/Controls/WindowEx.cs
index 49c76d5..3925d32 100644
--- a/UVtools.WPF/Controls/WindowEx.cs
+++ b/UVtools.WPF/Controls/WindowEx.cs
@@ -128,19 +128,34 @@ public class WindowEx : Window, INotifyPropertyChanged, IStyleable
base.OnInitialized();
}
- /*protected override void OnOpened(EventArgs e)
+ protected override void OnOpened(EventArgs e)
{
+ // Fix positions and sizes
+ if (WindowState == WindowState.Normal)
+ {
+ if (Position.X < 0) Position = Position.WithX(0);
+ if (Position.Y < 0) Position = Position.WithY(0);
+
+ if ((SizeToContent & SizeToContent.Height) == 0)
+ {
+ var workingArea = this.GetScreenWorkingArea();
+ if (Bounds.Bottom > workingArea.Height)
+ {
+ Height = workingArea.Height - Position.Y;
+ }
+ }
+ }
+
+ //Debug.WriteLine("OnOpened");
base.OnOpened(e);
- Debug.WriteLine("OnOpened");
- AutoConstainsWindowMaxSize();
- }*/
+ }
public void ConstainsWindowMaxSize()
{
- if (WindowStartupLocation == WindowStartupLocation.CenterOwner && Owner is null)
+ /*if (WindowStartupLocation == WindowStartupLocation.CenterOwner && Owner is null)
{
WindowStartupLocation = WindowStartupLocation.CenterScreen;
- }
+ }*/
if (!CanResize && WindowState == WindowState.Normal && WindowConstrainMaxSize != WindowConstrainsMaxSizeType.None)
{
diff --git a/UVtools.WPF/UVtools.WPF.csproj b/UVtools.WPF/UVtools.WPF.csproj
index 0f48620..04a3fb7 100644
--- a/UVtools.WPF/UVtools.WPF.csproj
+++ b/UVtools.WPF/UVtools.WPF.csproj
@@ -12,7 +12,7 @@
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
<RepositoryType>Git</RepositoryType>
- <Version>3.6.5</Version>
+ <Version>3.6.6</Version>
<Platforms>AnyCPU;x64</Platforms>
<PackageIcon>UVtools.png</PackageIcon>
<PackageReadmeFile>README.md</PackageReadmeFile>
diff --git a/UVtools.WPF/Windows/MessageWindow.axaml b/UVtools.WPF/Windows/MessageWindow.axaml
index 35be6d5..6b39204 100644
--- a/UVtools.WPF/Windows/MessageWindow.axaml
+++ b/UVtools.WPF/Windows/MessageWindow.axaml
@@ -7,8 +7,7 @@
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="UVtools.WPF.Windows.MessageWindow"
Icon="/Assets/Icons/UVtools.ico"
- WindowStartupLocation="CenterOwner"
- CanResize="False"
+ WindowStartupLocation="CenterScreen"
SizeToContent="WidthAndHeight"
MinWidth="300"
MinHeight="200"
diff --git a/UVtools.WPF/Windows/MessageWindow.axaml.cs b/UVtools.WPF/Windows/MessageWindow.axaml.cs
index da22e4d..98caefd 100644
--- a/UVtools.WPF/Windows/MessageWindow.axaml.cs
+++ b/UVtools.WPF/Windows/MessageWindow.axaml.cs
@@ -70,10 +70,10 @@ namespace UVtools.WPF.Windows
#region Constructor
public MessageWindow()
{
- InitializeComponent();
-
CanResize = Settings.General.WindowsCanResize;
+ InitializeComponent();
+
_buttonsRightPanel = this.FindControl<StackPanel>("ButtonsRightPanel");
DataContext = this;
}
diff --git a/UVtools.WPF/Windows/ToolWindow.axaml b/UVtools.WPF/Windows/ToolWindow.axaml
index 9afdc06..71d485a 100644
--- a/UVtools.WPF/Windows/ToolWindow.axaml
+++ b/UVtools.WPF/Windows/ToolWindow.axaml
@@ -6,8 +6,9 @@
xmlns:i="clr-namespace:Projektanker.Icons.Avalonia;assembly=Projektanker.Icons.Avalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="UVtools.WPF.Windows.ToolWindow"
- CanResize="False"
SizeToContent="WidthAndHeight"
+ MinWidth="500"
+ MinHeight="400"
WindowStartupLocation="CenterOwner"
Title="Tool"
Icon="/Assets/Icons/UVtools.ico">
@@ -23,6 +24,7 @@
IsExpanded="{Binding Settings.Tools.ExpandDescriptions}"
HorizontalContentAlignment="Stretch"
Header="Description (Click to toggle)">
+
<TextBox Classes="TransparentReadOnlyMultiLineNoBorder"
MaxWidth="{Binding DescriptionMaxWidth}"
FontSize="16"
@@ -30,6 +32,7 @@
Watermark="Description:"
Padding="5"
Text="{Binding Description}"/>
+
</Expander>
</Border>
@@ -66,16 +69,14 @@
Grid.Column="0"
VerticalAlignment="Center"
Text="From:"
- Margin="0,0,10,0"
- />
+ Margin="0,0,10,0"/>
<NumericUpDown Grid.Row="0" Grid.Column="1"
Classes="ValueLabel ValueLabel_layers"
VerticalAlignment="Center"
Minimum="0"
Maximum="{Binding MaximumLayerIndex}"
- Value="{Binding LayerIndexStart}"
- />
+ Value="{Binding LayerIndexStart}"/>
<TextBlock
Grid.Row="0"
@@ -83,8 +84,7 @@
VerticalAlignment="Center"
Text="To:"
IsEnabled="{Binding !LayerRangeSync}"
- Margin="20,0,10,0"
- />
+ Margin="20,0,10,0"/>
<NumericUpDown Grid.Row="0" Grid.Column="3"
Classes="ValueLabel ValueLabel_layers"
@@ -109,8 +109,7 @@
Padding="10,0,10,0"
Content="Select ⮟"
Command="{Binding OpenContextMenu}"
- CommandParameter="LayerSelectPreset"
- >
+ CommandParameter="LayerSelectPreset">
<Button.ContextMenu>
<ContextMenu Name="LayerSelectPresetContextMenu" PlacementMode="Bottom">
<MenuItem
@@ -152,14 +151,12 @@
<MenuItem
Header="_First layer"
HotKey="Ctrl + Shift + F" InputGesture="Ctrl + Shift + F"
- Command="{Binding SelectFirstLayer}"
- />
+ Command="{Binding SelectFirstLayer}"/>
<MenuItem
Header="_Last layer"
HotKey="Ctrl + Shift + L" InputGesture="Ctrl + Shift + L"
- Command="{Binding SelectLastLayer}"
- />
+ Command="{Binding SelectLastLayer}"/>
</ContextMenu>
</Button.ContextMenu>
@@ -342,6 +339,8 @@
<ScrollViewer Grid.Row="1"
Name="ContentScrollViewer"
+ VerticalScrollBarVisibility="Auto"
+ HorizontalScrollBarVisibility="Auto"
Content="{Binding ContentControl}"/>
</Grid>
</Border>
@@ -351,8 +350,7 @@
<Grid RowDefinitions="Auto"
ColumnDefinitions="*">
<StackPanel Spacing="10" Orientation="Horizontal">
- <Button
- Command="{Binding #OptionsContextMenu.Open}"
+ <Button Command="{Binding #OptionsContextMenu.Open}"
Padding="10"
Content="☰">
<Button.ContextMenu>
diff --git a/UVtools.WPF/Windows/ToolWindow.axaml.cs b/UVtools.WPF/Windows/ToolWindow.axaml.cs
index 1991b3f..1df71e9 100644
--- a/UVtools.WPF/Windows/ToolWindow.axaml.cs
+++ b/UVtools.WPF/Windows/ToolWindow.axaml.cs
@@ -575,7 +575,10 @@ public class ToolWindow : WindowEx
#region Constructors
public ToolWindow()
{
+ CanResize = Settings.General.WindowsCanResize;
+
InitializeComponent();
+
_contentScrollViewer = this.FindControl<ScrollViewer>("ContentScrollViewer");
SelectAllLayers();
@@ -602,8 +605,8 @@ public class ToolWindow : WindowEx
ToolControl = toolControl;
toolControl.ParentWindow = this;
toolControl.Margin = new Thickness(15);
- ToolControl.BaseOperation.ROI = ROI;
- ToolControl.BaseOperation.MaskPoints = Masks;
+ toolControl.BaseOperation.ROI = ROI;
+ toolControl.BaseOperation.MaskPoints = Masks;
Title = toolControl.BaseOperation.Title;
//LayerRangeVisible = toolControl.BaseOperation.StartLayerRangeSelection != LayerRangeSelection.None;
@@ -654,10 +657,10 @@ public class ToolWindow : WindowEx
}
- if (ToolControl.BaseOperation.CanHaveProfiles)
+ if (toolControl.BaseOperation.CanHaveProfiles)
{
_isProfilesVisible = true;
- var profiles = OperationProfiles.GetOperations(ToolControl.BaseOperation.GetType());
+ var profiles = OperationProfiles.GetOperations(toolControl.BaseOperation.GetType());
_profiles.AddRange(profiles);
if (toolControl.BaseOperation.ImportedFrom == Operation.OperationImportFrom.None ||
diff --git a/build/createRelease.ps1 b/build/createRelease.ps1
index a593403..92549b3 100644
--- a/build/createRelease.ps1
+++ b/build/createRelease.ps1
@@ -317,7 +317,7 @@ foreach($line in $changelog) {
Write-Host $sb.ToString()
Set-Content -Path "$rootFolder/RELEASE_NOTES.md" -Value $sb.ToString()
-
+<#
if($null -ne $enableNugetPublish -and $enableNugetPublish)
{
$nugetApiKeyFile = 'build/secret/nuget_api.key'
@@ -339,6 +339,7 @@ if($null -ne $enableNugetPublish -and $enableNugetPublish)
}
}
}
+#>
foreach ($obj in $runtimes.GetEnumerator()) {
if(![string]::IsNullOrWhiteSpace($buildOnly) -and !$buildOnly.Equals($obj.Name)) {continue}