- **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
This commit is contained in:
Tiago Conceição
2022-09-20 19:40:26 +01:00
parent cae2f061ba
commit 57dbbce784
17 changed files with 361 additions and 135 deletions
+15 -4
View File
@@ -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
+7 -12
View File
@@ -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
+28 -7
View File
@@ -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
}
+28 -7
View File
@@ -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
}
+27 -27
View File
@@ -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)
+90 -19
View File
@@ -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
{
FileName = filename,
Arguments = arguments,
RedirectStandardOutput = true,
UseShellExecute = false,
});
if (proc is null) return null;
var stringBuilder = new StringBuilder();
while (!proc.HasExited)
{
stringBuilder.Append(proc.StandardOutput.ReadToEnd());
}
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) =>
{
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();
using var outputWaitHandle = new AutoResetEvent(false);
process.OutputDataReceived += (sender, e) =>
{
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();
}
+1 -1
View File
@@ -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>
@@ -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>
+19 -2
View File
@@ -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" />
@@ -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>
<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" />
<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="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="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="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="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>
+21 -6
View File
@@ -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)
{
+1 -1
View File
@@ -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>
+1 -2
View File
@@ -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"
+2 -2
View File
@@ -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;
}
+13 -15
View File
@@ -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>
+7 -4
View File
@@ -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 ||
+2 -1
View File
@@ -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}