[ENG-594] Open With Windows + fixes (#945)

* Windows `Open With` WIP
 - Listing applications capable of hanling a file type is working
 - Openning a file with a selected application is failing with unspecified error HRESULT(0x80004005) for some reason

* Fix file not opening due to COM not being initialized
 - Fix `no apps available` style

* Remove unwrap

* Fix `Open With` due to changes in main

* Fix macOS `Open With`

* Fix Windows `Open With` due to changes in main
 - Sort linux `Open With` entries, to ensure consistent app order

* Fix macOS again

* Update core.ts

* Fix windows CI being rate limited

* Clippy

* Fix CoUninitialize not being called

* minor formatting

* Implement feedback
 - Improve performance of listing apps that can handle a certain file type in Linux

* Fix broken feedback change
 - Small perf improvement to windows crate

* Some improvements to windows crate
This commit is contained in:
Vítor Vasconcellos
2023-06-17 02:23:45 -03:00
committed by GitHub
parent 88166cdfdd
commit 4078c360b4
13 changed files with 369 additions and 182 deletions

View File

@@ -178,6 +178,8 @@ https://learn.microsoft.com/windows/package-manager/winget/
Write-Host
Write-Host 'Installing Visual Studio Build Tools...' -ForegroundColor Yellow
Write-Host 'This will take some time as it involves downloading several gigabytes of data....' -ForegroundColor Cyan
winget install -e --accept-source-agreements --force --disable-interactivity --id Microsoft.VisualStudio.2022.BuildTools `
--override 'updateall --quiet --wait'
# Force install because BuildTools is itself a package manager, so let it decide if something needs to be installed or not
winget install -e --accept-source-agreements --force --disable-interactivity --id Microsoft.VisualStudio.2022.BuildTools `
--override '--wait --quiet --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended'
@@ -206,6 +208,8 @@ https://learn.microsoft.com/windows/package-manager/winget/
$LASTEXITCODE = 0
}
# TODO: Install Strawberry perl, required by debug build of openssl-sys
Write-Host
Write-Host 'Installing NodeJS...' -ForegroundColor Yellow
# Check if Node.JS is already installed and if it's compatible with the project
@@ -341,7 +345,7 @@ while ($page -gt 0) {
$_.workflow_runs | ForEach-Object {
$artifactPath = (
(Invoke-RestMethod -Uri ($_.artifacts_url | Out-String) -Method Get).artifacts `
(Invoke-RestMethodGithub -Uri ($_.artifacts_url | Out-String) -Method Get).artifacts `
| Where-Object {
$_.name -eq "ffmpeg-${ffmpegVersion}-x86_64"
} | ForEach-Object {