Cockatrice, a cross-platform open-source application for virtual card games, has been released in version 3.1.1.
The follow-up fix release for 3.1.0 fixes a card database cache bug that left new clients with no cards, restores auto-completion via Space/Tab/Enter and makes background database updates visible. Windows gets fixes for broken native styles and the updater.
Highlights
[CardDB] Bust the cache on custom set adds, enablement changes, and ‘reload db’ action (#7448)
The binary cache didn’t correctly invalidate itself, most notably, it didn’t invalidate itself when set enablement changed. Since new clients start with all sets “disabled”, the cache got stuck that way and showed no cards. No bueno. It now correctly invalidates itself across a variety of actions and can always be force-invalidated with the “Reload card database” action. Yay!
[Client] Improve card database update visibility (#7458)
The automatic background card database update is nice… but highly invisible. We now provide a tray icon notification for when it starts and complete, as well as further details in the status bar (Help -> Show Status Bar)
[UI] Fix auto-completion acceptance on Space/Tab/Enter (#7466)
Rejoice! We fixed the regressions introduced with the fancy new completer and you can now Space/Tab/Enter to complete just as you knew and loved it. If there’s anything we missed here, be sure to let us know!
Windows
- [Style] Warn about the broken Windows native styles and stop resolving System to them (#7461)
- [Windows] Wait for uninstaller, rework .dll bundling, add logging (#7407)
Two nasty windows bugs snuck into the new update. For one, it turns out that not only one, but two of Qt’s native style keys were broken, which left some users with a very ugly looking Cockatrice, complete with unreadable text. We now warn about this and never fall back to those broken styles when “System” is selected.
The other thing was the updater. It turns out that, on windows, uninstallers copy themselves to a temp directory and then exit and re-launch, so they can delete “themselves” in the old directory. However, this means that we can’t reliably listen for the “done” signal unless we explicitly instruct the uninstaller to tell us when it’s done.
We didn’t, so that meant that while the installer was busy installing the new version… The old uninstaller cleaned house right behind it. This should be fixed now!
Other changes (26 commits in total)
- [PrintingSelector] Fix crash setting all printings to preferred (#7467)
- [Completer] Stop line edit rewrite on popup highlight (#7447)
- [UI] Flip tear-off menus default to off (#7449)
- [Game] Use non-blocking popup for zone context menus (#7452)
- [CardDB] Drop the rebalanced-cards setting entirely (#7457)
- [Security] Harden network input handling and websocket proxying (#7076)

Source: GitHub