Video OCR: install-status dots on engine/model pickers#12278
Merged
Conversation
Bring the burn-in / video OCR engine and model selection in line with the text-to-speech window: the engine combobox and the llama.cpp model combobox now render the shared StatusDots indicator - a green dot for "ready to use", amber for "update available", grey for "downloadable but not installed", and no dot for engines with nothing to download (Paddle OCR Python, Ollama, the GLM cloud API). Each row also gets the install state as a tooltip and accessible name, so it does not rely on colour alone. The llama.cpp model rows additionally show the download size. Add PaddleOcrInstallHelper.IsStandaloneInstalled() so the Paddle OCR Standalone engine can report its dot status synchronously. The dots are one-off snapshots, so VideoOcrWindow.RefreshDownloadDots() rebuilds the templates after a model/engine download or server start to keep the status current. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes the burn-in / video OCR engine selection feel like the rest of the app's local-model pickers (text-to-speech, auto-translate) by adding the shared install-status dot to both comboboxes.
Engine combobox
Each engine now shows a status dot via the shared
StatusDotshelper:PaddleOcrInstallHelper.IsStandaloneInstalled()is added so the Paddle OCR Standalone engine can report its dot synchronously; llama.cpp reports viaLlamaCppServerManagerinstall/update state.llama.cpp model combobox
Model rows now show the same install dot plus the download size (e.g.
● GLM-OCR 0.9B (Q8_0) (1.4 GB)), matching how models render elsewhere.Accessibility
Every dotted row also carries the install state as a tooltip and accessible name (from
StatusDots), so status is conveyed in text, not colour alone.Keeping dots fresh
The dots are one-off snapshots, so
VideoOcrWindow.RefreshDownloadDots()rebuilds the item templates after a model/engine download or a server start.Auto-download
Downloading stays on the existing, app-consistent path: llama.cpp / Paddle Standalone auto-prompt to download when you start OCR (
EnsureEngineIsAvailable), plus the explicit Download button and Start/Stop server button for llama.cpp. The new dots now make it obvious before running which engines/models still need a download.Testing
dotnet build -c Debugsucceeds (0 warnings, 0 errors).🤖 Generated with Claude Code