[#956] Fix ArgyllCMS missing prompt not firing on silent startup for wx and Qt - #957
Merged
eoyilmaz merged 2 commits intoJul 28, 2026
Conversation
…wx and Qt
`app_update_check()`'s silent-startup path early-returned whenever `is_new_update()` came back `False`, which conflated "no update available" with "check failed" and skipped past the `check_argyll_bin()` / `set_argyll_bin_handler()` cascade further down, so the download/browse/Homebrew prompt for a missing ArgyllCMS install never fired on launch. `is_new_update()` now distinguishes the two cases (`None` on failure), and both the stable and snapshot branches of `app_update_check()` fall through to the same cascade regardless of `silent`.
The Qt UI never had an equivalent missing-Argyll prompt at all. Added `MainWindow._prompt_missing_argyll()`, wired into `_run_instrument_setup_and_donation_check()` on startup, with a real Download option (background download + extract via `_ArgyllDownloadThread`, mirroring `Worker.process_argyll_download()`/`extract_archive()`, then `setcfg("argyll.dir", ...)`), Browse (reuses `_set_argyll_bin_handler()`), and Homebrew choices. A successful download now also triggers `detect_displays_and_ports_btn_handler()` automatically, matching wx's own `check_update_controls()` chain.
Also fixed `display_ctrl`/`comport_ctrl` staying stuck at their empty-state width after detection populates them with real display/instrument names, by switching their `sizeAdjustPolicy` to `AdjustToContents`.
eoyilmaz
deleted the
956-startup-does-not-prompt-to-download-locate-argyllcms-when-missing
branch
July 28, 2026 12:43
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
app_update_check()'s silent-startup path (display_cal.py) early-returned wheneveris_new_update()came backFalse, which conflated "no update available" with "check failed" and skipped past thecheck_argyll_bin()/set_argyll_bin_handler()cascade further down, so the download/browse/Homebrew prompt for a missing ArgyllCMS install never fired on launch.is_new_update()now returnsNoneon failure (vs.Falsefor "no update"), and both the stable and snapshot branches ofapp_update_check()fall through to the same cascade regardless ofsilent.MainWindow._prompt_missing_argyll(), wired into_run_instrument_setup_and_donation_check()on startup, with a real Download option (background download + extract via_ArgyllDownloadThread, mirroringWorker.process_argyll_download()/extract_archive(), thensetcfg("argyll.dir", ...)), Browse (reuses_set_argyll_bin_handler()), and Homebrew choices. A successful download now also triggersdetect_displays_and_ports_btn_handler()automatically, matching wx's owncheck_update_controls()chain.display_ctrl/comport_ctrlstaying stuck at their empty-state width after detection populates them with real display/instrument names, by switching theirsizeAdjustPolicytoAdjustToContents.Fixes #956
Test plan
pytest tests/test_display_cal.py tests/test_update_check.pypasses (101 passed, 1 skipped)pytest tests/test_ui_main_window.pypasses (560 passed)pytest tests/test_ui_update_check_window.pypasses (9 passed)argyll.dir, and display/instrument detection runs automatically afterward with correctly-sized comboboxes