Feat: Add live log monitoring tab to UI

Introduces a new "Monitor" tab in the `BuildFFUVM` UI to display live log output from the build process.

When a build is started, the UI now automatically switches to the Monitor tab. It tails the main log file in real-time and displays the content in a list view, which auto-scrolls as new entries appear.

This provides immediate visual feedback on the build progress and any errors without needing to manually open the log file.

Additionally, this change adds a Ctrl+C keyboard shortcut to copy selected log lines from the monitor view to the clipboard.
This commit is contained in:
rbalsleyMSFT
2025-07-10 19:56:59 -07:00
parent ebbb3e8ed0
commit 7043af47c3
5 changed files with 106 additions and 13 deletions
@@ -756,5 +756,27 @@ function Register-EventHandlers {
$localState = $window.Tag
Invoke-SaveConfiguration -State $localState
})
# Monitor Tab Event Handlers
$State.Controls.lstLogOutput.Add_KeyDown({
param($eventSource, $keyEventArgs)
# Check for Ctrl+C
if ($keyEventArgs.Key -eq 'C' -and ($keyEventArgs.KeyboardDevice.Modifiers -band [System.Windows.Input.ModifierKeys]::Control)) {
$listBox = $eventSource
if ($listBox.SelectedItems.Count -gt 0) {
$selectedLines = $listBox.SelectedItems | ForEach-Object { $_.ToString() }
$clipboardText = $selectedLines -join [System.Environment]::NewLine
try {
[System.Windows.Clipboard]::SetText($clipboardText)
WriteLog "Copied $($listBox.SelectedItems.Count) log lines to clipboard."
}
catch {
WriteLog "Error copying to clipboard: $($_.Exception.Message)"
}
}
$keyEventArgs.Handled = $true
}
})
}
Export-ModuleMember -Function *