Refactor function names and improve code formatting

Renames functions for better semantic clarity:
- `Refresh-WindowsSettingsCombos` becomes `Initialize-WindowsSettingsCombos` to better reflect its role in initial UI setup.
- `Filter-DriverModels` becomes `Search-DriverModels` to more accurately describe its use in user-driven model searches.

Enhances code readability in the UI script through consistent formatting of event handlers and multi-line script blocks.
This commit is contained in:
rbalsleyMSFT
2025-06-16 19:37:58 -07:00
parent fb9dc3fbc5
commit f1d0ab20cb
3 changed files with 103 additions and 43 deletions
+92 -32
View File
@@ -151,8 +151,10 @@ $window.Add_Loaded({
Initialize-DynamicUIElements -State $script:uiState Initialize-DynamicUIElements -State $script:uiState
# Initialize Windows Settings UI using data from helper module # Initialize Windows Settings UI using data from helper module
Refresh-WindowsSettingsCombos -isoPath $script:uiState.Defaults.windowsSettingsDefaults.DefaultISOPath -State $script:uiState # Use combined refresh function Initialize-WindowsSettingsCombos -isoPath $script:uiState.Defaults.windowsSettingsDefaults.DefaultISOPath -State $script:uiState # Use combined refresh function
$script:uiState.Controls.txtISOPath.Add_TextChanged({ Refresh-WindowsSettingsCombos -isoPath $script:uiState.Controls.txtISOPath.Text -State $script:uiState }) $script:uiState.Controls.txtISOPath.Add_TextChanged({
Initialize-WindowsSettingsCombos -isoPath $script:uiState.Controls.txtISOPath.Text -State $script:uiState
})
$script:uiState.Controls.cmbWindowsRelease.Add_SelectionChanged({ $script:uiState.Controls.cmbWindowsRelease.Add_SelectionChanged({
$selectedReleaseValue = 11 # Default if null $selectedReleaseValue = 11 # Default if null
if ($null -ne $script:uiState.Controls.cmbWindowsRelease.SelectedItem) { if ($null -ne $script:uiState.Controls.cmbWindowsRelease.SelectedItem) {
@@ -410,7 +412,7 @@ $window.Add_Loaded({
}) })
$script:uiState.Controls.txtModelFilter.Add_TextChanged({ $script:uiState.Controls.txtModelFilter.Add_TextChanged({
param($sourceObject, $textChangedEventArgs) param($sourceObject, $textChangedEventArgs)
Filter-DriverModels -filterText $script:uiState.Controls.txtModelFilter.Text -State $script:uiState Search-DriverModels -filterText $script:uiState.Controls.txtModelFilter.Text -State $script:uiState
}) })
$script:uiState.Controls.btnDownloadSelectedDrivers.Add_Click({ $script:uiState.Controls.btnDownloadSelectedDrivers.Add_Click({
param($buttonSender, $clickEventArgs) param($buttonSender, $clickEventArgs)
@@ -574,8 +576,12 @@ $window.Add_Loaded({
$script:uiState.Controls.txtModelFilter.Text = "" $script:uiState.Controls.txtModelFilter.Text = ""
$script:uiState.Controls.txtStatus.Text = "Driver list cleared." $script:uiState.Controls.txtStatus.Text = "Driver list cleared."
}) })
$script:uiState.Controls.btnSaveDriversJson.Add_Click({ Save-DriversJson -State $script:uiState }) $script:uiState.Controls.btnSaveDriversJson.Add_Click({
$script:uiState.Controls.btnImportDriversJson.Add_Click({ Import-DriversJson -State $script:uiState }) Save-DriversJson -State $script:uiState
})
$script:uiState.Controls.btnImportDriversJson.Add_Click({
Import-DriversJson -State $script:uiState
})
# Office interplay (Keep existing logic) # Office interplay (Keep existing logic)
$script:uiState.Flags.installAppsCheckedByOffice = $false $script:uiState.Flags.installAppsCheckedByOffice = $false
@@ -658,22 +664,46 @@ $window.Add_Loaded({
} }
} }
} }
$script:uiState.Controls.chkUpdateLatestDefender.Add_Checked({ & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState }) $script:uiState.Controls.chkUpdateLatestDefender.Add_Checked({
$script:uiState.Controls.chkUpdateLatestDefender.Add_Unchecked({ & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState }) & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState
$script:uiState.Controls.chkUpdateEdge.Add_Checked({ & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState }) })
$script:uiState.Controls.chkUpdateEdge.Add_Unchecked({ & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState }) $script:uiState.Controls.chkUpdateLatestDefender.Add_Unchecked({
$script:uiState.Controls.chkUpdateOneDrive.Add_Checked({ & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState }) & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState
$script:uiState.Controls.chkUpdateOneDrive.Add_Unchecked({ & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState }) })
$script:uiState.Controls.chkUpdateLatestMSRT.Add_Checked({ & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState }) $script:uiState.Controls.chkUpdateEdge.Add_Checked({
$script:uiState.Controls.chkUpdateLatestMSRT.Add_Unchecked({ & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState }) & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState
})
$script:uiState.Controls.chkUpdateEdge.Add_Unchecked({
& $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState
})
$script:uiState.Controls.chkUpdateOneDrive.Add_Checked({
& $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState
})
$script:uiState.Controls.chkUpdateOneDrive.Add_Unchecked({
& $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState
})
$script:uiState.Controls.chkUpdateLatestMSRT.Add_Checked({
& $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState
})
$script:uiState.Controls.chkUpdateLatestMSRT.Add_Unchecked({
& $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState
})
# Initial check for Updates/InstallApps state # Initial check for Updates/InstallApps state
& $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState & $script:uiState.Controls.UpdateInstallAppsBasedOnUpdates -State $script:uiState
# CU interplay (Keep existing logic) # CU interplay (Keep existing logic)
$script:uiState.Controls.chkLatestCU.Add_Checked({ $script:uiState.Controls.chkPreviewCU.IsEnabled = $false }) $script:uiState.Controls.chkLatestCU.Add_Checked({
$script:uiState.Controls.chkLatestCU.Add_Unchecked({ $script:uiState.Controls.chkPreviewCU.IsEnabled = $true }) $script:uiState.Controls.chkPreviewCU.IsEnabled = $false
$script:uiState.Controls.chkPreviewCU.Add_Checked({ $script:uiState.Controls.chkLatestCU.IsEnabled = $false }) })
$script:uiState.Controls.chkPreviewCU.Add_Unchecked({ $script:uiState.Controls.chkLatestCU.IsEnabled = $true }) $script:uiState.Controls.chkLatestCU.Add_Unchecked({
$script:uiState.Controls.chkPreviewCU.IsEnabled = $true
})
$script:uiState.Controls.chkPreviewCU.Add_Checked({
$script:uiState.Controls.chkLatestCU.IsEnabled = $false
})
$script:uiState.Controls.chkPreviewCU.Add_Unchecked({
$script:uiState.Controls.chkLatestCU.IsEnabled = $true
})
# Set initial state based on defaults # Set initial state based on defaults
$script:uiState.Controls.chkPreviewCU.IsEnabled = -not $script:uiState.Controls.chkLatestCU.IsChecked $script:uiState.Controls.chkPreviewCU.IsEnabled = -not $script:uiState.Controls.chkLatestCU.IsChecked
$script:uiState.Controls.chkLatestCU.IsEnabled = -not $script:uiState.Controls.chkPreviewCU.IsChecked $script:uiState.Controls.chkLatestCU.IsEnabled = -not $script:uiState.Controls.chkPreviewCU.IsChecked
@@ -727,14 +757,18 @@ $window.Add_Loaded({
$script:uiState.Controls.lstUSBDrives.Items.Clear() $script:uiState.Controls.lstUSBDrives.Items.Clear()
$script:uiState.Controls.chkSelectAllUSBDrives.IsChecked = $false $script:uiState.Controls.chkSelectAllUSBDrives.IsChecked = $false
}) })
$script:uiState.Controls.chkSelectSpecificUSBDrives.Add_Checked({ $script:uiState.Controls.usbSelectionPanel.Visibility = 'Visible' }) $script:uiState.Controls.chkSelectSpecificUSBDrives.Add_Checked({
$script:uiState.Controls.usbSelectionPanel.Visibility = 'Visible'
})
$script:uiState.Controls.chkSelectSpecificUSBDrives.Add_Unchecked({ $script:uiState.Controls.chkSelectSpecificUSBDrives.Add_Unchecked({
$script:uiState.Controls.usbSelectionPanel.Visibility = 'Collapsed' $script:uiState.Controls.usbSelectionPanel.Visibility = 'Collapsed'
$script:uiState.Controls.lstUSBDrives.Items.Clear() $script:uiState.Controls.lstUSBDrives.Items.Clear()
$script:uiState.Controls.chkSelectAllUSBDrives.IsChecked = $false $script:uiState.Controls.chkSelectAllUSBDrives.IsChecked = $false
}) })
$script:uiState.Controls.chkSelectSpecificUSBDrives.IsEnabled = $script:uiState.Controls.chkBuildUSBDriveEnable.IsChecked $script:uiState.Controls.chkSelectSpecificUSBDrives.IsEnabled = $script:uiState.Controls.chkBuildUSBDriveEnable.IsChecked
$script:uiState.Controls.chkAllowExternalHardDiskMedia.Add_Checked({ $script:uiState.Controls.chkPromptExternalHardDiskMedia.IsEnabled = $true }) $script:uiState.Controls.chkAllowExternalHardDiskMedia.Add_Checked({
$script:uiState.Controls.chkPromptExternalHardDiskMedia.IsEnabled = $true
})
$script:uiState.Controls.chkAllowExternalHardDiskMedia.Add_Unchecked({ $script:uiState.Controls.chkAllowExternalHardDiskMedia.Add_Unchecked({
$script:uiState.Controls.chkPromptExternalHardDiskMedia.IsEnabled = $false $script:uiState.Controls.chkPromptExternalHardDiskMedia.IsEnabled = $false
$script:uiState.Controls.chkPromptExternalHardDiskMedia.IsChecked = $false $script:uiState.Controls.chkPromptExternalHardDiskMedia.IsChecked = $false
@@ -785,7 +819,9 @@ $window.Add_Loaded({
$ofd.CheckFileExists = $false $ofd.CheckFileExists = $false
if ($ofd.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { $script:uiState.Controls.txtAppListJsonPath.Text = $ofd.FileName } if ($ofd.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { $script:uiState.Controls.txtAppListJsonPath.Text = $ofd.FileName }
}) })
$script:uiState.Controls.chkBringYourOwnApps.Add_Checked({ $script:uiState.Controls.byoApplicationPanel.Visibility = 'Visible' }) $script:uiState.Controls.chkBringYourOwnApps.Add_Checked({
$script:uiState.Controls.byoApplicationPanel.Visibility = 'Visible'
})
$script:uiState.Controls.chkBringYourOwnApps.Add_Unchecked({ $script:uiState.Controls.chkBringYourOwnApps.Add_Unchecked({
$script:uiState.Controls.byoApplicationPanel.Visibility = 'Collapsed' $script:uiState.Controls.byoApplicationPanel.Visibility = 'Collapsed'
# Clear fields when hiding # Clear fields when hiding
@@ -794,7 +830,9 @@ $window.Add_Loaded({
$script:uiState.Controls.txtAppArguments.Text = '' $script:uiState.Controls.txtAppArguments.Text = ''
$script:uiState.Controls.txtAppSource.Text = '' $script:uiState.Controls.txtAppSource.Text = ''
}) })
$script:uiState.Controls.chkInstallWingetApps.Add_Checked({ $script:uiState.Controls.wingetPanel.Visibility = 'Visible' }) $script:uiState.Controls.chkInstallWingetApps.Add_Checked({
$script:uiState.Controls.wingetPanel.Visibility = 'Visible'
})
$script:uiState.Controls.chkInstallWingetApps.Add_Unchecked({ $script:uiState.Controls.chkInstallWingetApps.Add_Unchecked({
$script:uiState.Controls.wingetPanel.Visibility = 'Collapsed' $script:uiState.Controls.wingetPanel.Visibility = 'Collapsed'
$script:uiState.Controls.wingetSearchPanel.Visibility = 'Collapsed' # Hide search when unchecked $script:uiState.Controls.wingetSearchPanel.Visibility = 'Collapsed' # Hide search when unchecked
@@ -846,17 +884,27 @@ $window.Add_Loaded({
$window.Cursor = $null $window.Cursor = $null
} }
}) })
$script:uiState.Controls.btnWingetSearch.Add_Click({ Search-WingetApps -State $script:uiState }) $script:uiState.Controls.btnWingetSearch.Add_Click({
Search-WingetApps -State $script:uiState
})
$script:uiState.Controls.txtWingetSearch.Add_KeyDown({ $script:uiState.Controls.txtWingetSearch.Add_KeyDown({
param($eventSrc, $keyEvent) param($eventSrc, $keyEvent)
if ($keyEvent.Key -eq 'Return') { Search-WingetApps -State $script:uiState; $keyEvent.Handled = $true } if ($keyEvent.Key -eq 'Return') {
Search-WingetApps -State $script:uiState; $keyEvent.Handled = $true
}
})
$script:uiState.Controls.btnSaveWingetList.Add_Click({
Save-WingetList -State $script:uiState
})
$script:uiState.Controls.btnImportWingetList.Add_Click({
Import-WingetList -State $script:uiState
}) })
$script:uiState.Controls.btnSaveWingetList.Add_Click({ Save-WingetList -State $script:uiState })
$script:uiState.Controls.btnImportWingetList.Add_Click({ Import-WingetList -State $script:uiState })
$script:uiState.Controls.btnClearWingetList.Add_Click({ $script:uiState.Controls.btnClearWingetList.Add_Click({
$script:uiState.Controls.lstWingetResults.ItemsSource = @() # Set ItemsSource to an empty array $script:uiState.Controls.lstWingetResults.ItemsSource = @() # Set ItemsSource to an empty array
$script:uiState.Controls.txtWingetSearch.Text = "" $script:uiState.Controls.txtWingetSearch.Text = ""
if ($script:uiState.Controls.txtStatus) { $script:uiState.Controls.txtStatus.Text = "Cleared all applications from the list" } if ($script:uiState.Controls.txtStatus) {
$script:uiState.Controls.txtStatus.Text = "Cleared all applications from the list"
}
}) })
$script:uiState.Controls.btnDownloadSelected.Add_Click({ $script:uiState.Controls.btnDownloadSelected.Add_Click({
@@ -1002,10 +1050,18 @@ $window.Add_Loaded({
$script:uiState.Controls.pbOverallProgress.Visibility = 'Collapsed' $script:uiState.Controls.pbOverallProgress.Visibility = 'Collapsed'
$buttonSender.IsEnabled = $true $buttonSender.IsEnabled = $true
}) })
$script:uiState.Controls.btnMoveTop.Add_Click({ Move-ListViewItemTop -ListView $script:uiState.Controls.lstApplications }) $script:uiState.Controls.btnMoveTop.Add_Click({
$script:uiState.Controls.btnMoveUp.Add_Click({ Move-ListViewItemUp -ListView $script:uiState.Controls.lstApplications }) Move-ListViewItemTop -ListView $script:uiState.Controls.lstApplications
$script:uiState.Controls.btnMoveDown.Add_Click({ Move-ListViewItemDown -ListView $script:uiState.Controls.lstApplications }) })
$script:uiState.Controls.btnMoveBottom.Add_Click({ Move-ListViewItemBottom -ListView $script:uiState.Controls.lstApplications }) $script:uiState.Controls.btnMoveUp.Add_Click({
Move-ListViewItemUp -ListView $script:uiState.Controls.lstApplications
})
$script:uiState.Controls.btnMoveDown.Add_Click({
Move-ListViewItemDown -ListView $script:uiState.Controls.lstApplications
})
$script:uiState.Controls.btnMoveBottom.Add_Click({
Move-ListViewItemBottom -ListView $script:uiState.Controls.lstApplications
})
# BYO Apps ListView setup (Keep existing logic, ensure CopyStatus column is handled) # BYO Apps ListView setup (Keep existing logic, ensure CopyStatus column is handled)
$byoGridView = $script:uiState.Controls.lstApplications.View $byoGridView = $script:uiState.Controls.lstApplications.View
@@ -1100,8 +1156,12 @@ $window.Add_Loaded({
}) })
$script:uiState.Controls.chkInstallDrivers.Add_Unchecked({ $script:uiState.Controls.chkInstallDrivers.Add_Unchecked({
# Only re-enable if the other checkboxes are not checked # Only re-enable if the other checkboxes are not checked
if (-not $script:uiState.Controls.chkCopyDrivers.IsChecked) { $script:uiState.Controls.chkCopyDrivers.IsEnabled = $true } if (-not $script:uiState.Controls.chkCopyDrivers.IsChecked) {
if (-not $script:uiState.Controls.chkCompressDriversToWIM.IsChecked) { $script:uiState.Controls.chkCompressDriversToWIM.IsEnabled = $true } $script:uiState.Controls.chkCopyDrivers.IsEnabled = $true
}
if (-not $script:uiState.Controls.chkCompressDriversToWIM.IsChecked) {
$script:uiState.Controls.chkCompressDriversToWIM.IsEnabled = $true
}
}) })
$script:uiState.Controls.chkCopyDrivers.Add_Checked({ $script:uiState.Controls.chkCopyDrivers.Add_Checked({
$script:uiState.Controls.chkInstallDrivers.IsEnabled = $false $script:uiState.Controls.chkInstallDrivers.IsEnabled = $false
@@ -112,7 +112,7 @@ function ConvertTo-StandardizedDriverModel {
} }
# Function to filter the driver model list based on text input # Function to filter the driver model list based on text input
function Filter-DriverModels { function Search-DriverModels {
param( param(
[string]$filterText, [string]$filterText,
[Parameter(Mandatory = $true)] [Parameter(Mandatory = $true)]
@@ -120,7 +120,7 @@ function Filter-DriverModels {
) )
# Check if UI elements and the full list are available # Check if UI elements and the full list are available
if ($null -eq $State.Controls.lstDriverModels -or $null -eq $State.Data.allDriverModels) { if ($null -eq $State.Controls.lstDriverModels -or $null -eq $State.Data.allDriverModels) {
WriteLog "Filter-DriverModels: ListView or full model list not available." WriteLog "Search-DriverModels: ListView or full model list not available."
return return
} }
@@ -371,7 +371,7 @@ function Import-DriversJson {
$State.Data.allDriverModels = $State.Data.allDriverModels | Sort-Object @{Expression = { $_.IsSelected }; Descending = $true }, Make, Model $State.Data.allDriverModels = $State.Data.allDriverModels | Sort-Object @{Expression = { $_.IsSelected }; Descending = $true }, Make, Model
Filter-DriverModels -filterText $State.Controls.txtModelFilter.Text -State $script:uiState Search-DriverModels -filterText $State.Controls.txtModelFilter.Text -State $script:uiState
$message = "Driver import complete.`nNew models added: $newModelsAdded`nExisting models updated: $existingModelsUpdated" $message = "Driver import complete.`nNew models added: $newModelsAdded`nExisting models updated: $existingModelsUpdated"
[System.Windows.MessageBox]::Show($message, "Import Successful", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Information) [System.Windows.MessageBox]::Show($message, "Import Successful", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Information)
@@ -463,8 +463,8 @@ function Update-WindowsSkuCombo {
} }
} }
# Combined function to refresh both Release and Version combos # Combined function to initialize the Release, Version, and SKU combos
function Refresh-WindowsSettingsCombos { function Initialize-WindowsSettingsCombos {
param( param(
[string]$isoPath, [string]$isoPath,
[Parameter(Mandatory = $true)] [Parameter(Mandatory = $true)]
@@ -568,4 +568,4 @@ function BuildFeaturesGrid {
# SECTION: Module Export # SECTION: Module Export
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
Export-ModuleMember -Function Get-WindowsSettingsDefaults, Get-AvailableWindowsReleases, Get-AvailableWindowsVersions, Get-AvailableSkusForRelease, Update-WindowsReleaseCombo, Update-WindowsVersionCombo, Update-WindowsSkuCombo, Refresh-WindowsSettingsCombos, UpdateOptionalFeaturesString, BuildFeaturesGrid Export-ModuleMember -Function Get-WindowsSettingsDefaults, Get-AvailableWindowsReleases, Get-AvailableWindowsVersions, Get-AvailableSkusForRelease, Update-WindowsReleaseCombo, Update-WindowsVersionCombo, Update-WindowsSkuCombo, Initialize-WindowsSettingsCombos, UpdateOptionalFeaturesString, BuildFeaturesGrid