Skip to content

Commit

Permalink
Improve 'Invoke-WPFPresets.ps1' Public Function as well as Simple Opt…
Browse files Browse the repository at this point in the history
…imizations
  • Loading branch information
og-mrk committed Aug 22, 2024
1 parent bcfbce6 commit 039b5aa
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 14 deletions.
4 changes: 2 additions & 2 deletions functions/public/Invoke-WPFButton.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ function Invoke-WPFButton {
"WPFInstallUpgrade" {Invoke-WPFInstallUpgrade}
"WPFstandard" {Invoke-WPFPresets "Standard"}
"WPFminimal" {Invoke-WPFPresets "Minimal"}
"WPFclear" {Invoke-WPFPresets -preset $null -imported $true}
"WPFclearWinget" {Invoke-WPFPresets -preset $null -imported $true -CheckBox "WPFInstall"}
"WPFclear" {Invoke-WPFPresets -imported $true -checkboxfilterpattern "WPFTweak*"}
"WPFclearWinget" {Invoke-WPFPresets -imported $true -checkboxfilterpattern "WPFInstall*"}
"WPFtweaksbutton" {Invoke-WPFtweaksbutton}
"WPFOOSUbutton" {Invoke-WPFOOSU}
"WPFAddUltPerf" {Invoke-WPFUltimatePerformance -State "Enable"}
Expand Down
31 changes: 19 additions & 12 deletions functions/public/Invoke-WPFPresets.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -10,29 +10,36 @@ function Invoke-WPFPresets {
.PARAMETER imported
If the preset is imported from a file, defaults to false
.PARAMETER checkbox
The checkbox to set the options to, defaults to 'WPFTweaks'
.PARAMETER checkboxfilterpattern
The Pattern to use when filtering through CheckBoxes, defaults to "**"
#>

param(
$preset,
[bool]$imported = $false
param (
[Parameter(position=0)]
[string]$preset,

[Parameter(position=1)]
[bool]$imported = $false,

[Parameter(position=2)]
[string]$checkboxfilterpattern = "**"
)

if($imported -eq $true) {
if ($imported -eq $true) {
$CheckBoxesToCheck = $preset
} else {
$CheckBoxesToCheck = $sync.configs.preset.$preset
}

$CheckBoxes = $sync.GetEnumerator() | Where-Object { $_.Value -is [System.Windows.Controls.CheckBox] -and $_.Name -notlike "WPFToggle*" }
Write-Debug "Getting checkboxes to set $($CheckBoxes.Count)"
$CheckBoxes = ($sync.GetEnumerator()).where{ $_.Value -is [System.Windows.Controls.CheckBox] -and $_.Name -notlike "WPFToggle*" -and $_.Name -like "$checkboxfilterpattern"}
Write-Debug "Getting checkboxes to set, number of checkboxes: $($CheckBoxes.Count)"

$CheckBoxesToCheck | ForEach-Object {
if ($_ -ne $null) {
Write-Debug $_
}
if ($CheckBoxesToCheck -ne $null) {
$debugMsg = "CheckBoxes to Check are: "
$CheckBoxesToCheck | ForEach-Object { $debugMsg += "$_, " }
$debugMsg = $debugMsg -replace (',\s*$', '')
Write-Debug "$debugMsg"
}

foreach ($CheckBox in $CheckBoxes) {
Expand Down

0 comments on commit 039b5aa

Please sign in to comment.