mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2026-08-09 17:41:14 +10:00
* Add Quick Category Search Chips to Install tab Add category shortcut chips on the Install tab that insert the category name into the existing search box. Append each app's category as a description tag so the existing description search filters by category. Reuses the standard button style and existing search; no search, install, or preset logic is changed. * Fix install category chip filtering * Fix category filter refresh behavior --------- Co-authored-by: Chris Titus <contact@christitus.com>
59 lines
1.8 KiB
PowerShell
59 lines
1.8 KiB
PowerShell
function Invoke-WinUtilInstallAppRenderBatch {
|
|
param(
|
|
[Parameter(Mandatory = $true)]
|
|
$CategoryBatch
|
|
)
|
|
|
|
foreach ($appKey in $CategoryBatch.AppKeys) {
|
|
$sync.$appKey = Initialize-InstallAppEntry -TargetElement $CategoryBatch.TargetElement -AppKey $appKey
|
|
}
|
|
|
|
if ($sync.currentTab -eq "Install" -and $sync.SearchBar -and -not [string]::IsNullOrWhiteSpace($sync.SearchBar.Text)) {
|
|
Find-AppsByNameOrDescription -SearchString $sync.SearchBar.Text -Category $sync.SearchBar.Tag
|
|
}
|
|
}
|
|
|
|
function Complete-WinUtilInstallAppRendering {
|
|
$sync.InstallAppEntriesRendered = $true
|
|
}
|
|
|
|
function Invoke-WinUtilInstallAppRenderNextBatch {
|
|
if ($sync.InstallAppRenderQueue.Count -gt 0) {
|
|
$categoryBatch = $sync.InstallAppRenderQueue.Dequeue()
|
|
Invoke-WinUtilInstallAppRenderBatch -CategoryBatch $categoryBatch
|
|
}
|
|
|
|
if ($sync.InstallAppRenderQueue.Count -gt 0) {
|
|
$sync.Form.Dispatcher.BeginInvoke(
|
|
[System.Windows.Threading.DispatcherPriority]::Background,
|
|
[action]{ Invoke-WinUtilInstallAppRenderNextBatch }
|
|
) | Out-Null
|
|
return
|
|
}
|
|
|
|
Complete-WinUtilInstallAppRendering
|
|
}
|
|
|
|
function Start-WinUtilInstallAppRendering {
|
|
if ($null -eq $sync.InstallAppRenderQueue) {
|
|
return
|
|
}
|
|
|
|
$sync.InstallAppEntriesRendered = $false
|
|
|
|
if ($sync.Form -and $sync.Form.Dispatcher) {
|
|
$sync.Form.Dispatcher.BeginInvoke(
|
|
[System.Windows.Threading.DispatcherPriority]::Background,
|
|
[action]{ Invoke-WinUtilInstallAppRenderNextBatch }
|
|
) | Out-Null
|
|
return
|
|
}
|
|
|
|
while ($sync.InstallAppRenderQueue.Count -gt 0) {
|
|
$categoryBatch = $sync.InstallAppRenderQueue.Dequeue()
|
|
Invoke-WinUtilInstallAppRenderBatch -CategoryBatch $categoryBatch
|
|
}
|
|
|
|
Complete-WinUtilInstallAppRendering
|
|
}
|