diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index baec3399f..500e0c0be 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -44,7 +44,7 @@ body:
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
- placeholder: What are the alternatives you've considered? Sometimes, the Collapse team can't always implement everything the way you envisonned it, so what are some compromises, changes you're willing to make to the current proposal?
+ placeholder: What are the alternatives you've considered? Sometimes, the Collapse team can't always implement everything the way you envisioned it, so what are some compromises, changes you're willing to make to the current proposal?
validations:
required: true
@@ -56,4 +56,4 @@ body:
placeholder: If there are any images, concept art, code snippets you're willing to share, please put them here.
validations:
required: false
----
\ No newline at end of file
+---
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 3a7ca0d08..d347d6c92 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -21,15 +21,16 @@ jobs:
runs-on: windows-latest
strategy:
matrix:
- configuration: [Release] # No need to distribute Debug builds
+ configuration: [Debug] # No need to distribute Debug builds
platform: [x64]
- framework: [net8.0-windows10.0.22621.0]
+ framework: [net9.0-windows10.0.22621.0]
env:
Configuration: ${{ matrix.configuration }}
Platform: ${{ matrix.platform }}
DOTNET_INSTALL_DIR: '.\.dotnet'
- DOTNET_VERSION: '8.x'
+ DOTNET_VERSION: '9.x'
+ DOTNET_QUALITY: 'ga'
NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
steps:
@@ -42,6 +43,48 @@ jobs:
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
+ dotnet-quality: ${{ env.DOTNET_QUALITY }}
+ cache: true
+ cache-dependency-path: CollapseLauncher/packages.lock.json
+
+ - name: Build
+ run: |
+ dotnet publish CollapseLauncher -p:PublishProfile=Publish-DebugCIRelease -p:PublishDir=".\debug-build\"
+
+ - name: Upload Artifact
+ uses: actions/upload-artifact@v4.3.1
+ with:
+ name: collapse_${{ matrix.platform }}-${{ matrix.configuration }}_${{ matrix.framework }}_${{ github.sha }}
+ path: ./CollapseLauncher/debug-build/
+ compression-level: 9
+
+ build-nativeaot:
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ configuration: [Debug]
+ platform: [x64]
+ framework: [net9.0-windows10.0.22621.0]
+
+ env:
+ Configuration: ${{ matrix.configuration }}
+ Platform: ${{ matrix.platform }}
+ DOTNET_INSTALL_DIR: '.\.dotnet'
+ DOTNET_VERSION: '9.x'
+ DOTNET_QUALITY: 'ga'
+ NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4.1.5
+ with:
+ submodules: recursive
+
+ - name: Install .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: ${{ env.DOTNET_VERSION }}
+ dotnet-quality: ${{ env.DOTNET_QUALITY }}
cache: true
cache-dependency-path: CollapseLauncher/packages.lock.json
@@ -51,16 +94,20 @@ jobs:
- name: Build
run: |
- dotnet publish CollapseLauncher -p:PublishProfile=Publish-PreviewRelease -p:PublishDir=".\preview-build\"
+ dotnet publish CollapseLauncher -p:PublishProfile=Publish-DebugCIReleaseAOT -p:PublishDir=".\debug-aot-build\"
- - name: Upload Artifact (Release)
+ - name: Upload Artifact
uses: actions/upload-artifact@v4.3.1
- if: ${{ matrix.configuration == 'Release' }}
with:
- name: collapse_${{ matrix.platform }}-${{ matrix.configuration }}_${{ matrix.framework }}_${{ github.sha }}
- path: ./CollapseLauncher/preview-build/
+ name: aot-experimental_collapse_${{ matrix.platform }}-${{ matrix.configuration }}_${{ matrix.framework }}_${{ github.sha }}
+ path: ./CollapseLauncher/debug-aot-build/
compression-level: 9
+ notify-discord:
+ runs-on: ubuntu-latest
+ if: always()
+ needs: [build, build-nativeaot]
+ steps:
- name: Notify Discord
uses: sarisia/actions-status-discord@v1.13.0
if: always()
diff --git a/.gitignore b/.gitignore
index 5f823895b..b2fcd1f69 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
-*/bin/*
-*/obj/*
+**/bin/*
+**/obj/*
*build/*
.vs/*
*.user
@@ -7,6 +7,7 @@ packages/*
CollapseLauncher/Deps/*
CollapseLauncher/Invoker/*
+**/Generated Files/**
*.psd
InstallerProp/Output/*
InstallerProp/temp/**
diff --git a/.gitmodules b/.gitmodules
index 4a90b493f..bd0331340 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,3 @@
-[submodule "Hi3Helper.Core/Classes/Data/Tools/SevenZipTool/SevenZipExtractor"]
- path = Hi3Helper.Core/Classes/Data/Tools/SevenZipTool/SevenZipExtractor
- url = https://github.com/neon-nyan/SevenZipExtractor
[submodule "Hi3Helper.Http"]
path = Hi3Helper.Http
url = https://github.com/neon-nyan/Hi3Helper.Http
@@ -19,3 +16,12 @@
[submodule "Hi3Helper.Sophon"]
path = Hi3Helper.Sophon
url = https://github.com/CollapseLauncher/Hi3Helper.Sophon
+[submodule "ImageEx"]
+ path = ImageEx
+ url = https://github.com/CollapseLauncher/ImageEx
+[submodule "SevenZipExtractor"]
+ path = SevenZipExtractor
+ url = https://github.com/CollapseLauncher/SevenZipExtractor
+[submodule "H.NotifyIcon"]
+ path = H.NotifyIcon
+ url = https://github.com/CollapseLauncher/H.NotifyIcon
diff --git a/.idea/.idea.CollapseLauncher/.idea/inspectionProfiles/Project_Default.xml b/.idea/.idea.CollapseLauncher/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 000000000..5cb71ef0b
--- /dev/null
+++ b/.idea/.idea.CollapseLauncher/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.CollapseLauncher/.idea/projectSettingsUpdater.xml b/.idea/.idea.CollapseLauncher/.idea/projectSettingsUpdater.xml
index 4bb9f4d2a..64af657f5 100644
--- a/.idea/.idea.CollapseLauncher/.idea/projectSettingsUpdater.xml
+++ b/.idea/.idea.CollapseLauncher/.idea/projectSettingsUpdater.xml
@@ -1,6 +1,7 @@
-
+
+
\ No newline at end of file
diff --git a/.idea/.idea.CollapseLauncher/.idea/vcs.xml b/.idea/.idea.CollapseLauncher/.idea/vcs.xml
index 7c2ea1047..b5af8fbf9 100644
--- a/.idea/.idea.CollapseLauncher/.idea/vcs.xml
+++ b/.idea/.idea.CollapseLauncher/.idea/vcs.xml
@@ -2,11 +2,16 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Backup/CommunityToolkit.WinUI.Controls.ImageCropper.csproj b/Backup/CommunityToolkit.WinUI.Controls.ImageCropper.csproj
new file mode 100644
index 000000000..0e97ae7dd
--- /dev/null
+++ b/Backup/CommunityToolkit.WinUI.Controls.ImageCropper.csproj
@@ -0,0 +1,30 @@
+
+
+
+
+ ImageCropper
+ The ImageCropper control allows the user to freely crop an image.
+
+
+ CommunityToolkit.WinUI.Controls.ImageCropperRns
+ ReadMe.md
+
+
+
+
+
+
+
+
+
+
+
+ True
+ \
+
+
+
+
+ $(PackageIdPrefix).$(PackageIdVariant).Controls.$(ToolkitComponentName)
+
+
diff --git a/Backup/ReadMe.md b/Backup/ReadMe.md
new file mode 100644
index 000000000..07942198d
--- /dev/null
+++ b/Backup/ReadMe.md
@@ -0,0 +1,38 @@
+
+# Windows Community Toolkit - ImageCropper
+
+This package is part of the [Windows Community Toolkit](https://aka.ms/toolkit/windows) from the [.NET Foundation](https://dotnetfoundation.org).
+
+## Package Contents
+
+This package contains the following controls in the `CommunityToolkit.WinUI.Controls` namespace:
+
+- ImageCropper
+
+## Which Package is for me?
+
+If you're developing with _UWP/WinUI 2 or Uno.UI_ you should be using the `CommunityToolkit.Uwp.Controls.ImageCropper` package.
+
+If you're developing with _WindowsAppSDK/WinUI 3 or Uno.WinUI_ you should be using the `CommunityToolkit.WinUI.Controls.ImageCropper` package.
+
+## WinUI Resources (UWP)
+
+For UWP projects, the WinUI 2 reference requires you include the WinUI XAML Resources in your App.xaml file:
+
+```xml
+
+
+
+```
+
+See [Getting Started in WinUI 2](https://learn.microsoft.com/windows/apps/winui/winui2/getting-started) for more information.
+
+## Documentation
+
+Further documentation about these components can be found at: https://aka.ms/windowstoolkitdocs
+
+## License
+
+MIT
+
+See License.md in package for more details.
diff --git a/ClearCache.bat b/ClearCache.bat
index 50a691b8b..c42722760 100644
--- a/ClearCache.bat
+++ b/ClearCache.bat
@@ -3,6 +3,10 @@ echo Clearing Collapse cache
rmdir /S /Q CollapseLauncher\bin && rmdir /S /Q CollapseLauncher\obj
echo Clearing ColorThief cache
rmdir /S /Q ColorThief\ColorThief\bin && rmdir /S /Q ColorThief\ColorThief\obj
+echo Clearing CommunityToolkit.ImageCropper cache
+rmdir /S /Q Hi3Helper.CommunityToolkit\ImageCropper\bin && rmdir /S /Q Hi3Helper.CommunityToolkit\ImageCropper\obj
+echo Clearing CommunityToolkit.SettingsControls cache
+rmdir /S /Q Hi3Helper.CommunityToolkit\SettingsControls\bin && rmdir /S /Q Hi3Helper.CommunityToolkit\SettingsControls\obj
echo Clearing Core cache
rmdir /S /Q Hi3Helper.Core\bin && rmdir /S /Q Hi3Helper.Core\obj
echo Clearing EncTool cache
@@ -13,12 +17,16 @@ echo Clearing Http cache
rmdir /S /Q Hi3Helper.Http\bin && rmdir /S /Q Hi3Helper.Http\obj
echo Clearing Http tester cache
rmdir /S /Q Hi3Helper.Http\Test\bin && rmdir /S /Q Hi3Helper.Http\Test\obj
+echo Clearing TaskScheduler cache
+rmdir /S /Q Hi3Helper.TaskScheduler\bin && rmdir /S /Q Hi3Helper.TaskScheduler\obj
echo Clearing HDiff cache
rmdir /S /Q Hi3Helper.SharpHDiffPatch\Hi3Helper.SharpHDiffPatch\bin && rmdir /S /Q Hi3Helper.SharpHDiffPatch\Hi3Helper.SharpHDiffPatch\obj
echo Clearing 2nd HDiff cache
rmdir /S /Q Hi3Helper.SharpHDiffPatch\SharpHDiffPatch\bin && rmdir /S /Q Hi3Helper.SharpHDiffPatch\SharpHDiffPatch\obj
echo Clearing InnoSetupHelper cache
rmdir /S /Q InnoSetupHelper\bin && rmdir /S /Q InnoSetupHelper\obj
+echo Clearing ImageEx cache
+rmdir /S /Q ImageEx\ImageEx\bin && rmdir /S /Q ImageEx\ImageEx\obj
echo Clearing 7z cache
rmdir /S /Q Hi3Helper.Core\Classes\Data\Tools\SevenZipTool\SevenZipExtractor\SevenZipExtractor\bin && rmdir /S /Q Hi3Helper.Core\Classes\Data\Tools\SevenZipTool\SevenZipExtractor\SevenZipExtractor\obj
echo Clearing SharpDiscordRPC cache
diff --git a/CollapseLauncher.sln b/CollapseLauncher.sln
index e25193810..c6045a5c1 100644
--- a/CollapseLauncher.sln
+++ b/CollapseLauncher.sln
@@ -14,7 +14,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ColorThief", "ColorThief\Co
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hi3Helper.EncTool.Test", "Hi3Helper.EncTool.Test\Hi3Helper.EncTool.Test.csproj", "{1BAB5CE4-640E-41A7-B529-4842D378BD4C}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SevenZipExtractor", "Hi3Helper.Core\Classes\Data\Tools\SevenZipTool\SevenZipExtractor\SevenZipExtractor\SevenZipExtractor.csproj", "{D145686A-C0AA-4164-9854-A8942CB1DFDE}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SevenZipExtractor", "SevenZipExtractor\SevenZipExtractor\SevenZipExtractor.csproj", "{D145686A-C0AA-4164-9854-A8942CB1DFDE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InnoSetupHelper", "InnoSetupHelper\InnoSetupHelper.csproj", "{21691306-8D30-4993-98A2-A5AE0712D81A}"
EndProject
@@ -22,6 +22,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DiscordRPC", "Hi3Helper.Sha
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hi3Helper.Sophon", "Hi3Helper.Sophon\Hi3Helper.Sophon.csproj", "{3F87DCD0-39B7-4F8C-8F34-A0FC7C6E65A0}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageEx", "ImageEx\ImageEx\ImageEx.csproj", "{A6AF9DE9-1A18-4C2D-B106-B68A0A7CD07D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hi3Helper.TaskScheduler", "Hi3Helper.TaskScheduler\Hi3Helper.TaskScheduler.csproj", "{C9CBAF52-49C7-4B72-A03B-130F596E24CB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hi3Helper.CommunityToolkit.WinUI.Controls.ImageCropper", "Hi3Helper.CommunityToolkit\ImageCropper\Hi3Helper.CommunityToolkit.WinUI.Controls.ImageCropper.csproj", "{558A1D17-BEB4-49DF-A200-15ABE283BDED}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hi3Helper.CommunityToolkit.WinUI.Controls.SettingsControls", "Hi3Helper.CommunityToolkit\SettingsControls\Hi3Helper.CommunityToolkit.WinUI.Controls.SettingsControls.csproj", "{5A1243EC-EFD9-4B55-8F29-D1A91A9B027D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "H.NotifyIcon.WinUI", "H.NotifyIcon\src\libs\H.NotifyIcon.WinUI\H.NotifyIcon.WinUI.csproj", "{141083CC-A924-4E19-904C-AF91361405A5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "H.NotifyIcon", "H.NotifyIcon\src\libs\H.NotifyIcon\H.NotifyIcon.csproj", "{6C8A25FA-BA1C-4EE4-8A9D-2FB4918077FB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "H.GeneratedIcons.System.Drawing", "H.NotifyIcon\src\libs\H.GeneratedIcons.System.Drawing\H.GeneratedIcons.System.Drawing.csproj", "{911C98FD-C64D-4BAC-8EF5-0616F8EFF7B9}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -88,6 +102,46 @@ Global
{3F87DCD0-39B7-4F8C-8F34-A0FC7C6E65A0}.Publish|x64.Build.0 = Release|x64
{3F87DCD0-39B7-4F8C-8F34-A0FC7C6E65A0}.Release|x64.ActiveCfg = Release|x64
{3F87DCD0-39B7-4F8C-8F34-A0FC7C6E65A0}.Release|x64.Build.0 = Release|x64
+ {A6AF9DE9-1A18-4C2D-B106-B68A0A7CD07D}.Debug|x64.ActiveCfg = Debug|x64
+ {A6AF9DE9-1A18-4C2D-B106-B68A0A7CD07D}.Debug|x64.Build.0 = Debug|x64
+ {A6AF9DE9-1A18-4C2D-B106-B68A0A7CD07D}.Publish|x64.ActiveCfg = Release|x64
+ {A6AF9DE9-1A18-4C2D-B106-B68A0A7CD07D}.Publish|x64.Build.0 = Release|x64
+ {A6AF9DE9-1A18-4C2D-B106-B68A0A7CD07D}.Release|x64.ActiveCfg = Release|x64
+ {A6AF9DE9-1A18-4C2D-B106-B68A0A7CD07D}.Release|x64.Build.0 = Release|x64
+ {C9CBAF52-49C7-4B72-A03B-130F596E24CB}.Debug|x64.ActiveCfg = Debug|x64
+ {C9CBAF52-49C7-4B72-A03B-130F596E24CB}.Debug|x64.Build.0 = Debug|x64
+ {C9CBAF52-49C7-4B72-A03B-130F596E24CB}.Publish|x64.ActiveCfg = Release|x64
+ {C9CBAF52-49C7-4B72-A03B-130F596E24CB}.Release|x64.ActiveCfg = Release|x64
+ {558A1D17-BEB4-49DF-A200-15ABE283BDED}.Debug|x64.ActiveCfg = Debug|x64
+ {558A1D17-BEB4-49DF-A200-15ABE283BDED}.Debug|x64.Build.0 = Debug|x64
+ {558A1D17-BEB4-49DF-A200-15ABE283BDED}.Publish|x64.ActiveCfg = Release|x64
+ {558A1D17-BEB4-49DF-A200-15ABE283BDED}.Publish|x64.Build.0 = Release|x64
+ {558A1D17-BEB4-49DF-A200-15ABE283BDED}.Release|x64.ActiveCfg = Release|x64
+ {558A1D17-BEB4-49DF-A200-15ABE283BDED}.Release|x64.Build.0 = Release|x64
+ {5A1243EC-EFD9-4B55-8F29-D1A91A9B027D}.Debug|x64.ActiveCfg = Debug|x64
+ {5A1243EC-EFD9-4B55-8F29-D1A91A9B027D}.Debug|x64.Build.0 = Debug|x64
+ {5A1243EC-EFD9-4B55-8F29-D1A91A9B027D}.Publish|x64.ActiveCfg = Release|x64
+ {5A1243EC-EFD9-4B55-8F29-D1A91A9B027D}.Publish|x64.Build.0 = Release|x64
+ {5A1243EC-EFD9-4B55-8F29-D1A91A9B027D}.Release|x64.ActiveCfg = Release|x64
+ {5A1243EC-EFD9-4B55-8F29-D1A91A9B027D}.Release|x64.Build.0 = Release|x64
+ {141083CC-A924-4E19-904C-AF91361405A5}.Debug|x64.ActiveCfg = Debug|x64
+ {141083CC-A924-4E19-904C-AF91361405A5}.Debug|x64.Build.0 = Debug|x64
+ {141083CC-A924-4E19-904C-AF91361405A5}.Publish|x64.ActiveCfg = Release|x64
+ {141083CC-A924-4E19-904C-AF91361405A5}.Publish|x64.Build.0 = Release|x64
+ {141083CC-A924-4E19-904C-AF91361405A5}.Release|x64.ActiveCfg = Release|x64
+ {141083CC-A924-4E19-904C-AF91361405A5}.Release|x64.Build.0 = Release|x64
+ {6C8A25FA-BA1C-4EE4-8A9D-2FB4918077FB}.Debug|x64.ActiveCfg = Debug|x64
+ {6C8A25FA-BA1C-4EE4-8A9D-2FB4918077FB}.Debug|x64.Build.0 = Debug|x64
+ {6C8A25FA-BA1C-4EE4-8A9D-2FB4918077FB}.Publish|x64.ActiveCfg = Release|x64
+ {6C8A25FA-BA1C-4EE4-8A9D-2FB4918077FB}.Publish|x64.Build.0 = Release|x64
+ {6C8A25FA-BA1C-4EE4-8A9D-2FB4918077FB}.Release|x64.ActiveCfg = Release|x64
+ {6C8A25FA-BA1C-4EE4-8A9D-2FB4918077FB}.Release|x64.Build.0 = Release|x64
+ {911C98FD-C64D-4BAC-8EF5-0616F8EFF7B9}.Debug|x64.ActiveCfg = Debug|x64
+ {911C98FD-C64D-4BAC-8EF5-0616F8EFF7B9}.Debug|x64.Build.0 = Debug|x64
+ {911C98FD-C64D-4BAC-8EF5-0616F8EFF7B9}.Publish|x64.ActiveCfg = Release|x64
+ {911C98FD-C64D-4BAC-8EF5-0616F8EFF7B9}.Publish|x64.Build.0 = Release|x64
+ {911C98FD-C64D-4BAC-8EF5-0616F8EFF7B9}.Release|x64.ActiveCfg = Release|x64
+ {911C98FD-C64D-4BAC-8EF5-0616F8EFF7B9}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/CollapseLauncher.sln.DotSettings b/CollapseLauncher.sln.DotSettings
index 54eafe745..44e429afd 100644
--- a/CollapseLauncher.sln.DotSettings
+++ b/CollapseLauncher.sln.DotSettings
@@ -42,6 +42,7 @@
CDNURL
FX
FXAA
+ GLC
HD
HDR
ID
@@ -68,6 +69,12 @@
True
True
True
+ True
+ True
+ True
+ True
+ True
True
+ True
True
\ No newline at end of file
diff --git a/CollapseLauncher.slnx b/CollapseLauncher.slnx
new file mode 100644
index 000000000..fd78fee4e
--- /dev/null
+++ b/CollapseLauncher.slnx
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CollapseLauncher/App.xaml b/CollapseLauncher/App.xaml
index bcfa59e18..29062f0d2 100644
--- a/CollapseLauncher/App.xaml
+++ b/CollapseLauncher/App.xaml
@@ -1,7 +1,8 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -27,345 +41,359 @@
#ffd52a
#ffd52a
#ffd52a
-
-
-
-
-
+
+
+
+
+
+ FallbackColor="{ThemeResource SystemAccentColor}"
+ Opacity="0.8"
+ TintColor="{ThemeResource SystemAccentColor}"
+ TintLuminosityOpacity="0.8"
+ TintOpacity="0.2" />
+ Color="{ThemeResource SystemAccentColorLight2}" />
+ Color="#FFFFFF" />
+ Color="#000000" />
-
-
-
-
+ Color="#242424" />
+
+
+
+
#ffd52a
+ Color="{ThemeResource DialogTitleColor}" />
-
-
-
+ TintOpacity="0.0" />
+
+
+
+ TintOpacity="0.0" />
+ TintOpacity="0" />
+ TintOpacity="0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="1" />
+ TintOpacity="0.6" />
+ TintOpacity="0.0" />
+ TintOpacity="0.75" />
+ TintOpacity="0.0" />
+ TintLuminosityOpacity="0.2"
+ TintOpacity="0.2" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
-
-
+ TintOpacity="1" />
+
+
+ TintOpacity="0.0" />
+ TintLuminosityOpacity="0.5"
+ TintOpacity="0.0" />
-
-
-
+ TintOpacity="0.0" />
+
+
+
+
+ Color="#00000000" />
+ Color="#22000000" />
+ Color="#11000000" />
+ Color="#0A000000" />
+
+ Color="#22000000" />
+ Color="#11000000" />
+ Color="#0A000000" />
+ Color="#44000000" />
+ Color="#55000000" />
+ Color="#33000000" />
+ Color="#22000000" />
-
-
-
+
+
+
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
-
+ TintOpacity="0.0" />
+
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
-
+ TintOpacity="0.0" />
+
+ TintOpacity="0" />
+ Opacity="0.9"
+ TintColor="{ThemeResource SystemAccentColor}" />
+ Opacity="0.75"
+ TintColor="{ThemeResource SystemAccentColor}" />
+ FallbackColor="{ThemeResource SystemAccentColor}"
+ TintColor="{ThemeResource SystemAccentColor}" />
+ Opacity="0.75"
+ Color="#DDFFFFFF" />
+ Color="#EE000000" />
+ Color="#CC000000" />
+ Color="#FF111111" />
+ TintOpacity="0" />
+ TintOpacity="0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
-
+ TintOpacity="0.0" />
+
+
+ Color="#00000000" />
+ Color="#00000000" />
+
+
+ Color="#A0C00000" />
+
+
@@ -377,382 +405,380 @@
#693758
#693758
#693758
-
-
-
-
-
+
+
+
+
+
+ FallbackColor="{ThemeResource SystemAccentColor}"
+ Opacity="0.8"
+ TintColor="{ThemeResource SystemAccentColor}"
+ TintLuminosityOpacity="0.8"
+ TintOpacity="0.2" />
+ Color="{ThemeResource SystemAccentColor}" />
+ Color="#000000" />
+ Color="#FFFFFF" />
-
-
-
-
+ Color="#ECECEC" />
+
+
+
+
#693758
+ Color="{ThemeResource DialogTitleColor}" />
-
-
-
+ TintOpacity="0.0" />
+
+
+
+ TintOpacity="0.0" />
+ TintOpacity="1" />
+ TintOpacity="0" />
+ TintOpacity="0" />
+ TintLuminosityOpacity="0.9"
+ TintOpacity="0.4" />
+ TintOpacity="0.25" />
+ TintOpacity="0.25" />
+ TintOpacity="0" />
+ TintOpacity="0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.75" />
+ TintOpacity="0.7" />
+ TintOpacity="0" />
+ TintOpacity="0" />
+ TintOpacity="0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
-
+ TintOpacity="1" />
+
+ TintOpacity="0.0" />
+ TintLuminosityOpacity="0.9"
+ TintOpacity="0.0" />
+
-
-
-
+ TintOpacity="0.0" />
+
+
+
+ Color="#00FFFFFF" />
+ Color="#66FFFFFF" />
+ Color="#44FFFFFF" />
+ Color="#22FFFFFF" />
+ Color="#66FFFFFF" />
+ Color="#44FFFFFF" />
+ Color="#22FFFFFF" />
+ Color="#88FFFFFF" />
+ Color="#55FFFFFF" />
+ Color="#44FFFFFF" />
-
-
-
-
+ Color="#22FFFFFF" />
+
+
+
+
-
+
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
-
+ TintOpacity="0.0" />
+
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
-
+ TintOpacity="0.0" />
+
+ FallbackColor="#88FFFFFF"
+ TintColor="#88FFFFFF" />
+ Opacity="0.9"
+ TintColor="{ThemeResource SystemAccentColor}" />
+ Opacity="0.8"
+ TintColor="{ThemeResource SystemAccentColor}" />
+ FallbackColor="{ThemeResource SystemAccentColor}"
+ TintColor="{ThemeResource SystemAccentColor}" />
+ Color="#88000000" />
+ Color="#DDFFFFFF" />
+ Color="#CCFFFFFF" />
+ Color="#FFFFFF" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
+ TintOpacity="0.0" />
-
+ TintOpacity="0.0" />
+
+
+ Color="#00FFFFFF" />
+ Color="#00FFFFFF" />
+
+
+ Color="#90FF6666" />
+
+
-
- ms-appx:///Assets/Fonts/FontAwesomeBrand6.otf#Font Awesome 6 Brands
- ms-appx:///Assets/Fonts/FontAwesomeRegular6.otf#Font Awesome 6 Free
- ms-appx:///Assets/Fonts/FontAwesomeSolid6.otf#Font Awesome 6 Free Solid
0,47,0,0
+
-
+
-
+
+ TargetType="ComboBox" />
2
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ ms-appx:///Assets/Fonts/FontAwesomeBrand6.otf#Font Awesome 6 Brands
+ ms-appx:///Assets/Fonts/FontAwesomeRegular6.otf#Font Awesome 6 Free
+ ms-appx:///Assets/Fonts/FontAwesomeSolid6.otf#Font Awesome 6 Free
diff --git a/CollapseLauncher/App.xaml.cs b/CollapseLauncher/App.xaml.cs
index c7f8f2561..28a54554d 100644
--- a/CollapseLauncher/App.xaml.cs
+++ b/CollapseLauncher/App.xaml.cs
@@ -8,7 +8,6 @@
using PhotoSauce.MagicScaler;
using PhotoSauce.NativeCodecs.Libwebp;
using System;
-using System.Collections.Generic;
using System.Linq;
using Windows.UI;
using static CollapseLauncher.InnerLauncherConfig;
@@ -20,7 +19,7 @@ namespace CollapseLauncher
public partial class App
{
public static bool IsAppKilled = false;
-
+
public App()
{
if (DebugSettings != null)
@@ -34,9 +33,28 @@ public App()
DebugSettings.IsXamlResourceReferenceTracingEnabled = true;
DebugSettings.IsBindingTracingEnabled = true;
#endif
- DebugSettings.XamlResourceReferenceFailed += (sender, args) => { LogWriteLine($"[XAML_RES_REFERENCE] Sender: {sender}\r\n{args!.Message}", LogType.Error, true); };
- DebugSettings.BindingFailed += (sender, args) => { LogWriteLine($"[XAML_BINDING] Sender: {sender}\r\n{args!.Message}", LogType.Error, true); };
- UnhandledException += (sender, e) => { LogWriteLine($"[XAML_OTHER] Sender: {sender}\r\n{e!.Exception} {e.Exception!.InnerException}", LogType.Error, true); };
+ DebugSettings.XamlResourceReferenceFailed += static (sender, args) =>
+ {
+ LogWriteLine($"[XAML_RES_REFERENCE] Sender: {sender}\r\n{args!.Message}", LogType.Error, true);
+ #if !DEBUG
+ MainEntryPoint.SpawnFatalErrorConsole(new Exception(args!.Message));
+ #endif
+
+ };
+ DebugSettings.BindingFailed += static (sender, args) =>
+ {
+ LogWriteLine($"[XAML_BINDING] Sender: {sender}\r\n{args!.Message}", LogType.Error, true);
+ #if !DEBUG
+ MainEntryPoint.SpawnFatalErrorConsole(new Exception(args!.Message));
+ #endif
+ };
+ UnhandledException += static (sender, e) =>
+ {
+ LogWriteLine($"[XAML_OTHER] Sender: {sender}\r\n{e!.Exception} {e.Exception!.InnerException}", LogType.Error, true);
+ #if !DEBUG
+ MainEntryPoint.SpawnFatalErrorConsole(e!.Exception);
+ #endif
+ };
}
RequestedTheme = IsAppThemeLight ? ApplicationTheme.Light : ApplicationTheme.Dark;
@@ -49,18 +67,19 @@ protected override void OnLaunched(LaunchActivatedEventArgs args)
{
try
{
- ThemeChangerInvoker.ThemeEvent += (_, _) => {
- WindowUtility.ApplyWindowTitlebarLegacyColor();
- bool isThemeLight = IsAppThemeLight;
- Color color = isThemeLight ? Colors.Black : Colors.White;
- Current!.Resources!["WindowCaptionForeground"] = color;
+ ThemeChangerInvoker.ThemeEvent += (_, _) =>
+ {
+ WindowUtility.ApplyWindowTitlebarLegacyColor();
+ bool isThemeLight = IsAppThemeLight;
+ Color color = isThemeLight ? Colors.Black : Colors.White;
+ Current!.Resources!["WindowCaptionForeground"] = color;
- WindowUtility.CurrentAppWindow!.TitleBar!.ButtonForegroundColor = color;
- WindowUtility.CurrentAppWindow!.TitleBar!.ButtonInactiveBackgroundColor = color;
+ WindowUtility.CurrentAppWindow!.TitleBar!.ButtonForegroundColor = color;
+ WindowUtility.CurrentAppWindow!.TitleBar!.ButtonInactiveBackgroundColor = color;
- if (WindowUtility.CurrentWindow!.Content is not null and FrameworkElement frameworkElement)
- frameworkElement.RequestedTheme = isThemeLight ? ElementTheme.Light : ElementTheme.Dark;
- };
+ if (WindowUtility.CurrentWindow!.Content is not null and FrameworkElement frameworkElement)
+ frameworkElement.RequestedTheme = isThemeLight ? ElementTheme.Light : ElementTheme.Dark;
+ };
Window toInitializeWindow = null;
switch (m_appMode)
@@ -114,7 +133,8 @@ protected override void OnLaunched(LaunchActivatedEventArgs args)
{
LogWriteLine($"FATAL ERROR ON APP INITIALIZER LEVEL!!!\r\n{ex}", LogType.Error, true);
LogWriteLine("\r\nIf this is not intended, please report it to: https://github.com/CollapseLauncher/Collapse/issues\r\nPress any key to exit...");
- Console.ReadLine();
+ //Console.ReadLine();
+ throw;
}
}
@@ -127,14 +147,12 @@ public static void ToggleBlurBackdrop(bool useBackdrop = true)
// then select the value, get the type of ResourceDictionary, then enumerate it
foreach (ResourceDictionary list in resource!
.ThemeDictionaries!
- .OfType>()
.Select(x => x.Value)
.OfType())
{
// Parse the dictionary as type of KeyValuePair